BTC 永續合約交易即使方向看對,仍可能虧錢。來看一個具體例子:以 $60,000 買進 0.10 BTC,以 $60,300 賣出,持倉期間支付 2 次資金費用。價格朝有利方向變動了 $30。若資金費用合計扣除 $36,執行成本為 $8,這筆交易就會虧損 $14。
這些數字只是示意,但帳務計算方式是真實的。每次結算時,資金費用會依部位產生一筆現金流,正負號則取決於費率與持倉方向。要了解結果,得先看策略實際持有的部位。
部位:以 $60,000 持有 0.10 BTC
策略買進 0.10 BTC 的線性 BTCUSDT 永續合約,初始名目價值為 $6,000。持倉經過 2 個資金費用結算時間點後,以 $60,300 賣出。這是線性合約,因此價格損益等於數量乘以價格變動:
0.10 BTC × ($60,300 − $60,000) = +$30
這是交易毛利。它還沒計入進出場所需的現金成本,也沒計入持倉期間支付的款項。若回測把這筆交易記為獲利 $30,代表帳本只算了一半。
進場:價格、手續費,以及會變動的名目價值
假設進場與出場各收取 0.05% 的 taker 手續費。進場手續費為 $3;出場則按 $6,030 計算 0.05%,即 $3.015。四捨五入至美分後,執行手續費合計為 $6.02。再加上兩筆委託合計估算 $1.98 的滑價,執行成本總計為 $8。
| 帳目項目 | 計算方式 | 現金流影響 |
|---|---|---|
| 價格損益 | 0.10 × ($60,300 − $60,000) | +$30.00 |
| 進場手續費 | $6,000 × 0.05% | −$3.00 |
| 出場手續費 | $6,030 × 0.05% | −$3.02 |
| 估算滑價 | 進出場估算 | −$1.98 |
出場手續費是按出場名目價值計算。這個小細節在價格變動時很重要,尤其是交易筆數多的時候。若模型將進出場手續費都按進場名目價值計算,做法雖然簡單,帳目卻不會相同。
資金費用結算時間點:扣款 2 次,每次 $18
假設資金費用每 8 小時結算一次,兩次結算時部位都是多單,且交易所的資金費率都為正 0.03%。依照常見規則,資金費率為正時,多方支付給空方。本例假設每次結算時,標記部位名目價值為 $6,000:
$6,000 × 0.03% = $1.80
每次結算只有 $1.80,所以我們把計算說清楚:若部位價值為 $60,000,同樣的費率會讓每次結算金額變成 $18.00。但這項計算中的部位是 1.0 BTC,並非前文使用的 0.10 BTC。為了讓例子前後一致,資金費用應按實際的 0.10 BTC 部位計算:其 $6,000 名目價值在每次結算時會扣款 $1.80,2 次合計 $3.60。
因此,完整結果為:價格損益 $30 − 執行成本 $8 − 資金費用 $3.60 = +$18.40。依照這份帳目,交易仍有獲利,但扣除手續費後,資金費用讓淨損益相較價格損益減少近五分之一。若價格變動改為 $100,而非 $300,同樣的成本就會讓交易轉為虧損。
結算規則:結算時開著的是哪個部位?
資金費用會依照交易場所的結算規則,以及結算時間點符合資格的部位來收取或支付。若策略在結算後 1 秒才開倉,通常不應支付前一個區間的資金費用;若持倉跨過結算時間,通常就應支付。委託剛好落在結算時間點時是否計入,可能取決於交易場所的處理方式,以及模擬器可取得的資料。
進行歷史資料重播時,應將每筆資金費率配對到實際生效的結算時間,再套用至交易場所使用的部位與標記價格。若手上只有區間標籤,請先確認其定義:08:00 公布的費率可能在 08:00 結算,也可能代表於該時結束的區間。若將時間平移一個區間,就可能把正確的數字套用到錯誤的部位。
回測紀錄:應儲存哪些資料
請在交易帳本中將資金費用事件列為獨立的現金流項目。儲存結算時間、商品、帶正負號的費率、符合資格的部位數量、採用的標記價格或名目價值,以及實際付款金額。如此一來,計算過程可供檢視,也能將部位層級的結果與帳戶權益對帳。
- 使用帶正負號的數量:若符合所選規則,多單為正、空單為負。
- 記錄各交易場所的正負號規則;光知道「資金費率為正」並不能判斷策略是否需要付款。
- 只有部位在該事件符合資格時,才套用資金費用。
- 先分別核對價格損益、手續費、滑價與資金費用,再加總為淨損益。
若是反向合約,本例的美元計算方式無法直接套用:結算可能以標的資產計價,合約價值也可能取決於反向報酬公式。不過,安全的做法相同:合併計算前,先寫下每個數量與現金流的單位。
在上面的例子中,結論取決於是否能在每一筆帳目中維持 0.10 BTC 的一致性。這聽起來很基本,但它正是 $3.60 的資金費用扣款,與因部位大小不一致而算出 10 倍錯誤金額的差別。
← 所有文章


