Quant Zone 教學:用 FTX Quant Zone 跑槓桿合約網格交易

Benson Sun
10 min readNov 6, 2021

上篇寫了 Quant Zone 現貨網格的教學文章,這次要教大家怎麼用 Quant Zone 做合約無限網格。

先講一下邏輯,用合約槓桿開倉之後,當前倉位價值每偏離固定%,就會做 rebalance,始終把倉位價值固定在原始價值,如此一來下跌會自動加倉,上漲會自動減倉。

舉例,原本用1000美金開3倍槓桿做多,初始倉位價值是3000美金,設定部位價值每偏離本金的10%(1000*10%=100),就會開始 rebalance,那就意味著:

  1. 只要倉位價值低於2900,就會開始加倉,直到倉位價值回到3000
  2. 只要倉位價值高於3100,就會開始減倉,直到倉位價值回到3000

因為有開槓桿的關係,如果行情不如預期,在逆勢狀況下不斷加倉可能會爆倉,所以需要設定停損,至於要不要設定停利則是看個人。

筆者為了這篇教學文特別開了一個 AR 的合約槓桿網格,本金1000美金開3倍做多,實測後效果還不錯,有確實按照設定的邏輯運行,自動低買高賣。

因為抓到主升段的關係,目前帳面獲利有72%。

本篇會以 AR 為例,教大家寫 Quant Zone 的腳本,你也可以自己選擇不同的幣種。

PS:如果還沒註冊 FTX,歡迎用我的推薦連結(https://ftx.com/#a=BensonTW)註冊,有5%手續費折扣

教學步驟

Step1:到錢包,點選右邊「+」創建子帳號

Step2:隨便取個名字,譬如 AR-Futrue-Grid,然後點選創建子帳戶

Step3:切換到該子帳號,然後選擇「量化空間」

Step4:選擇「建立新策略」

Step5:新增一個策略,名稱設定為「Set Parameter」,條件填入 true

接下來要設定四個變量,我們先設定 initial_capital ,代表你的初始本金,本文是設定$1000。

接下來設定 grid_percent,代表倉位價值偏離多少%的本金會開始 rebalance,本文設定10%(0.1)。

然後再設定兩個變量,命名為 stop_loss 跟 close_profit,這兩個變量的意思分別是止損跟止盈。

stop_loss 代表本金虧幾% 就平倉,close_profit 代表賺本金的幾% 就停利,本文分別設定 -50%(-0.5)跟100%(1)。

在設定完所有變數後,暫停策略50000天,等於只會執行一次。

接下來按下「保存草稿」

Step6:再創建另一個策略,命名為 Build Position,條件設定為:

leverage<=3 and get_variable("build")==0

這個策略是用來首次建倉的,Leverage 是整體槓桿倍數,在小於3的時候會觸發這個條件,這邊我們調用了一個還沒設立的變數「build」,不過不要緊,Quant Zone 預設還沒設立的變數都會是0,所以不會出現錯誤。

接下來新增一個執行邏輯,類型選擇「開倉」,交易方向選擇「做多」,然後選擇你想要的幣種合約,這邊以 AR-PERP 為例,限價留白不用填。

然後設定一個變量,取名叫做 build,設定為1。

build 是用來控制開倉只開一次的變數,當開完倉 build 變為1之後,原本的觸發條件就會由 true 變成 false,也就是說只會執行一次。

然後一樣按保存草稿。

Step7:再創建另一個策略,命名為 Add Position,條件設定為:

total_position_size <= get_variable("initial_capital")*(3-get_variable("grid_percent")) and get_variable("build") == 1

這裡的意思是,當原始倉位價值(本金*槓桿倍數)小於一定%的本金(本金*grid_percent)的時候會加倉,build 等於 1 則是希望這個策略只在建完倉之後才觸發。

然後設定執行邏輯,限價委託買入 AR-PERP,訂單數量設定為:

get_variable("initial_capital")*get_variable("grid_percent")/bid_price("AR-PERP")

價格設定為:

bid_price("AR-PERP")

這邊的意思是用買一價格,限價買進本金*grid_percent的 AR-PERP。

以本文為例,本金1000,槓桿是3倍,grid_percent 則是 0.1,原始倉位價值是 1000*3=3000,當原始倉位價值下跌偏離本金10%以上就會觸發下跌加倉的機制,所以只要倉位價值低於2900就會一直補倉,直到價值恢復到3000為止。

然後一樣按保存草稿。

Step8:再創建另一個策略,命名為 Reduce Position,條件設定為:

total_position_size >= get_variable("initial_capital")*(3+get_variable("grid_percent")) and get_variable("build") == 1

這裡的意思是,當原始倉位價值(本金*槓桿倍數)大於一定%的本金(本金*grid_percent)的時候會減倉,build 等於 1 則是希望這個策略只在建完倉之後才觸發。

然後設定執行邏輯,限價委託賣出 AR-PERP,訂單數量設定為:

get_variable("initial_capital")*get_variable("grid_percent")/ask_price("AR-PERP")

價格設定為:

ask_price("AR-PERP")

這邊的意思是用賣一價格,限價賣出本金*grid_percent的 AR-PERP。

以本文為例,本金1000,槓桿是3倍,grid_percent 則是 0.1,原始倉位價值是 1000*3=3000,當原始倉位價值上漲偏離本金10%以上就會觸發上漲減倉的機制,所以只要倉位價值高於3100就會一直減倉,直到價值恢復到3000為止。

然後一樣按保存草稿。

Step8:創建最後一個策略,命名為 Stop Condition,條件設定為:

position_recent_pnl("AR-PERP")<=get_variable("stop_loss")*get_variable("initial_capital") or position_recent_pnl("AR-PERP")>=get_variable("close_profit")*get_variable("initial_capital")

然後設定執行邏輯,平掉所有倉位,限價留空白就好。

這段應該滿好理解的,就是虧損達到預設的-500(1000*0.5),或是盈利達到1000(1000*1)就平掉所有倉位。

平倉後再暫停所有策略,不然 Add Position 的邏輯還是會自動加倉。

然後一樣按保存草稿。

Step9:到管理子帳號的頁面,把錢丟進剛剛設定好的子帳號,記得金額要跟 initial_capital 一樣。

然後回到 Quant Zone 頁面,運行所有的策略。

丟完錢、運行完所有策略之後就可以放著不管了,沒事可以來交易紀錄看機器人運行的狀況:

做到這一步就大功告成啦!

如果要停止運行機器人,把錢拿回來的話,先去量化空間把所有策略暫停,手動平倉後再把錢移回主帳號即可。

FAQ

Q1:grid_percent 該怎麼設定?

看幣種波動程度決定,本文實際上是幣種漲跌3.3%才會加減倉,因為槓桿3倍,然後倉位價值浮動到本金10%才會觸發再平衡,10%/3=3.3%,以 AR 來說我覺得挺OK的,如果你做的幣種波動更大,grid_percent 可以設定更大,反之就設定小一點。

Q2:放了一陣子,為什麼不會跑?

如果錢放太少,連合約最小單位都買不起的話會跑不起來。

Q3:資金費率有算進盈虧嗎?

FTX 持倉頁的 PnL 不會算進資金費率,在盈虧頁才看得到。

Q4:可以做空嗎?

可以,要改四個地方:

  1. Build Position 策略開倉時改成賣出做空
  2. Stop Condition 平倉改成平掉所有空頭倉位
  3. Add Position 建倉方向從買進改成賣出,total_position_size從≤改成≥
total_position_size >= get_variable("initial_capital")*(3+get_variable("grid_percent")) and get_variable("build") == 1

4. Reduce Postion 建倉方向從賣出改成買進,total_position_size從≥改成≤

total_position_size <= get_variable("initial_capital")*(3+get_variable("grid_percent")) and get_variable("build") == 1

Q5:想重開網格,為什麼首次建倉會變成分批執行?

因為你已經開過一次網格了,在量化空間頁面下方,把 build 手動改成0,才會回到初始設定。

Q6:為什麼 Add Position 一直不成功?

有可能是初始槓桿就超過帳號最大槓桿限制,可以到設置 →保證金頁面把槓桿倍數調高。

如果你對投資加密貨幣有興趣,歡迎追蹤筆者的 Telegram 頻道,我會分享對行情的看法以及市場資訊。

--

--