The modern cryptocurrency trading bot written in Go.

Overview

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

Build Status

Features

  • Exchange abstraction interface
  • Stream integration (user data websocket)
  • PnL calculation
  • Slack notification
  • KLine-based backtest
  • Built-in strategies
  • Multi-session support
  • Standard indicators (SMA, EMA, BOLL)

Supported Exchanges

  • MAX Exchange (located in Taiwan)
  • Binance Exchange
  • FTX (working in progress)

Requirements

Get your exchange API key and secret after you register the accounts (you can choose one or more exchanges):

Since the exchange implementation and support are done by a small team, if you like the work they've done for you, It would be great if you can use their referral code as your support to them. :-D

Installation

Install from binary

The following script will help you set up a config file, dotenv file:

bash <(curl -s https://raw.githubusercontent.com/c9s/bbgo/main/scripts/setup-grid.sh)

Install and Run from the One-click Linode StackScript:

Install from source

Install the bbgo command:

go get -u github.com/c9s/bbgo/cmd/bbgo

Add your dotenv file:

# if you have one
BINANCE_API_KEY=
BINANCE_API_SECRET=

# if you have one
MAX_API_KEY=
MAX_API_SECRET=

# if you have one
FTX_API_KEY=
FTX_API_SECRET=
# specify it if credentials are for subaccount
FTX_SUBACCOUNT=

Prepare your dotenv file .env.local and BBGO yaml config file bbgo.yaml.

The minimal bbgo.yaml could be generated by:

curl -o bbgo.yaml https://raw.githubusercontent.com/c9s/bbgo/main/config/minimal.yaml

To sync your own trade data:

bbgo sync --session max
bbgo sync --session binance

If you want to switch to other dotenv file, you can add an --dotenv option or --config:

bbgo sync --dotenv .env.dev --config config/grid.yaml --session binance

To sync remote exchange klines data for backtesting:

bbgo backtest --exchange binance -v --sync --sync-only --sync-from 2020-01-01

To run backtest:

bbgo backtest --exchange binance --base-asset-baseline

To query transfer history:

bbgo transfer-history --session max --asset USDT --since "2019-01-01"

To calculate pnl:

bbgo pnl --exchange binance --asset BTC --since "2019-01-01"

To run strategy:

bbgo run

Advanced Setup

Setting up Telegram Bot Notification

Open your Telegram app, and chat with @botFather

Enter /newbot to create a new bot

Enter the bot display name. ex. your_bbgo_bot

Enter the bot username. This should be global unique. e.g., bbgo_bot_711222333

Botfather will response your a bot token. Keep bot token safe

Set TELEGRAM_BOT_TOKEN in the .env.local file, e.g.,

TELEGRAM_BOT_TOKEN=347374838:ABFTjfiweajfiawoejfiaojfeijoaef

For the telegram chat authentication (your bot needs to verify it's you), if you only need a fixed authentication token, you can set TELEGRAM_AUTH_TOKEN in the .env.local file, e.g.,

TELEGRAM_BOT_AUTH_TOKEN=itsme55667788

Run your bbgo,

Open your Telegram app, search your bot bbgo_bot_711222333

Enter /start and /auth {code}

Done! your notifications will be routed to the telegram chat.

Setting up Slack Notification

Put your slack bot token in the .env.local file:

SLACK_TOKEN=xxoox

Synchronizing Trading Data

By default, BBGO does not sync your trading data from the exchange sessions, so it's hard to calculate your profit and loss correctly.

By synchronizing trades and orders to the local database, you can earn some benefits like PnL calculations, backtesting and asset calculation.

Configure MySQL Database

To use MySQL database for data syncing, first you need to install your mysql server:

# For Ubuntu Linux
sudo apt-get install -y mysql-server

Or run it in docker

Create your mysql database:

mysql -uroot -e "CREATE DATABASE bbgo CHARSET utf8"

Then put these environment variables in your .env.local file:

DB_DRIVER=mysql
[email protected](127.0.0.1:3306)/bbgo

Configure Sqlite3 Database

Just put these environment variables in your .env.local file:

DB_DRIVER=sqlite3
DB_DSN=bbgo.sqlite3

Built-in Strategies

Check out the strategy directory strategy for all built-in strategies:

  • pricealert strategy demonstrates how to use the notification system pricealert
  • xpuremaker strategy demonstrates how to maintain the orderbook and submit maker orders xpuremaker
  • buyandhold strategy demonstrates how to subscribe kline events and submit market order buyandhold
  • bollgrid strategy implements a basic grid strategy with the built-in bollinger indicator bollgrid
  • grid strategy implements the fixed price band grid strategy grid
  • flashcrash strategy implements a strategy that catches the flashcrash flashcrash

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 buyandhold strategy:

vim config/buyandhold.yaml

# run bbgo with the config
bbgo run --config config/buyandhold.yaml

Adding New Built-in 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:

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:

const ID = "newstrategy"

const stateKey = "state-v1"

var log = logrus.WithField("strategy", ID)

func init() {
    bbgo.RegisterStrategy(ID, &Strategy{})
}

Implement the strategy methods:

func (s *Strategy) Subscribe(session *bbgo.ExchangeSession) {
    session.Subscribe(types.KLineChannel, s.Symbol, types.SubscribeOptions{Interval: "1m"})
}

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:

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/mirrormaker"
	_ "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"
)

Write your own strategy

Create your go package, and initialize the repository with go mod and add bbgo as a dependency:

go mod init
go get github.com/c9s/[email protected]

Write your own strategy in the strategy file:

vim strategy.go

You can grab the skeleton strategy from https://github.com/c9s/bbgo/blob/main/pkg/strategy/skeleton/strategy.go

Now add your config:

mkdir config
(cd config && curl -o bbgo.yaml https://raw.githubusercontent.com/c9s/bbgo/main/config/minimal.yaml)

Add your strategy package path to the config file config/bbgo.yaml

---
build:
  dir: build
  imports:
  - github.com/your_id/your_swing
  targets:
  - name: swing-amd64-linux
    os: linux
    arch: amd64
  - name: swing-amd64-darwin
    os: darwin
    arch: amd64

Run bbgo run command, bbgo will compile a wrapper binary that imports your strategy:

dotenv -f .env.local -- bbgo run --config config/bbgo.yaml

Or you can build your own wrapper binary via:

bbgo build --config config/bbgo.yaml

Dynamic Injection

In order to minimize the strategy code, bbgo supports dynamic dependency injection.

Before executing your strategy, bbgo injects the components into your strategy object if it found the embedded field that is using bbgo component. for example:

type Strategy struct {
*bbgo.Notifiability
}

And then, in your code, you can call the methods of Notifiability.

Supported components (single exchange strategy only for now):

  • *bbgo.Notifiability
  • bbgo.OrderExecutor

If you have Symbol string field in your strategy, your strategy will be detected as a symbol-based strategy, then the following types could be injected automatically:

  • *bbgo.ExchangeSession
  • types.Market

Strategy Execution Phases

  1. Load config from the config file.
  2. Allocate and initialize exchange sessions.
  3. Add exchange sessions to the environment (the data layer).
  4. Use the given environment to initialize the trader object (the logic layer).
  5. The trader initializes the environment and start the exchange connections.
  6. Call strategy.Run() method sequentially.

Exchange API Examples

Please check out the example directory: examples

Initialize MAX API:

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):

stream := max.NewStream(key, secret)
stream.Subscribe(types.BookChannel, symbol, types.SubscribeOptions{})

streambook := types.NewStreamBook(symbol)
streambook.BindStream(stream)

How To Add A New Exchange

(TBD)

Helm Chart

Prepare your docker image locally (you can also use the docker image from docker hub):

make docker DOCKER_TAG=1.16.0

The docker tag version number is from the file Chart.yaml

Prepare your secret:

kubectl create secret generic bbgo-grid --from-env-file .env.local

Configure your config file, the chart defaults to read config/bbgo.yaml to create a configmap:

cp config/grid.yaml config/bbgo.yaml
vim config/bbgo.yaml

Install chart with the preferred release name, the release name maps to the previous secret we just created, that is, bbgo-grid:

helm install bbgo-grid ./charts/bbgo

Delete chart:

helm delete bbgo

Development

Setting up your local repository

  1. Click the "Fork" button from the GitHub repository.
  2. Clone your forked repository into $GOPATH/github.com/c9s/bbgo.
  3. Change directory into $GOPATH/github.com/c9s/bbgo.
  4. Create a branch and start your development.
  5. Test your changes.
  6. Push your changes to your fork.
  7. Send a pull request.

Adding new migration

rockhopper --config rockhopper_sqlite.yaml create --type sql add_pnl_column
rockhopper --config rockhopper_mysql.yaml create --type sql add_pnl_column

or

bash utils/generate-new-migration.sh add_pnl_column

Be sure to edit both sqlite3 and mysql migration files.

To test the drivers, you can do:

rockhopper --config rockhopper_sqlite.yaml up
rockhopper --config rockhopper_mysql.yaml up

Setup frontend development environment

cd frontend
yarn install

Testing Desktop App

for webview

make embed && go run -tags web ./cmd/bbgo-webview

for lorca

make embed && go run -tags web ./cmd/bbgo-lorca

Support

By contributing pull requests

Any pull request is welcome, documentation, format fixing, testing, features.

By registering account with referral ID

You may register your exchange account with my referral ID to support this project.

By small amount cryptos

  • BTC address 3J6XQJNWT56amqz9Hz2BEVQ7W4aNmb5kiU
  • USDT ERC20 address 0x63E5805e027548A384c57E20141f6778591Bac6F

Community

You can join our telegram channel https://t.me/bbgocrypto, it's in Chinese, but English is fine as well.

Contribution

BBGO has a token BBG for the ecosystem (contract address: https://etherscan.io/address/0x3afe98235d680e8d7a52e1458a59d60f45f935c0).

Each issue has its BBG label, by completing the issue with a pull request, you can get correspond amount of BBG.

If you have feature request, you can offer your BBG for contributors.

For further request, please contact us: https://t.me/c123456789s

License

MIT License

Issues
  • 請問該怎麼讓 bollgrid 策略一直跑下去呢?

    請問該怎麼讓 bollgrid 策略一直跑下去呢?

    c9s 大大你好,我這兩天有嘗試使用 bbgo 的 bollgrid 策略,但遇到一些問題

    我的 binary 是 BBGO v1.10.0 Linux 版本,以下是我的設定檔

    ---
    riskControls:
      sessionBased:
        max:
          orderExecutor:
            bySymbol:
              BTCUSDT:
                # basic risk control order executor
                basic:
                  minQuoteBalance: 0.0
                  maxBaseAssetBalance: 0.0 # disable
                  minBaseAssetBalance: 0.0 # disable
                  maxOrderAmount: 3000.0
    
    exchangeStrategies:
      - on: max
        bollgrid:
          symbol: BTCUSDT
          interval: 5m
          gridNumber: 20
          quantity: 0.0015
          profitSpread: 50.0
    

    一開始執行時會 log 出很多 submit order 的訊息,看起來都很正常,而且到 MAX 交易所上看確實也有正常掛單

    Screen Shot 2021-01-29 at 3 04 28 PM

    但執行了一陣子,全部的單都成交了(買進 BTC 又賣出)之後,BBGO 就不會繼續下單了,只有每分鐘把最新的 kline 價錢 log 出來。所以我又會把程式關掉重新執行,他才會再開始下一波的下單交易

    Screen Shot 2021-01-29 at 3 05 49 PM

    我希望他可以在一波單結束之後就繼續下一波,不用自己重開程式,所以想請問是我的設定檔哪部分寫錯了嗎,還是說本來執行一次就是只有進行一波買進、賣出?

    謝謝 c9s,能寫出 bbgo 真的很厲害

    opened by LarryLuTW 14
  • fix(pnl): checking the side of trade, not taker or maker

    fix(pnl): checking the side of trade, not taker or maker

    The ask/bid amount should be calculated by the side of trade, not by taker or maker side

    opened by jnlin 9
  • use ticker api for calculating assets

    use ticker api for calculating assets

    3 BBG enhancement exchange 
    opened by c9s 8
  • bollgrid: generate the last order if balance is not enough

    bollgrid: generate the last order if balance is not enough

    In bollgrid strategy, The original behavior is that bbgo will stop generating new orders when the balance is insufficient.

    Although the left balance is not much, I think it's wasteful to be idle there. Therefore, I use the remaining balance to send the last order when the balance is insufficient. I hope this will increase the utilization of assets.

    opened by LarryLuTW 6
  • feat/calculate asset with ticker

    feat/calculate asset with ticker

    Part of issue #100

    Use ticker API when calculating asset (symbols in session.lastPrices are upper case, right?)

    opened by ychi 5
  • Remove --config argument in balances command

    Remove --config argument in balances command

    The current balances command needs to be executed with the --config <config_file>, but the config file is NOT needed to create the session. So I delete the code which reads the config file. In this way, you can get the balance by running bbgo balances --session=max.

    opened by LarryLuTW 5
  • fix: Did not update Trade after executionReport event on Binance session

    fix: Did not update Trade after executionReport event on Binance session

    I run the grid strategy with Binance. It could create 40 grids without warning. But it did not create new order after executionReport TRADE event.

    If I cancel the BBGO, it cannot cancel order correctly.

    My bbgo.yml config

    sessions:
      binance:
        exchange: binance
        envVarPrefix: binance
    
    riskControls:
      sessionBased:
        binance:
          orderExecutor:
            bySymbol:
              DOGEUSDT:
                basic:
                  minQuoteBalance: 100
                  maxBaseAssetBalance: 5000
                  minBaseAssetBalance: 1000
                  maxOrderAmount: 50
    
    exchangeStrategies:
      - on: binance
        grid:
          symbol: DOGEUSDT
          upperPrice: 0.60
          lowerPrice: 0.40
          profitSpread: 0.01
          gridNumber: 40
          quantity: 40
          long: true
    

    LOG

    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.455000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.460000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.465000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.470000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.475000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.480000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.485000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.490000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.495000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.500000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.505000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.510000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.515000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.520000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.525000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.530000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.535000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.540000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.545000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.550000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.555000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.560000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.565000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.570000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.575000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.580000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.585000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.590000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.595000
    [0001]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT SELL 40.000000 @ 0.600000
    [0001]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863340 ClientOrderID:x-NSUYEBKM7aed4aa0-319d-4633-8fd TransactTime:1620673209429 Price:0.45500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0001]  INFO executionReport &{{executionReport 1620673209430} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.45500000 0.00000000 true false 0  NEW NEW 944863340 2084405755 -1 1620673209429 0.00000000 0.00000000 0.00000000 0.00000000 1620673209429} exchange=binance
    [0001]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863354 ClientOrderID:x-NSUYEBKM5d6057c2-ab11-413a-a99 TransactTime:1620673209484 Price:0.46000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0001]  INFO executionReport &{{executionReport 1620673209484} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.46000000 0.00000000 true false 0  NEW NEW 944863354 2084405786 -1 1620673209484 0.00000000 0.00000000 0.00000000 0.00000000 1620673209484} exchange=binance
    [0001]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863371 ClientOrderID:x-NSUYEBKMd5b4fce4-3b42-436e-9f8 TransactTime:1620673209540 Price:0.46500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0001]  INFO executionReport &{{executionReport 1620673209540} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.46500000 0.00000000 true false 0  NEW NEW 944863371 2084405819 -1 1620673209540 0.00000000 0.00000000 0.00000000 0.00000000 1620673209540} exchange=binance
    [0001]  INFO executionReport &{{executionReport 1620673209592} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.47000000 0.00000000 true false 0  NEW NEW 944863383 2084405842 -1 1620673209591 0.00000000 0.00000000 0.00000000 0.00000000 1620673209591} exchange=binance
    [0001]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863383 ClientOrderID:x-NSUYEBKMf352604a-03d9-40de-b1c TransactTime:1620673209591 Price:0.47000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863403 ClientOrderID:x-NSUYEBKMe4b5fcce-d64f-411f-962 TransactTime:1620673209652 Price:0.47500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209653} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.47500000 0.00000000 true false 0  NEW NEW 944863403 2084405874 -1 1620673209652 0.00000000 0.00000000 0.00000000 0.00000000 1620673209652} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863416 ClientOrderID:x-NSUYEBKMbd7b0447-db61-4f2e-b6b TransactTime:1620673209703 Price:0.48000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209704} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.48000000 0.00000000 true false 0  NEW NEW 944863416 2084405907 -1 1620673209703 0.00000000 0.00000000 0.00000000 0.00000000 1620673209703} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863448 ClientOrderID:x-NSUYEBKM8f94c579-1b0e-4923-b87 TransactTime:1620673209752 Price:0.48500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209753} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.48500000 0.00000000 true false 0  NEW NEW 944863448 2084406094 -1 1620673209752 0.00000000 0.00000000 0.00000000 0.00000000 1620673209752} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863479 ClientOrderID:x-NSUYEBKM790864f0-0fda-4022-900 TransactTime:1620673209810 Price:0.49000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209811} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.49000000 0.00000000 true false 0  NEW NEW 944863479 2084406149 -1 1620673209810 0.00000000 0.00000000 0.00000000 0.00000000 1620673209810} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863519 ClientOrderID:x-NSUYEBKM6fc61492-4d7d-45f7-9ab TransactTime:1620673209864 Price:0.49500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209866} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.49500000 0.00000000 true false 0  NEW NEW 944863519 2084406255 -1 1620673209864 0.00000000 0.00000000 0.00000000 0.00000000 1620673209864} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863554 ClientOrderID:x-NSUYEBKM88a68b0a-446f-4f62-b39 TransactTime:1620673209924 Price:0.50000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209924} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.50000000 0.00000000 true false 0  NEW NEW 944863554 2084406324 -1 1620673209924 0.00000000 0.00000000 0.00000000 0.00000000 1620673209924} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863579 ClientOrderID:x-NSUYEBKM3329453e-6066-4e97-ade TransactTime:1620673209981 Price:0.50500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673209981} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.50500000 0.00000000 true false 0  NEW NEW 944863579 2084406364 -1 1620673209981 0.00000000 0.00000000 0.00000000 0.00000000 1620673209981} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863601 ClientOrderID:x-NSUYEBKM1aea2605-b08f-4365-83f TransactTime:1620673210031 Price:0.51000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210032} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.51000000 0.00000000 true false 0  NEW NEW 944863601 2084406397 -1 1620673210031 0.00000000 0.00000000 0.00000000 0.00000000 1620673210031} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863632 ClientOrderID:x-NSUYEBKM43ca1745-58a7-41d5-bba TransactTime:1620673210087 Price:0.51500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210087} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.51500000 0.00000000 true false 0  NEW NEW 944863632 2084406451 -1 1620673210087 0.00000000 0.00000000 0.00000000 0.00000000 1620673210087} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210137} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.52000000 0.00000000 true false 0  NEW NEW 944863675 2084406519 -1 1620673210136 0.00000000 0.00000000 0.00000000 0.00000000 1620673210136} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863675 ClientOrderID:x-NSUYEBKM5e75a5fe-c303-4f07-b2d TransactTime:1620673210136 Price:0.52000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210200} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.52500000 0.00000000 true false 0  NEW NEW 944863706 2084406575 -1 1620673210199 0.00000000 0.00000000 0.00000000 0.00000000 1620673210199} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863706 ClientOrderID:x-NSUYEBKM8b84f0e0-7ee3-4597-811 TransactTime:1620673210199 Price:0.52500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210254} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.53000000 0.00000000 true false 0  NEW NEW 944863744 2084406641 -1 1620673210254 0.00000000 0.00000000 0.00000000 0.00000000 1620673210254} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863744 ClientOrderID:x-NSUYEBKM0021bfed-4ace-450e-afd TransactTime:1620673210254 Price:0.53000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863772 ClientOrderID:x-NSUYEBKM292f13b8-b17f-421a-92a TransactTime:1620673210308 Price:0.53500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210309} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.53500000 0.00000000 true false 0  NEW NEW 944863772 2084406678 -1 1620673210308 0.00000000 0.00000000 0.00000000 0.00000000 1620673210308} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863791 ClientOrderID:x-NSUYEBKM9e3e84fe-9f24-4b61-98e TransactTime:1620673210364 Price:0.54000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210364} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.54000000 0.00000000 true false 0  NEW NEW 944863791 2084406715 -1 1620673210364 0.00000000 0.00000000 0.00000000 0.00000000 1620673210364} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863807 ClientOrderID:x-NSUYEBKMaf7da682-4f5a-428c-b67 TransactTime:1620673210414 Price:0.54500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210415} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.54500000 0.00000000 true false 0  NEW NEW 944863807 2084406759 -1 1620673210414 0.00000000 0.00000000 0.00000000 0.00000000 1620673210414} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210470} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.55000000 0.00000000 true false 0  NEW NEW 944863825 2084406794 -1 1620673210469 0.00000000 0.00000000 0.00000000 0.00000000 1620673210469} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863825 ClientOrderID:x-NSUYEBKM1f5f2cee-aa83-4e51-a34 TransactTime:1620673210469 Price:0.55000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863844 ClientOrderID:x-NSUYEBKM858b5b3c-36aa-4d65-aad TransactTime:1620673210522 Price:0.55500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210523} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.55500000 0.00000000 true false 0  NEW NEW 944863844 2084406836 -1 1620673210522 0.00000000 0.00000000 0.00000000 0.00000000 1620673210522} exchange=binance
    [0002]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863868 ClientOrderID:x-NSUYEBKMf3d0f7ea-c4aa-40e2-a5b TransactTime:1620673210576 Price:0.56000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0002]  INFO executionReport &{{executionReport 1620673210577} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.56000000 0.00000000 true false 0  NEW NEW 944863868 2084406899 -1 1620673210576 0.00000000 0.00000000 0.00000000 0.00000000 1620673210576} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210632} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.56499000 0.00000000 true false 0  NEW NEW 944863894 2084406948 -1 1620673210632 0.00000000 0.00000000 0.00000000 0.00000000 1620673210632} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863894 ClientOrderID:x-NSUYEBKM542cae76-0cda-4056-b10 TransactTime:1620673210632 Price:0.56499000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210686} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.56999000 0.00000000 true false 0  NEW NEW 944863921 2084406997 -1 1620673210686 0.00000000 0.00000000 0.00000000 0.00000000 1620673210686} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863921 ClientOrderID:x-NSUYEBKM5bb38d6b-a940-49ab-990 TransactTime:1620673210686 Price:0.56999000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863949 ClientOrderID:x-NSUYEBKMaeeedbb7-935b-4643-927 TransactTime:1620673210751 Price:0.57499000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210752} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.57499000 0.00000000 true false 0  NEW NEW 944863949 2084407050 -1 1620673210751 0.00000000 0.00000000 0.00000000 0.00000000 1620673210751} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863970 ClientOrderID:x-NSUYEBKMf37c50f6-7178-41e8-ab6 TransactTime:1620673210815 Price:0.57999000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210816} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.57999000 0.00000000 true false 0  NEW NEW 944863970 2084407091 -1 1620673210815 0.00000000 0.00000000 0.00000000 0.00000000 1620673210815} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944863992 ClientOrderID:x-NSUYEBKMd81275fd-bcc0-4f0c-b59 TransactTime:1620673210869 Price:0.58500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210870} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.58500000 0.00000000 true false 0  NEW NEW 944863992 2084407139 -1 1620673210869 0.00000000 0.00000000 0.00000000 0.00000000 1620673210869} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864013 ClientOrderID:x-NSUYEBKMd9cac910-bf06-4abf-ae6 TransactTime:1620673210920 Price:0.59000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210920} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.59000000 0.00000000 true false 0  NEW NEW 944864013 2084407192 -1 1620673210920 0.00000000 0.00000000 0.00000000 0.00000000 1620673210920} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864047 ClientOrderID:x-NSUYEBKM18cf6a89-cf85-4cc3-bbf TransactTime:1620673210979 Price:0.59500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673210979} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.59500000 0.00000000 true false 0  NEW NEW 944864047 2084407321 -1 1620673210979 0.00000000 0.00000000 0.00000000 0.00000000 1620673210979} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864087 ClientOrderID:x-NSUYEBKM58221a9a-ebc8-4776-95f TransactTime:1620673211035 Price:0.60000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:SELL Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO placing grid buy orders from 0.450000 to 0.400000, grid spread 0.005000 strategy=grid
    [0003]  INFO submitting 11 buy orders... strategy=grid
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.450000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.445000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.440000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.435000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.430000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.425000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.420000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.415000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.410000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.405000
    [0003]  INFO submitting order: SubmitOrder DOGEUSDT LIMIT BUY 40.000000 @ 0.400000
    [0003]  INFO executionReport &{{executionReport 1620673211037} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.60000000 0.00000000 true false 0  NEW NEW 944864087 2084407404 -1 1620673211035 0.00000000 0.00000000 0.00000000 0.00000000 1620673211035} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864116 ClientOrderID:x-NSUYEBKM038734b8-ef00-4c4f-8b5 TransactTime:1620673211091 Price:0.45000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211091} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.45000000 0.00000000 true false 0  NEW NEW 944864116 2084407464 -1 1620673211091 0.00000000 0.00000000 0.00000000 0.00000000 1620673211091} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864146 ClientOrderID:x-NSUYEBKMf243b8fc-4f0b-419d-b53 TransactTime:1620673211143 Price:0.44500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211144} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.44500000 0.00000000 true false 0  NEW NEW 944864146 2084407517 -1 1620673211143 0.00000000 0.00000000 0.00000000 0.00000000 1620673211143} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864173 ClientOrderID:x-NSUYEBKM8af31c72-761d-4969-8a5 TransactTime:1620673211203 Price:0.44000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211204} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.44000000 0.00000000 true false 0  NEW NEW 944864173 2084407591 -1 1620673211203 0.00000000 0.00000000 0.00000000 0.00000000 1620673211203} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211257} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.43500000 0.00000000 true false 0  NEW NEW 944864196 2084407639 -1 1620673211257 0.00000000 0.00000000 0.00000000 0.00000000 1620673211257} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864196 ClientOrderID:x-NSUYEBKMf1b1b8f9-34db-4328-bd2 TransactTime:1620673211257 Price:0.43500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211316} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.43000000 0.00000000 true false 0  NEW NEW 944864217 2084407698 -1 1620673211316 0.00000000 0.00000000 0.00000000 0.00000000 1620673211316} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864217 ClientOrderID:x-NSUYEBKM9586ec74-6c2c-4e9a-bc2 TransactTime:1620673211316 Price:0.43000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211381} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.42500000 0.00000000 true false 0  NEW NEW 944864233 2084407736 -1 1620673211381 0.00000000 0.00000000 0.00000000 0.00000000 1620673211381} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864233 ClientOrderID:x-NSUYEBKM3911b61d-f48d-4eed-bc5 TransactTime:1620673211381 Price:0.42500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211431} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.42000000 0.00000000 true false 0  NEW NEW 944864251 2084407793 -1 1620673211430 0.00000000 0.00000000 0.00000000 0.00000000 1620673211430} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864251 ClientOrderID:x-NSUYEBKMa71223b2-d3f6-46f6-98c TransactTime:1620673211430 Price:0.42000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864278 ClientOrderID:x-NSUYEBKMcd9383cc-eee8-4cb2-9ae TransactTime:1620673211492 Price:0.41500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211493} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.41500000 0.00000000 true false 0  NEW NEW 944864278 2084407847 -1 1620673211492 0.00000000 0.00000000 0.00000000 0.00000000 1620673211492} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864290 ClientOrderID:x-NSUYEBKMc7da99f9-7eb3-4f09-bd8 TransactTime:1620673211547 Price:0.41000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211548} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.41000000 0.00000000 true false 0  NEW NEW 944864290 2084407881 -1 1620673211547 0.00000000 0.00000000 0.00000000 0.00000000 1620673211547} exchange=binance
    [0003]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864312 ClientOrderID:x-NSUYEBKMefbda20c-db7b-471e-bfb TransactTime:1620673211604 Price:0.40500000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0003]  INFO executionReport &{{executionReport 1620673211605} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.40500000 0.00000000 true false 0  NEW NEW 944864312 2084407949 -1 1620673211604 0.00000000 0.00000000 0.00000000 0.00000000 1620673211604} exchange=binance
    [0004]  INFO executionReport &{{executionReport 1620673211658} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.40000000 0.00000000 true false 0  NEW NEW 944864336 2084407989 -1 1620673211658 0.00000000 0.00000000 0.00000000 0.00000000 1620673211658} exchange=binance
    [0004]  INFO order creation response: &{Symbol:DOGEUSDT OrderID:944864336 ClientOrderID:x-NSUYEBKM29a4c71c-76ae-4d63-a79 TransactTime:1620673211658 Price:0.40000000 OrigQuantity:40.00000000 ExecutedQuantity:0.00000000 CummulativeQuoteQuantity:0.00000000 IsIsolated:false Status:NEW TimeInForce:GTC Type:LIMIT Side:BUY Fills:[] MarginBuyBorrowAmount: MarginBuyBorrowAsset:} exchange=binance
    [0025]  INFO executionReport &{{executionReport 1620673233048} DOGEUSDT  BUY LIMIT 0.00000000 0.00000000 0.45000000 0.00000000 false true 0.00002051 BNB TRADE FILLED 944864116 2084438080 198658136 1620673233045 40.00000000 18.00000000 0.45000000 18.00000000 1620673211091} exchange=binance
    [0052]  INFO kline closed: binance 2021-05-11 03:00 DOGEUSDT 1m Open: 0.45366000 Close: 0.44836000 High: 0.45389000 Low: 0.44800000 Volume: 50691748.60000000 Change: -0.0053 Max Change: 0.0059 marketData=kline session=binance
    [0068]  INFO executionReport &{{executionReport 1620673275878} DOGEUSDT  SELL LIMIT 0.00000000 0.00000000 0.45500000 0.00000000 false true 0.00002074 BNB TRADE FILLED 944863340 2084481393 198665259 1620673275877 40.00000000 18.20000000 0.45500000 18.20000000 1620673209429} exchange=binance
    [0112]  INFO kline closed: binance 2021-05-11 03:01 DOGEUSDT 1m Open: 0.44817000 Close: 0.45816000 High: 0.45933000 Low: 0.44801000 Volume: 18938903.80000000 Change: 0.0100 Max Change: 0.0113 marketData=kline session=binance
    

    Cancel LOG

    ^C[5445]  WARN interrupt
    [5445]  INFO shutting down...
    [5445]  INFO backing up grid state... strategy=grid
    [5445]  INFO active order snapshot saved strategy=grid
    [5445]  INFO canceling active orders... strategy=grid
    [5445] ERROR order cancel error error=Delete "https://api.binance.com/api/v3/order?timestamp=1620678651294&signature=9c11cacf4b6ec1c4d0f7147bb5debabdd7134f3d2a8c492ba0276d78d1dc5eea": context canceled exchange=binance
    [5445] ERROR order cancel error error=Delete "https://api.binance.com/api/v3/order?timestamp=1620678651299&signature=d79e398b08f050268082ee10ef46fdddc0b5a47fdda675432d17dcda3404052b": context canceled exchange=binance
    [5445] ERROR order cancel error error=Delete "https://api.binance.com/api/v3/order?timestamp=1620678651300&signature=fc4417951e659ccb7973db92b023c68d06f961e0fb9e02657259013d04955286": context canceled exchange=binance
    [5445] ERROR order cancel error error=Delete "https://api.bi1840cea8bcd865bd382bd382a833550d1ce9925be7b42d44bb7d20c9c770c237nance.com/api/v3/order?timestamp=1620678651300&signature=1840cea8bcd865bd382bd382a833550d1ce9925be7b42d44bb7d20c9c770c237": context canceled exchange=binance
    
    opened by jessy1092 5
  • Error: Data too long for column for 'symbol' for SANDUSDT

    Error: Data too long for column for 'symbol' for SANDUSDT

    trade insert error: 
    {GID:0 ID: OrderID:Exchange:max Price: Quantity: QuoteQuantity: 
    Symbol:SANDUSDT 
    Side: IsBuyer: IsMaker: Time: Fee: FeeCurrency:}
    

    ERROR error Error 1406: Data too long for column 'symbol' at row 1

    bug 
    opened by chechiachang 4
  • add yaml tag for mapping basic risk control order executor.

    add yaml tag for mapping basic risk control order executor.

    add yaml tag for mapping basic risk control order executor.

    opened by crossgate10 4
  • fix(bollgrid): skip canceling profit orders on graceful exit

    fix(bollgrid): skip canceling profit orders on graceful exit

    profit orders shouldn't be canceled on graceful exit unless properly persisted.

    Issue: #220

    opened by frankurcrazy 4
  • binance listen key keep alive request might fail due to the connection idle timeout

    binance listen key keep alive request might fail due to the connection idle timeout

    find a way to reduce the idle connection timeout parameter for HTTP transport.

    bug 
    opened by c9s 0
  • telegram bot not work when notifications.routing not defined

    telegram bot not work when notifications.routing not defined

    bbgo.yaml 中的 notifications.routing 如果沒設定,就算 .env.local 有設定 TELEGRAM_BOT_AUTH_TOKEN, 執行後會跳 [0001] WARN telegram session not found, generating new one-time password key for new telegram session...

    然後在 bot 那邊 /start,/auth {自己設定的密碼} 後,bot 回應 Hi , I know you, I will send you the notifications!

    但不會收到任何通知,加上 notifications.routing 的設定之後才會有通知

    3 BBG bug 
    opened by yubinTW 0
  • binance future support

    binance future support

    First of all, thank you so much for great project!!

    Do you have some plans for support for binance future API?

    Thank you in advance. Good luck :)

    opened by MoMentum99 2
  • add net asset value recorder

    add net asset value recorder

    record the net asset value into relational database table

    net_asset_values(session, exchange, asset, value, value_in_usd, created_at)

    opened by c9s 0
  • add positions table in the relational database

    add positions table in the relational database

    data enhancement 
    opened by c9s 0
  • add strategy PnL table for recording PnL separately

    add strategy PnL table for recording PnL separately

    may start with the below table:

    strategy_pnl(strategy_id, instance_id, trade_id, profit, created_at)

    opened by c9s 0
  • fix: Too many new orders; current limit is 50 orders per 10 SECOND on Binance API

    fix: Too many new orders; current limit is 50 orders per 10 SECOND on Binance API

    I set grid strategy on Binance. it show warning and can not set the correct number of girds.

    [0004]  WARN <APIError> code=-1015, msg=Too many new orders; current limit is 50 orders per 10 SECOND. strategy=grid
    

    My example bbgo.yml config

    exchangeStrategies:
      - on: binance
        grid:
          symbol: DOGEUSDT
          upperPrice: 0.60
          lowerPrice: 0.40
          profitSpread: 0.01
          gridNumber: 100
          quantity: 40
          long: true
    

    If I set gridNumber as 50. It also shows warning.

    opened by jessy1092 2
  • add binance future order api support

    add binance future order api support

    10 BBG exchange 
    opened by c9s 0
Releases(v1.16.0)
Owner
Yo-An Lin
a developer who really loves crafting tools
Yo-An Lin
A golang implementation of a console-based trading bot for cryptocurrency exchanges

Golang Crypto Trading Bot A golang implementation of a console-based trading bot for cryptocurrency exchanges. Usage Download a release or directly bu

Alessandro Sanino 574 Jul 22, 2021
Slack Bot Framework

slacker Built on top of the Slack API github.com/slack-go/slack with the idea to simplify the Real-Time Messaging feature to easily create Slack Bots,

Raed Shomali 536 Jul 23, 2021
Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges

Kelp Kelp is a free and open-source trading bot for the Stellar universal marketplace and for centralized exchanges such as Binance, Kraken, CoinbaseP

Stellar 714 Jul 25, 2021
Telegram Bot Framework for Go

Margelet Telegram Bot Framework for Go is based on telegram-bot-api It uses Redis to store it's states, configs and so on. Any low-level interactions

Gleb Sinyavskiy 62 Jul 15, 2021
easy-peasy wg tg bot

wireguard-telegram-bot Simple-Dimple Telegram Bot for Wireguard VPN config generation Functionality /menu — list available commands /newkeys — create

Sergey Skaredov 12 Jun 7, 2021
Flexible message router add-on for go-telegram-bot-api library.

telemux Flexible message router add-on for go-telegram-bot-api library. Table of contents Motivation Features Minimal example Documentation Changelog

Andrew Dunai 12 Jul 20, 2021
Buy crypto low/Sell high on Binance. Simple, powerful configuration, trade multiple assets simultaneously, single binary deployment with no external dependencies!

bnc-trading-bot Download the latest release for your OS This bot automatically trades crypto / fiat assets on Binance.com according to simple, configu

Matej Ľach 5 Jul 19, 2021
The modern cryptocurrency trading bot written in Go.

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 Features E

Yo-An Lin 331 Jul 24, 2021
Chatto is a minimal chatbot framework in Go.

chatto Simple chatbot framework written in Go, with configurations in YAML. The aim of this project is to create very simple text-based chatbots using

Jaime Tenorio 88 Jul 12, 2021
Golang bindings for the Telegram Bot API

Golang bindings for the Telegram Bot API All methods are fairly self explanatory, and reading the godoc page should explain everything. If something i

null 3k Jul 23, 2021
Bot that polls activity API for Github organisation and pushes updates to Telegram.

git-telegram-bot Telegram bot for notifying org events Requirements (for building) Go version 1.16.x Setup If you don't have a telegram bot token yet,

Skycoin 3 May 13, 2021
A telegram bot that fetches multiple RSS cryptocurrency news feeds for sentiment analysis

Crypto News Telegram Bot A simple telegram bot that will help you stay updated on your latest crypto news This bot will help you keep track of the lat

Cha 4 May 11, 2021
Telebot is a Telegram bot framework in Go.

Telebot "I never knew creating Telegram bots could be so sexy!" go get -u gopkg.in/tucnak/telebot.v2 Overview Getting Started Poller Commands Files Se

Ian P Badtrousers 2k Jul 22, 2021
CryptoPump is a cryptocurrency trading bot that focuses on high speed and flexibility

CryptoPump is a cryptocurrency trading bot that focuses on high speed and flexibility. The algorithms utilize Go Language and WebSockets to react in real-time to market movements based on Bollinger statistical analysis and pre-defined profit margins.

null 5 Jul 19, 2021