FTX 量化空間:不敗無限網格自動交易

更新紀錄

2022.04.06 更新計算單格獲利跟年化獲利的段落,跟之前的算法相比大約只剩一半,有興趣的讀者再請自行評估。

本篇目標

介紹使用 FTX 量化空間執行無限網格交易機器人。

還沒註冊 FTX 的歡迎使用我的推薦碼註冊

FTX 推薦連結

https://ftx.com/profile#a=CTLING

策略特色

以 FTT/USDT 交易對為例,這個策略會維持 FTT 跟 USDT 的價值相等。

策略不需要設定任何參數,網格寬度,再平衡比例之類的都不需要。

策略建立在最小交易量之上,會維持當前價格的上下各掛出一筆買賣單。

設定範例

買進策略

策略名稱








觸發邏輯








策略內容


















賣出策略

策略名稱







觸發邏輯

跟 Buy 一樣,直接觸發













策略內容
















掛單範例












數學概念

假設策略操作的目標是 USDT 跟 FTT 。策略要保持 USDT 跟 FTT 的價值相同。

所以我們可以寫出以下等式:

U = F * P

U 表示 USDT 的數量,F 表示 FTT 的數量, P 表示 FTT/USDT 的價位。

將 F 從等式右邊換到左邊,可以得到以下等式

U/F = P

這個價位表示根據自己持有的 U 跟 F 可以得到理論上 P 應該是多少。

假設 U = 2000, F = 40 可以算出 P = 2000 / 40 = 50

這時候不管市場上的 P 是多少,你手上的 F 的價位就是 50 。

先看買進的情況

當價位下跌時,策略會執行買進,但是買進的價位要設定為多少才能繼續保持 U 跟 F 的價值相等呢?

我們可以先假設買進的價位是 P_Buy ,買進的數量為 0.1 ,可以得到以下等式

U - P_Buy * 0.1 = (F + 0.1) * P_Buy

左邊是買進之後剩下的 USDT ,右邊是買進之後 FTT 的價值。

整理等式之後,可以得到

P_Buy = U / (F + 2 * 0.1)

表示我們只要直接在這個價位掛買單就可以讓 U 跟 F 的價值保持一致。


接下來是賣出的情況

假設 P_Sell 是賣出的價位,可以得到以下等式

U + P_Sell * 0.1 = (F - 0.1) * P_Sell

整理等式可以得到

P_Sell = U / (F - 2 * 0.1)

表示我們只要直接在這個價位掛賣單就可以讓 U 跟 F 的價值保持一致。

整理

買進
P_Buy = U / (F + 2 * 交易數量)

賣出
P_Sell = U / (F - 2 * 交易數量)

再配合 FTT 質押可以獲得 Maker 免手續費達成不敗網格。
USDT 還可以拿一部份去放貸。

注意:要開始執行要先買一些 FTT ,至少要 3 倍的交易數量,不然賣出價格會變無限大。

單格獲利

要計算“正確”的獲利是相當困難的,不同的看法計算出來的獲利可能會有很大的差距。

這邊以一買一賣,或是一賣一買後的中心價格偏移當作是獲利幅度:

假設先買進的話,每次買 0.1 單位,買進價格就會是

U / (F + 0.2) 

買進之後的 U 跟 F 分別會是

扣掉買進金額
U_buy = U - (0.1 * (U / (F + 0.2)))

買進 0.1 單位
F_buy = F + 0.1

新的中心價格就會是

U_buy / F_buy

這時候假設價格又向上波動,讓我們可以賣出一單位的 F ,這時候賣出的價位會是

P_buySell = U_buy / (F_buy - 0.2)

將這個式子轉換成用 U 跟 F 表示:

P_buySell = (U - (0.1 * (U / (F + 0.2)))) / ((F + 0.1) - 0.2)

將算式整理一下,分子分母同乘以 (F + 0.2)

P_buySell = ((F + 0.2) * U - 0.1 * U) / ((F - 0.1) * (F + 0.2))

整理一下,新的賣出價位為

P_buySell = (U * (F + 0.1)) / ((F - 0.1) * (F + 0.2))

以中心價位增加的幅度來看獲利的話,在一買一賣之後,總 F 不變,但是中心價格增加的角度。

代表總 U 增加了,增加的 U 就是獲利的部分。

以 F = 50 ,買賣單位 0.1 計算的話

((U * (F + 0.1)) / ((F - 0.1) * (F + 0.2))) / (U/F) = 100.00079841%

中心價格會變成原本的 1.0000079841 倍。

假設這樣的一買一賣平均每個小時發生一次的話。

年化報酬為

(1.0000079841) ^ (24 * 365) = 1.072444301131649 

年化報酬為 7.2% 左右











留言

  1. 請問版主 這個算式F/(F+0.2) * F/(F-0.2) = F^2 / (F^2 - 0.04) 怎麼計算出來的
    感謝~

    回覆刪除
    回覆
    1. 嗨 owee 你好

      感謝你提出這個問題,我重新思考了之後發現本來的計算方式的確不太正確,所以我更新的單格獲利的計算方式了,新的計算方式比較能反映出真實的一買一賣或是一賣一買的獲利。

      雖然算出來的年化報酬下降了,但是應該是更真實的結果。

      刪除

張貼留言

這個網誌中的熱門文章

7z 常用壓縮/解壓縮指令

python defaultdict 的用法

交換 DataFrame 的 column 順序