Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOC: add rebalance doc #1602

Merged
merged 1 commit into from
Mar 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,7 @@ Check out the strategy directory [strategy](pkg/strategy) for all built-in strat
- `irr` - return rate strategy.
- `drift` - drift strategy.
- `grid2` - the second-generation grid strategy.
- `rebalance` - rebalances your portfolio based on target weights. [rebalance](pkg/strategy/rebalance). See [document](./doc/strategy/rebalance.md).

To run these built-in strategies, just modify the config file to make the configuration suitable for you, for example, if
you want to run
Expand Down
31 changes: 31 additions & 0 deletions doc/strategy/rebalance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
### Rebalance Strategy

This strategy automatically rebalances your portfolio based on target weights.

#### Parameters

- `schedule`
- The CRON expression used to schedule rebalance executions, for example: `@every 5m`, `@every 1h`, `0 0 * * * *`.
- [CRON Expression Format](https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format)
- `quoteCurrency`
- The quote currency in trading markets, e.g., `USDT`, `TWD`.
- `targetWeights`
- A map defining the desired target weights for each base currency in the portfolio.
- `threshold`
- The threshold represents the maximum allowable difference between the current weight and the target weight that will initiate rebalancing. For instance, with a threshold set at `1%`, if the current weight of `BTC` is `52%` and the target weight is `50%`, the strategy will sell `BTC` until it reaches `50%`.
- `maxAmount`
- The highest allowable value for each order in the quote currency.
- `orderType`
- The type of order to be placed, e.g., `LIMIT`, `LIMIT_MAKER`, `MARKET`
- `priceType`
- The method used to determine the price for buying or selling the currency, for example, `MAKER`, `TAKER`, `MID`, `LAST`
- `balanceType`
- Determines how the current weights are calculated. If set to `TOTAL`, the weights will include locked funds. e.g. `TOTAL`, `AVAILABLE`.
- `dryRun`
- If set to `true`, the strategy will simulate rebalancing without actually placing orders.
- `onStart`
- Indicates whether to rebalance the portfolio when the strategy starts.

#### Examples

See [rebalance.yaml](../../config/rebalance.yaml)