mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-25 16:25:16 +00:00
update doc
This commit is contained in:
parent
9fbe2e859e
commit
69179ab66f
98
README.md
98
README.md
|
@ -30,7 +30,8 @@ You can use BBGO's trading unit and back-test unit to implement your own strateg
|
|||
|
||||
### Trading Unit Developers 🧑💻
|
||||
|
||||
You can use BBGO's underlying common exchange API, currently it supports 4+ major exchanges, so you don't have to repeat the implementation.
|
||||
You can use BBGO's underlying common exchange API, currently it supports 4+ major exchanges, so you don't have to repeat
|
||||
the implementation.
|
||||
|
||||
## Features
|
||||
|
||||
|
@ -44,7 +45,8 @@ You can use BBGO's underlying common exchange API, currently it supports 4+ majo
|
|||
- Built-in parameter optimization tool.
|
||||
- Built-in Grid strategy and many other built-in strategies.
|
||||
- Multi-exchange session support: you can connect to more than 2 exchanges with different accounts or subaccounts.
|
||||
- Indicators with interface similar to `pandas.Series`([series](https://github.com/c9s/bbgo/blob/main/doc/development/series.md))([usage](https://github.com/c9s/bbgo/blob/main/doc/development/indicator.md)):
|
||||
- Indicators with interface similar
|
||||
to `pandas.Series`([series](https://github.com/c9s/bbgo/blob/main/doc/development/series.md))([usage](https://github.com/c9s/bbgo/blob/main/doc/development/indicator.md)):
|
||||
- [Accumulation/Distribution Indicator](./pkg/indicator/ad.go)
|
||||
- [Arnaud Legoux Moving Average](./pkg/indicator/alma.go)
|
||||
- [Average True Range](./pkg/indicator/atr.go)
|
||||
|
@ -115,7 +117,8 @@ Get your exchange API key and secret after you register the accounts (you can ch
|
|||
- OKEx: <https://www.okex.com/join/2412712?src=from:ios-share>
|
||||
- Kucoin: <https://www.kucoin.com/ucenter/signup?rcode=r3KX2D4>
|
||||
|
||||
This project is maintained and supported by a small group of team. If you would like to support this project, please register on the exchanges using the provided links with referral codes above.
|
||||
This project is maintained and supported by a small group of team. If you would like to support this project, please
|
||||
register on the exchanges using the provided links with referral codes above.
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -145,8 +148,8 @@ bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/download.
|
|||
|
||||
Or refer to the [Release Page](https://github.com/c9s/bbgo/releases) and download manually.
|
||||
|
||||
Since v2, we've added new float point implementation from dnum to support decimals with higher precision.
|
||||
To download & setup, please refer to [Dnum Installation](doc/topics/dnum-binary.md)
|
||||
Since v2, we've added new float point implementation from dnum to support decimals with higher precision. To download &
|
||||
setup, please refer to [Dnum Installation](doc/topics/dnum-binary.md)
|
||||
|
||||
### One-click Linode StackScript
|
||||
|
||||
|
@ -241,8 +244,8 @@ bbgo pnl --exchange binance --asset BTC --since "2019-01-01"
|
|||
|
||||
### Testnet (Paper Trading)
|
||||
|
||||
Currently only supports binance testnet.
|
||||
To run bbgo in testnet, apply new API keys from [Binance Test Network](https://testnet.binance.vision), and set the following env before you start bbgo:
|
||||
Currently only supports binance testnet. To run bbgo in testnet, apply new API keys
|
||||
from [Binance Test Network](https://testnet.binance.vision), and set the following env before you start bbgo:
|
||||
|
||||
```bash
|
||||
export PAPER_TRADE=1
|
||||
|
@ -344,7 +347,8 @@ Check out the strategy directory [strategy](pkg/strategy) for all built-in strat
|
|||
indicator [bollgrid](pkg/strategy/bollgrid)
|
||||
- `grid` strategy implements the fixed price band grid strategy [grid](pkg/strategy/grid). See
|
||||
[document](./doc/strategy/grid.md).
|
||||
- `supertrend` strategy uses Supertrend indicator as trend, and DEMA indicator as noise filter [supertrend](pkg/strategy/supertrend). See
|
||||
- `supertrend` strategy uses Supertrend indicator as trend, and DEMA indicator as noise
|
||||
filter [supertrend](pkg/strategy/supertrend). See
|
||||
[document](./doc/strategy/supertrend.md).
|
||||
- `support` strategy uses K-lines with high volume as support [support](pkg/strategy/support). See
|
||||
[document](./doc/strategy/support.md).
|
||||
|
@ -365,78 +369,9 @@ bbgo run --config config/buyandhold.yaml
|
|||
|
||||
See [Back-testing](./doc/topics/back-testing.md)
|
||||
|
||||
## Adding New Built-in Strategy
|
||||
## Adding Strategy
|
||||
|
||||
Fork and clone this repository, Create a directory under `pkg/strategy/newstrategy`, write your strategy
|
||||
at `pkg/strategy/newstrategy/strategy.go`.
|
||||
|
||||
Define a strategy struct:
|
||||
|
||||
```go
|
||||
package newstrategy
|
||||
|
||||
import (
|
||||
"github.com/c9s/bbgo/pkg/fixedpoint"
|
||||
)
|
||||
|
||||
type Strategy struct {
|
||||
Symbol string `json:"symbol"`
|
||||
Param1 int `json:"param1"`
|
||||
Param2 int `json:"param2"`
|
||||
Param3 fixedpoint.Value `json:"param3"`
|
||||
}
|
||||
```
|
||||
|
||||
Register your strategy:
|
||||
|
||||
```go
|
||||
package newstrategy
|
||||
|
||||
const ID = "newstrategy"
|
||||
|
||||
const stateKey = "state-v1"
|
||||
|
||||
var log = logrus.WithField("strategy", ID)
|
||||
|
||||
func init() {
|
||||
bbgo.RegisterStrategy(ID, &Strategy{})
|
||||
}
|
||||
```
|
||||
|
||||
Implement the strategy methods:
|
||||
|
||||
```go
|
||||
package newstrategy
|
||||
|
||||
func (s *Strategy) Subscribe(session *bbgo.ExchangeSession) {
|
||||
session.Subscribe(types.KLineChannel, s.Symbol, types.SubscribeOptions{Interval: "2m"})
|
||||
}
|
||||
|
||||
func (s *Strategy) Run(ctx context.Context, orderExecutor bbgo.OrderExecutor, session *bbgo.ExchangeSession) error {
|
||||
// ....
|
||||
return nil
|
||||
}
|
||||
```
|
||||
|
||||
Edit `pkg/cmd/builtin.go`, and import the package, like this:
|
||||
|
||||
```go
|
||||
package cmd
|
||||
|
||||
// import built-in strategies
|
||||
import (
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/bollgrid"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/buyandhold"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/flashcrash"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/grid"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/pricealert"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/support"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/swing"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/trailingstop"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/xmaker"
|
||||
_ "github.com/c9s/bbgo/pkg/strategy/xpuremaker"
|
||||
)
|
||||
```
|
||||
See [Developing Strategy](./doc/topics/developing-strategy.md)
|
||||
|
||||
## Write your own private strategy
|
||||
|
||||
|
@ -635,8 +570,9 @@ What's Position?
|
|||
|
||||
## Looking For A New Strategy?
|
||||
|
||||
You can write an article about BBGO in any topic, in 750-1500 words for exchange, and I can implement the strategy for you (depends on the complexity and efforts).
|
||||
If you're interested in, DM me in telegram <https://t.me/c123456789s> or twitter <https://twitter.com/c9s>, we can discuss.
|
||||
You can write an article about BBGO in any topic, in 750-1500 words for exchange, and I can implement the strategy for
|
||||
you (depends on the complexity and efforts). If you're interested in, DM me in telegram <https://t.me/c123456789s> or
|
||||
twitter <https://twitter.com/c9s>, we can discuss.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
|
|
@ -10,11 +10,11 @@ For built-in strategies, they are placed in `pkg/strategy` of the BBGO source re
|
|||
For external strategies, you can create a private repository as an isolated go package and place your strategy inside
|
||||
it.
|
||||
|
||||
In general, strategies are Go struct, placed in Go package.
|
||||
In general, strategies are Go struct, defined in the Go package.
|
||||
|
||||
## Quick Start
|
||||
|
||||
To add your first strategy, the fastest way is to add the built-in strategy.
|
||||
To add your first strategy, the fastest way is to add it as a built-in strategy.
|
||||
|
||||
Simply edit `pkg/cmd/builtin.go` and import your strategy package there.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user