bbgo_origin/README.md

111 lines
2.5 KiB
Markdown
Raw Normal View History

2020-10-08 12:49:05 +00:00
# bbgo
A trading bot framework written in Go. The name bbgo comes from the BB8 bot in the Star Wars movie. aka Buy BitCoin Go!
## Current Status
_Working hard in progress_
2020-10-10 05:19:54 +00:00
[![Build Status](https://travis-ci.org/c9s/bbgo.svg?branch=main)](https://travis-ci.org/c9s/bbgo)
Aim to release v1.0 before 11/14
2020-10-08 12:49:05 +00:00
## Features
- Exchange abstraction interface
- Stream integration (user data websocket)
- PnL calculation.
2020-10-08 14:31:09 +00:00
## Supported Exchanges
- MAX Exchange (located in Taiwan)
- Binance Exchange
2020-10-10 05:18:40 +00:00
## Installation
Install the builtin commands:
```sh
go get -u github.com/c9s/bbgo/cmd/bbgo
```
2020-10-10 10:01:37 +00:00
You will need `goose` to run these migration files: [migrations](migrations)
2020-10-10 04:06:22 +00:00
## Examples
2020-10-10 04:07:12 +00:00
Please check out the example directory: [examples](examples)
2020-10-10 04:06:22 +00:00
2020-10-10 04:09:23 +00:00
Initialize MAX API:
```go
key := os.Getenv("MAX_API_KEY")
secret := os.Getenv("MAX_API_SECRET")
maxRest := maxapi.NewRestClient(maxapi.ProductionAPIURL)
maxRest.Auth(key, secret)
```
Creating user data stream to get the orderbook (depth):
```go
stream := max.NewStream(key, secret)
stream.Subscribe(types.BookChannel, symbol, types.SubscribeOptions{})
streambook := types.NewStreamBook(symbol)
streambook.BindStream(stream)
```
2020-10-10 04:06:22 +00:00
## New Trading Bot API design
2020-10-08 14:26:33 +00:00
_**still under construction**_
```go
2020-10-10 04:06:22 +00:00
package main
2020-10-08 14:26:33 +00:00
import (
"github.com/c9s/bbgo"
)
mysqlURL := viper.GetString("mysql-url")
mysqlURL = fmt.Sprintf("%s?parseTime=true", mysqlURL)
db, err := sqlx.Connect("mysql", mysqlURL)
if err != nil {
return err
}
t := bbgo.New(bbgo.Config{
DB: db,
})
t.AddNotifier(slacknotifier.New(slackToken))
t.AddLogHook(slacklog.NewLogHook(slackToken))
2020-10-10 05:17:04 +00:00
t.AddExchange("binance", binance.New(viper.Getenv("binance-api-key"), viper.Getenv("binance-api-secret")))).
2020-10-08 14:26:33 +00:00
Subscribe("binance", "btcusdt", "kline@5m", "book", "trade").
AddStrategy(bondtrade.New, bondtrade.New).
Symbols("btcusdt", "bnbusdt")
t.AddExchange("max", max.New(viper.Getenv("max-key"), viper.Getenv("max-secret")))).
Subscribe("max", "btctwd", "kline@5m", "book", "trade").
AddStrategy(flashdrop.New, bondtrade.New)
t.AddCrossExchangeStrategy(hedgemaker.New(...))
```
2020-10-08 14:31:09 +00:00
## Support
You may register your exchange account with my referral ID to support this project.
- For MAX Exchange: <https://max.maicoin.com/signup?r=c7982718> (default commission rate to your account)
- For Binance Exchange: <https://www.binancezh.com/en/register?ref=VGDGLT80> (5% commission back to your account)
Or support this project by cryptocurrency:
- BTC omni `3J6XQJNWT56amqz9Hz2BEVQ7W4aNmb5kiU`
- USDT erc20 `0x63E5805e027548A384c57E20141f6778591Bac6F`
2020-10-08 12:49:05 +00:00
## License
MIT License