bbgo_origin/README.md

139 lines
3.2 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.
- Slack notification
2020-10-08 12:49:05 +00:00
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-11 08:05:07 +00:00
Add your dotenv file:
```
SLACK_TOKEN=
BINANCE_API_KEY=
BINANCE_API_SECRET=
MAX_API_KEY=
MAX_API_SECRET=
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USERNAME=root
MYSQL_PASSWORD=
MYSQL_DATABASE=bbgo
MYSQL_URL=root@tcp(127.0.0.1:3306)/bbgo
```
2020-10-11 08:31:58 +00:00
You can get your API key and secret after you register the accounts:
- For MAX: <https://max.maicoin.com/signup?r=c7982718>
- For Binance: <https://www.binancezh.com/en/register?ref=VGDGLT80>
2020-10-11 08:05:07 +00:00
Then run the `migrate` command to initialize your database:
```sh
dotenv -f .env.local -- bbgo migrate up
```
There are some other commands you can run:
```sh
dotenv -f .env.local -- bbgo migrate status
dotenv -f .env.local -- bbgo migrate redo
```
(It internally uses `goose` to run these migration files, see [migrations](migrations))
2020-10-10 10:01:37 +00:00
2020-10-11 12:11:22 +00:00
To query transfer history:
```sh
dotenv -f .env.local -- bbgo transfer-history --exchange max --asset USDT --since "2019-01-01"
```
To calculate pnl:
```sh
dotenv -f .env.local -- bbgo pnl --exchange binance --asset BTC --since "2019-01-01"
```
2020-10-27 11:24:39 +00:00
## Built-in Strategies
Check out the strategy directory [strategy](pkg/strategy) for all built-in strategies:
- pricealert strategy demonstrates how to use the notification system [pricealert](pkg/strategy/pricealert)
- xpuremaker strategy demonstrates how to maintain the orderbook and submit maker orders [xpuremaker](pkg/strategy/xpuremaker)
- buyandhold strategy demonstrates how to subscribe kline events and submit market order [buyandhold](pkg/strategy/buyandhold)
2020-10-18 03:20:44 +00:00
## Exchange API Examples
2020-10-10 04:06:22 +00:00
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-08 14:31:09 +00:00
## Support
2020-10-22 03:16:28 +00:00
### By contributing pull requests
2020-10-11 08:31:58 +00:00
Any pull request is welcome, documentation, format fixing, testing, features.
2020-10-22 03:16:28 +00:00
### By registering account with referral ID
2020-10-11 08:31:58 +00:00
2020-10-08 14:31:09 +00:00
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)
2020-10-22 03:16:28 +00:00
### By small amount cryptos
2020-10-08 14:31:09 +00:00
2020-10-11 08:31:58 +00:00
- BTC address `3J6XQJNWT56amqz9Hz2BEVQ7W4aNmb5kiU`
- USDT ERC20 address `0x63E5805e027548A384c57E20141f6778591Bac6F`
2020-10-08 14:31:09 +00:00
2020-10-08 12:49:05 +00:00
## License
MIT License