---
# System prepended metadata

title: FTX AutoFundingRate 策略規格書

---

# FTX AutoFundingRate 策略規格書

## 前言
* FTX部分現貨可當保證金，同時期貨現貨又共用同一帳戶
* 選擇可當保證金的交易對來做，更安全(槓桿可以拉更高)
* 與幣安不同的是FTX現貨可以用USD與USDT交易，交易USDT計價的現貨前要先把價格轉成USD，不然會低估/高估價差如果又一直買/賣USDT計價的交易對會讓USD&USDT的比例不平衡。
* **這邊只先收正的funding**
---
## 設計
### 風險控制
1. 最高槓桿率：Max_Leverage
2. 交易對最大比重：Max_usdvalue_per_pair = total_USDT_amount * Max_proportion_per_pair 
3. 風險警示：槓桿超過5倍發出警示
---
### 參數
#### 固定參數
* 最高槓桿(Max_Leverage)：5
* 單筆下單金額(unit_amount)：300 USDT

#### 動態參數
* 交易對最大比重(Max_proportion_per_pair)：0.5
* 價差參數：
    * 進場價差門檻(Spread_add_threhold)：0.1(%)
    * 出場價差門檻(Spread_remove_threhold)：0.05(%)
* FundingRate 參數：
    * FundingRate_a = 0.5
    * FundingRate_N = 6
    * usdt_borrow_buffer = 1.2
#### 變數
* 當前總資產(total_USDT_amount)
* 當前部位(current_usdvalue)
* 當前槓桿(current_Leverage)
* 預期年化 FundingRate (Expected_FR)
    * Expected_FR = 預估下一期年化FundingRate*(1-a) + 過去N期年化FundingRate平均*a
    * 其中 0<a<1
* 年化借貸利率(BR) = USDT 年化借貸利率 or USD 年化借貸利率 (根據現貨計價單位)
* 單一交易對最大部位(max_usdvalue_per_pair)： total_USDT_amount * max_proportion_per_pair
* Spread(%)計算(USDT計價要轉成USD)：
    * Spread+ = (perp_bid_price / spot_ask_price -1)*100
    * Spread- = (spot_bid_price/ perp_ask_price -1)*100 
* Spread_bar(%)計算(USDT計價要轉成USD)：
    * Spread_add_bar = (A + B/(1+exp(-a*(BR-b))))/100
        * A= 5 
        * B = 20
        * a = 0.25
        * b = 15
    * Spread_remove_bar = Spread_remove_base + adj_term
        * Spread_remove_base = (A + B/(1+exp(-a*(BR-b))))/100
            * A = 5
            * B = -10
            * a = 0.25
            * b = 15
        * adj_term = (A + B/(1+exp(-a*((FR-BR)-b))))/100
            * A = 5
            * B = -10
            * a = 0.25
            * b = 15
---
### 下單邏輯
* 反覆偵測所有可能潛在交易對(先主觀篩選流動性太差的)
#### 針對每一交易對
1. 取得current_usdvalue, current_Leverage並計算Expected_FR, Spread_add_bar 和 Spread_remove_bar
2. 是否滿足建倉條件：
    1. current_usdvalue < Max_usdvalue_per_pair
    2. current_MarginLevel > Min_MarginLevel
    3. current_Leverage < Max_Leverage
    * 考慮建FR+部位：
        * If 下列條件皆滿足：
            1. Expected_FR > USDT當下借貸利率 * usdt_borrow_buffer 
            2. Spread+ > Spread_add_bar
        * Then 下單：
            1. 以unit_amount買spot at 限價單
            2. 再以unit_amount賣perp at 市價單
2. 是否滿足解倉條件：
    1. current_usdvalue > 0
    * 考慮解FR+部位：
        * If 條件皆滿足：
            1. Expected_FR < USDT當下借貸利率
            2. Spread- > Spread_remove_bar
        * Then 下單：
            1. 以unit_amount買perp at 限價單 (ReduceOnly)
            2. 再以unit_amount賣spot at 市價單 (ReduceOnly)
---
### 待修訂
1. 客製化交易對最大比重(Max_proportion_per_pair)

2. 設定更大的價差參數(ex. 偵測到的價差比bar大0.05%)，如果價差更大用market單吃

3. 一些加速掃交易對的流程(ex.這小時偵測到此交易對Spread很負，這小時就不再偵測他)

---
### 補充
1. Spread_add_bar、Spread_remove_bar圖
    * Spread_add_bar：
    ![](https://i.imgur.com/mh68ULV.png)
    * Spread_remove_bar：
        * Spread_remove_base：
        ![](https://i.imgur.com/ifH4t8B.png)
        * adj_term：
         ![](https://i.imgur.com/f9NN8P3.png)
        * Spread_remove_bar = Spread_remove_base + adj_term
        * Spread_remove_bar是 FR 和 BR 的函數，畫出來會是一個面