BBGO — 在家也可以跑網格策略程式

c9s
7 min readNov 11, 2020

--

各位如果是從 Google 進來看到這篇文章,應該已經很暸解網格策略的運作方式還有獲利模型,網格策略也有很多種變化,在這邊就不再闡述。

BBGO 是筆者開發的一套開放原始碼的加密貨幣交易程式,可免費取得,適合初學者執行內建策略,也適合進階開發者開發自己的交易策略。

不懂如何寫程式的人也可以用 BBGO 跑網格策略。

設定完整的 BBGO 甚至還支援回測,策略開發者或是使用者都可以利用這個回測系統來回測自己的策略收益成效。

有些用戶可能覺得用像派網這類中國公司的服務,不放心把 API 密鑰交出去,那就可以考慮使用 BBGO 跑在自己的筆電或自己的主機上。 而且因為是開放原始碼,原始碼都會受到公開檢視,比較不會被注入用來竊取機密的程式碼。

BBGO 目前支援 Linux 以及 Mac OS,所以只要你有一台 Macbook 或是任何的 Linux 主機,都可以用 BBGO 交易程式來跑交易策略,這邊就以內建的網格策略來做範例。

MAX 交易所帳號設定

👉 首先你要先有一個 MAX 交易所的帳戶,如果還沒有的話可以點這邊註冊

👉 接下來你需要啟動 MAX 交易所上的 API 功能,請參考這篇文章開啟 API 功能API 密鑰開完之後請不要關掉畫面喔! 因為接下來我們會用到。

接下來要開始設定 BBGO

沒有使用過 Terminal (終端機的朋友) 要先打開 Terminal,可以在 Mac OS 的 “應用程式” 裡面找到 “工具程式” 的資料夾:

進去之後就可以找終端機 “Terminal.app”

雙擊之後即可打開終端機,畫面如下:

Mac OS 的終端機畫面

終端機預設開啟的目錄是在你的家目錄 (Home) ,好奇的人可以輸入:

open .

這樣就會用 Finder 打開目前的目錄。

接下來,直接把下面的指令貼到終端機:

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

並按下 Enter,這個腳本就會開始下載 BBGO 的 Binary,然後協助你設定 BBGO 的設定檔:

BBGO 的 API Key 與 API Secret 設定畫面

跑完這隻程式後,他會產生兩個檔案:

  1. 一個叫 .env.local 是用來儲存你的 MAX API Key 與 Secret Key 的檔案。
  2. 另一個叫 bbgo.yaml 是你的 BBGO 策略設定檔。

產生完後,腳本會自動幫你用文字編輯軟體 (TextEdit) 打開 BBGO 的設定檔:

BBGO 設定檔編輯畫面

這邊來詳細說明一下各個設定的細節。

首先是 riskControls ,風險控管的部分:

riskControls:
sessionBased:
max: # 這邊是針對 MAX 交易所設定的風險控管
orderExecutor:
bySymbol:
BTCUSDT: # 這邊是要啟用風險控管的市場 BTC=Base USDT=Quote
basic: # 使用基本的風險控管功能
minQuoteBalance: 100.0 # 最少要保留多少 USDT
maxBaseAssetBalance: 3.0 # 最多可以買到多少 BTC
minBaseAssetBalance: 0.0 # 最少要保留多少 BTC 避免賣超
maxOrderAmount: 1000.0 # 每單最多的金額,這邊是 USDT

第二個部分是策略設定細節:

exchangeStrategies:
- on: max # 策略要跑在 MAX
grid: # 使用內建的基本網格策略
symbol: BTCUSDT
quantity: 0.002
gridNumber: 100
profitSpread: 50.0
upperPrice: 14000.0 # 網格最上方的價格
lowerPrice: 11000.0 # 網格最下方的價格 從 11000 掛到 14000

以下解釋一下幾個參數:

  1. symbol 網格要跑的市場
  2. quantity 每格要下的單量
  3. gridNumber 要下幾格,格數不能太少,不然成交量會不夠。 寫 100就是代表 100 格,依照現在價格下 100 張買賣單。
  4. profitSpread 每格成交後要下的反面的單所使用的獲利價差。 設定 50.0 的話,假設買單 9000.0 成交,就會掛 9050.0 賣單。
  5. upperPrice 網格最上方的價格
  6. lowerPrice 網格最下方的價格

編輯完自己的設定後,按下存檔或 Cmd+S,你就可以開始跑 BBGO 了。

回到剛剛的安裝畫面,已經有告訴你指示,只要照著下就可以了:

BBGO 啟動指令
source .env.local && ./bbgo run --config bbgo.yaml

按下 Enter 之後就會開始跑掛單跑網格策略了!

網格策略執行畫面

如果要停止,只需要按下 Ctrl-C 就可以停止 BBGO,要重啟只需要重新執行一樣的指令即可:

source .env.local && ./bbgo run --config bbgo.yaml

是不是很簡單呢?

如何重新設定

只要重跑腳本就會重新設定了,如果你先前已經設定過,腳本會自動問你要不要覆蓋之前的檔案,譬如 .env.local 這個檔案:

Found existing .env.local, you will overwrite the existing .env.local file!
Are you sure? (Y/n)

如果你要蓋掉,就按下 Y 或 Enter,如果不要,請輸入 n 。如果要中斷腳本的話請按 Ctrl-C。

如果腳本發現你已經有 bbgo.yaml 的話,也會問你要不要蓋掉:

Found existing bbgo.yaml, you will overwrite the existing bbgo.yaml file!
Are you sure? (Y/n)

如果要的話就輸入 Y 或 Enter,不要的話,請輸入 n 。 如果要中斷腳本的話請按 Ctrl-C。

如果你要備份 BBGO 策略設定,你可以下複製的指令:

cp -v bbgo.yaml your-config-name.yaml

啟動 BBGO 的時候只要把最後的一個 config 參數換掉,就可以跑別的參數了,譬如:

source .env.local && ./bbgo run --config your-config-name.yaml

策略操作建議

  1. 網格策略的優勢主要是在趨勢不明的時候可以透過波動觸發單的成交。
  2. 不建議在強烈漲幅的時候進場操作。

以上建議僅供參考。

--

--

c9s
c9s

Written by c9s

Yo-an Lin, yet another programmer in 21 century

Responses (1)