BBGO – 加強版網格 – 無限通道網格策略

c9s
8 min readNov 14, 2020

--

能夠動態調整區間的布林通道網格策略

固定價格區間網格的缺陷

已經操作過一般網格的使用者應該已經知道一般網格的限制,固定價格區間網格就是行情一旦超出網格設定的範圍,就不再交易。

固定價格區間網格

固定價格區間的網格,缺點就是使用者必須不斷調整價格區間,讓網格維持交易。

因此有人就嘗試找出一種策略,讓系統可以動態調整價位區間。

在外匯市場有一些操作方式就是使用布林通道的指標來重新定義價格區間操作網格。

布林通道指標是什麼呢?

布林通道指標 (Bollinger Band Indicator) 是利用統計學標準差算出過去價格變化的離間程度,如果過去的七個歷史價格變化高,所得出的標準差就會高,布林通道嘗試利用這個標準差預測接下來價格變化的區間。

Bollinger Band

標準的算法如下,首先需要先算出平均線,平均線的算法就是把一段歷史價格加總起來並且算出平均價:

再來算出標準差之後,就把這個標準差加上這個平均線的價格得到上通道,平均線減去標準差則得到下通道:

Lower Bollinger Band
Upper Bollinger Band

有這個布林通道的上通道與下通道之後,這個上通道與下通道就會被策略當作價格區間,自動在通道內佈滿買單賣單。

這些數學如果看不懂沒有關係,BBGO 的加密貨幣框架已經有元件會幫你算好這些 Indicator,包含 EWMA, SMA 與我們要用的 Bollinger Indicator。

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

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

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

有些用戶可能覺得用像派網這類中國公司的服務,不放心把 API 密鑰交出去,也不放心策略裡面寫了哪些程式。

那就可以考慮使用 BBGO 跑在自己的筆電或自己的主機上。 而且因為是開放原始碼,全都透明化,原始碼都會受到公開檢視,比較不會被注入用來竊取機密的程式碼。

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

MAX 交易所帳號設定

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

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

還不知道怎麼操作 Mac OS Terminal 的朋友可以先參考先前的文章練習看看:

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

繼續往下看的朋友相信已經很熟稔了,我們就進入無限通道網格策略 Bollinger Band Grid Strategy 的設定方式囉。

打開終端機後,直接把下面的指令貼到終端機,注意到我們下載的是 bollgrid 這個腳本喔:

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

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

BBGO 的 API Key 與 API Secret 設定畫面

跑完這隻程式後,他會自動幫你用 TextEdit 打開 BBGO 的設定檔。

我們同樣介紹一下策略的每個參數的設定方式,無限布林網格在 BBGO 裡的名字叫 bollgrid ,注意到這邊是 bollgrid 而不是 grid 唷:

exchangeStrategies:
- on: max
bollgrid:
symbol: BTCUSDT
interval: 5m
gridNumber: 20
quantity: 0.01
profitSpread: 30.0
  1. symbol 是你要操作的市場
  2. interval 是策略要用多久的時間區間算布林通道,可以用一分鐘 1m ,五分鐘 5m ,十五分鐘 15m , 或一小時 1h ,這個參數的設定要看你的市場波動性如何。
  3. gridNumber 通道內要下單的網格格數,20 意味著要在網格內下 20 張單。
  4. quantity 是指每個格子要下多少顆量,要注意不是金額喔,如果是 0.01 那就是 0.01 個 BTC,如果想試玩建議下 0.001 BTC,一來滿足交易所最小下單金額限制 10 美元,本金有限的話也可以佈滿足夠的格數。
  5. profitSpread 是網格單成交之後要下對應的買賣單獲利,相對的價差ㄝ舉例來說 50 元的買單成交後,因為 profitSpread 設定是 30 所以會掛 80 元賣單。

設定檔存檔後,就可以回到終端機 (Terminal) 下腳本給你的命令:

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

上面的指令按下 Enter 後就會開始下單了,下單的過程會清清楚楚,你也可以從畫面上看到行情的變化。

如果要停止,只需要按下 Ctrl-C ,策略就會自動把自己的訂單取消掉。(不會影響到你手動下的單)

報酬率

使用無限布林通道網格的績效如何? 利用 9 月幣價波動不大的時候來做了回測,比直接 Hold BTC 的績效好一倍:

bollgrid performance

策略操作建議

  1. 網格策略的優勢主要是在趨勢不明的時候可以透過波動觸發單的成交。
  2. 不建議在強烈漲幅或跌幅的時候進場操作。
  3. 由於加密貨幣波動較外匯市場來得大,建議網格程式不要開太久,最久大概七天左右,但看市場狀況不同,請自己斟酌。

以上建議僅供參考。

如何重新設定

只要重跑腳本就會重新設定了,如果你先前已經設定過,腳本會自動問你要不要覆蓋之前的檔案,譬如 .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

— — — — — — 以下與本文無關 — — — — — —

我個人最近在推廣符合法規的台灣加密貨幣交易所 MAX,用最近在加密貨幣市場的獲利分享給看到這篇文章的幸運者。這不是詐騙 😂 我都用真實姓名,你也可以查證。

只要完成 Google 表單中的任務就可拿到總共 9 美元 (USDT),只限內轉

https://bit.ly/max-9usdt

MaiCoin集團為台灣歷史最久的數位資產交易集團,成立於2014年,提供加密貨幣的交易服務,業務包含MaiCoin平台、AMIS 帳聯網公司、MAX 交易所、香港 MaiCapital。

MAX 交易所,於2018年成立,提供幣幣及新台幣對加密貨幣之交易; 推出七個月,交易量即突破新台幣 54 億、2018 年 10 月底全球交易所排行第15名(資料來源:Coingecko 統計網站)。MAX 亦獨步全球,為首家將用戶資金交由銀行信託保的交易所。

--

--