FTX Quant Zone + 3Commas 網格刷單 “非”教學手冊

lightlin.eth
10 min readDec 26, 2021

--

Foreword

  1. 這篇不是教學,因為到最後已經有點複雜,很不適合沒有經驗的新手。
  2. 需要具備的知識:3Commas (精通)、Quant Zone (精通)
  3. 一方面我懶得排版,另一方面也不想讓人那麼容易 C/P (原因如上),所以我只會使用截圖的方式貼 code
  4. 因為我已經很久沒有 coding,再退一步說,即使我還在 coding,我也不是個 good coder,所以如果你看了 code 覺得很像小學生寫的… 請你放在心裏就好,不用說出來
  5. 請絕對不要試圖直接照著做,一定要看完確認有理解,不然我覺得應該會虧得很慘。。。

Methodology

  1. 工具: 3Commas / Grid Trading Bot + FTX / Quant Zone
  2. 對象:FTX 合約
  3. 刷合約網格最主要的問題就是價格上行的時候倉位會減少 (需要補倉,不然會變 short position),然後下行的時候倉位會一直補,浮虧增加會加速 (爆倉風險高)
  4. 3Commas 就是用來開網格,可以設定的參數很多。因為會開很多 bot,所以會需要買付費會員。
  5. Quant Zone 主要工作是要設計一套機制來控制倉位大小 (簡單來說,就是要一直想辦法盡可能讓倉位歸零,透過這個機制來減少爆倉風險)
  6. 首先,要先確認目前處於 Up Trend or Down Trend, and under what timeframe
  7. 我目前只是用最簡單的 SMA 10, SMA 20 搭配不同時框 (5m, 1hr, 4hr) 來作判斷 (本來想用 EMA,但是寫不出來 XDDD)
  8. 簡單來說,若是 SMA10(4hr) > SMA20(4hr) 我就當作 4hr 是 Up Trend。反之,就是 Down Trend。
  9. 承上,再分別去判斷 1hr 是否是 Up Trend, 以及 5m 是否是 Up Trend
  10. 如果 4hr Up Trend,就盡量讓倉位保持是 long position。反之,如果 4hr Down Trend,就盡量讓倉位保持是 short position。(對,我最後發現,沒必要一定得維持是 long position)
  11. 任何系統都需要 initialize,在這邊就是去判斷目前該交易對有沒有倉位,如果沒有的話,就開個 10USD 的倉位
  12. 接下來是要設定每個交易對的 position_size,這是因為我最初用 quant zone 是看 benson 的教學,裡面需要設定 position_size,但我的設計到最後似乎並不需要… 不過當我意識到這件事的時候,我已經懶得去試著把 position_size 從 code 裡拿掉了 (因為 quant zone 不能 unset variable,一旦變數被創造出來,除非把整個子帳號刪掉,不然就會一直存在)
  13. 因為有 3個不同時框的 up/down trend,再搭配目前 position 是 long or short,另外我自己設計了一個 rule,就是 5m 時框是否有反轉跡象。所以總共有 5個 variant
  14. 我已經把那些什麼排列組合 C幾取幾的計算方式都還給黃子嘉,但反正只有5 個 variant,我就把全部組合列出來,總共是 32 種,再分別給予不同的 action
  15. 經過簡化之後,Up Trend 會有三個 Action,Down Trend 會有 2個 Action,附上表格如下,左邊是原始表格,右邊是經過簡化之後的。

16. 在不同的組合要用什麼 action,雖然有基本邏輯,但是更多是憑藉個人經驗,你可以把這個表格當成是我的配方,但是不一定完全要按照我的比例 (因為我也是蠻隨意的)

17. 到這邊 Quant Zone 的設計就差不多結束,我最後有設計了一個 master_switch,如果我想暫停的時候可以用,不過目前為止從來沒使用過。

18. 接下來就是開 3Commas 的 Grid Trading Bot,我目前的設計是盡量把上下限開大,增加暴漲暴跌的容忍度,但也不到天地單的程度,基本邏輯是 BTC, ETH 都跑 80 格,每格 0.3–0.5% 的網格利潤,總資金量是 50–60K;其他的交易對則是跑 50格,每格 1% — 1.5% 。然後每個交易對的總資金量是 20K。跟上面的表格一樣,這只是我的配方,主要是經驗法則。下面附上昨天新開的子帳戶 3 的網格單,目前只有 BTC, ETH, SOL 三個交易對,這是 FTX 上長期前三大交易量,上下震幅相對小,比較穩定 (網格利潤會比較少)

19. 相信看到這裡,你的第一個感想應該會是:有需要這麼複雜嗎?直接刷 3commas 網格不行嗎?可以,當然可以,只是如同我前一篇文章寫的,若是只用 3commas 刷合約,遇到暴漲暴跌的行情,還是會很容易爆倉。

20. 當然,你可以很保守的用 3X margin 來操作,但是我之所以想用這麼複雜的方式,就是希望最大化資金利用率 (高效),降低爆倉風險,並且減少人為操作 (省時省力省心)

21. 從上面截圖的數據可以看到網格利潤是 140U 左右,但是倉位實際利潤只有 50 左右,這是因為倉位本身會有浮虧,然後會有交易手續費,所以其實費這麼多功夫,最大的贏家還是交易所。。。。

22. 看到這裡,我想應該 99% 的人都不想搞了。。。

Step by Step

  1. Set BTC SMA

1.1 我有設定每隔 3分鐘才執行,這個其實不是必要,但因為開到 25–30 個交易對之後會常常 timeout,所以減少 function 執行次數可能可以降低 timeout 機率

1.2 接下來即使要設定 SMA 10 (5m, 1hr, 4hr), SMA 20 (5m, 1hr, 4hr),因為不同時框要用不同的時間規則去 trigger 取值,所以這邊只是先準備好基本的 data

2. Set SMA 5m

2.1 設定每五分鐘取一次值。

關於 quant zone 語法請不要問我

可以參考 ftx official document , unofficial document

2.2 接下來就是設定 BTC SMA 10 (5m) & BTC SMA 20 (5m),如果之後有其他交易對,就是再增加更多 Action

3. Set SMA 1hr

3.1 設定每 1個小時取一次值

3.2 設定 BTC SMA 10 (1hr), BTC SMA 20 (1hr)

4. Set SMA 4hr

4.1 設定每 4個小時取一次值

4.2 設定 BTC SMA 10 (4hr), BTC SMA 20 (4hr)

5. Set Trends

5.1 設定不同時框的 Up Trend,這個 function 我就沒有設定 time trigger,所以預設是 every 15s 會執行一次

6. Initialized ()

6.1如果倉位不存在,就新增一個 10USD 的倉位

7. Set Position

7.1 上面有說明過,其實我後來覺得應該不用設定 Position_size。不過總之就是設定一個相對小的數字。

8. Set Parameters

這裡就是要按照最上面那個表格設定不同變數的組合

8.1 其實這個變數應該在別的 function 先設定好,但是後來整個設計有點複雜,我就懶得動了。基本想法是去判斷極短線有沒有趨勢反轉的跡象。但是要注意的是,因為這個沒有 time trigger,所以基本上是一直在變化中,我對這個變數的正確有效性也不敢完全保證,如果你有更好的作法,歡迎跟我說。

8.2 如果是 Up Trend,而且 position 是 short,並且倉位損益為正,那麼這時要將倉位 buy over 成 long position。不過在這邊只是先準備好條件,真正的 action 要另外執行。

8.3 如果 Up Trend,倉位是 long 且為正損益,就可以加倉 (但最終倉位必須要小於前面設定的 position_size)

8.4 在 Up Trend,如果有反轉跡象 (potential down trend),即使倉位為 long 且正損益,還是要 sell over 變成 short position

8.5 如果是 Down Trend,就要盡可能做空

8.6 在 Down Trend 如果有反轉跡象 (potential up trend),就要盡可能作多

9. BTC Up Trend

9.1 設定 trigger 條件,master_switch 因為從來沒有用到我就省去不貼圖,在這裏其實也可以直接拿掉

9.2 Add Position or Buy Over 這邊加倉⅓ 和 buy over 1.1x 都是經驗法則,沒有絕對性

9.3 Sell Over 在 Up Trend 要反轉的時候減倉 90%,這數字也是經驗法則

10. BTC Down Trend

10.1 設定 trigger 條件

10.2 在 Down Trend 的時候盡量做空

10.3 在 Down Trend 要反轉的時候將空單減倉 90%(這仍然是經驗法則)

Summary

其實我自己也覺得很複雜… 所以趁著假期有空就紀錄一下,不然很容易忘記;如果你看完真的很想嘗試,我建議最好理解設計原理之後自己全部重寫,老實說我也不敢保證我的設計沒有 bug,當然如果你真的有發現 bug 的話,麻煩請一定要跟我說,謝謝

update: 用 4hr timeframe 作為 base line 是經驗法則。另一個重點是倉位保證金要夠多,但要有多少很難訂規則,舉例來說,我每個交易對設定 20K 資金量,用 20x margin 來看我只需要 1K 本金,如果我放 10K 本金,就可以跑 10個交易對,不過這樣很緊繃,我的話大概是跑 6-7個交易對,留一點 buffer。另外,重點在於子帳戶總資產是長期增長趨勢,而個別倉位的損益不重要,只要刷單期間夠大,長期來說都會回到損平的點位,而且刷得越久,因為網格本身有利潤,會拉近損平點位。

最後,放個推薦碼和 eth address,歡迎 tips 🙏

FTX: https://ftx.com/referrals#a=lightlin

3Commas: https://3commas.io/?c=tc879906

ETH: 0xd9dbFb67B533B3d8b1C00E809691A5240732790C

--

--