2026年九月7日 · 期權

期權回測的基礎資料列:逐欄解析一張 Deribit BTC 買權

期權回測的基礎資料列:逐欄解析一張 Deribit BTC 買權

上個月,研究團隊有人問我,為什麼我們的期權代理程式一直拒絕一個看起來相當合理的長 Gamma 想法。訊號沒問題,波動率預測也沒問題。問題出在行情資料串流的 2 個欄位,以及一個根本不在資料串流裡的數字。

所以,這就是當時我們爭論的實際資料物件。Deribit ticker 回應,BTC-25SEP26-110000-C,在週一 UTC 11:20 擷取,合約還有 18 天到期。我刪掉了已棄用欄位,保留所有重要資訊。

{
  "instrument_name": "BTC-25SEP26-110000-C",
  "index_price": 96412.18,
  "underlying_price": 96980.44,
  "underlying_index": "SYN.BTC-25SEP26",
  "estimated_delivery_price": 96412.18,
  "mark_price": 0.0041,
  "mark_iv": 42.14,
  "best_bid_price": 0.0038,  "best_bid_amount": 4.9,
  "best_ask_price": 0.0045,  "best_ask_amount": 12.1,
  "bid_iv": 40.42,           "ask_iv": 43.94,
  "last_price": 0.0043,
  "interest_rate": 0.0,
  "open_interest": 812.7,
  "greeks": {
    "delta": 0.0962, "gamma": 0.0000189,
    "vega": 36.77,   "theta": -42.91,  "rho": 4.61
  },
  "stats": { "volume": 61.2, "high": 0.0051, "low": 0.0036 }
}

instrument_name:一個字串,4 項資訊

BTC-25SEP26-110000-C。標的 BTC,到期日 2026 年 9 月 25 日,履約價 110,000,買權。這個字串沒說明、但每個新手期權回測至少都會搞錯一次的,是其餘合約規格:1 張合約代表 1 BTC 標的,權利金以 BTC報價並支付,到期時間是 UTC 08:00,不是任何地方的當地時間 16:00。

以 BTC 報價是這裡容易踩坑的地方。0.0041 的標記價格就是 0.0041 BTC,按指數價格換算約為 $395。如果你把這個欄位存成價格,之後再和以 USD 計價的策略損益資料合併,就等於悄悄建立了一個即使期權價格不變、美元價值也會隨現貨變動的部位。我看過一個回測,做多買權的部位在 BTC 下跌的那天居然獲利,純粹是因為權利金欄位被當成美元,研究人員其實是在美元帳務框架下做空以幣計價的權利金。花了 2 天才找出問題。

index_price 與 underlying_price:相差 568 美元,只有一個是對的

兩者相差 $568.26,這不是錯誤。index_price是 Deribit BTC 指數——現貨參考價格,由主要交易所價格組合而成,也是合約最終結算所依據的價格。underlying_price則是該特定到期日的合成遠期價格,SYN.BTC-25SEP26,根據相同到期日的期貨市場推算而得。以年化約 12% 計算,18 天的持有成本就會帶來這 $568 的價差。

資料內容中的每個希臘值,以及 mark IV,都是以遠期價格計算。如果你用自己載入的現貨序列重算隱含波動率,每個履約價都會得到不同數字,而且誤差會有固定方向:買權的波動率看起來比實際便宜,賣權則看起來更貴。對於基差為 0.6% 的 18 天期合約,這個履約價的 mark IV 會差約 1.5 個百分點。這比多數人圍繞著撰寫策略的波動率優勢還大。

interest_rate: 0.0是 Deribit 在告訴你,折現是透過遠期價格完成,而不是透過利率。別去找無風險利率曲線套用,否則會重複計算。

mark_price 與 mark_iv:沒有交易對手的價格

0.0041 BTC。沒有人用這個價格成交。Deribit 會根據擬合出的波動率曲面計算 mark,以委託簿為錨點,再跨履約價和到期日平滑處理,避免單筆價差很大的報價讓保證金和強制平倉價格劇烈跳動。保證金計算、未實現損益,以及每個部位端點都會用到 mark。

這使它成為加密貨幣期權研究中最誘人的成交價格,也最不適合拿來當成交價。用 mark 買進、再用 mark 賣出的回測,其實是在和一條平滑樣條曲線交易。它會算出一個 Sharpe。那個 Sharpe 描述的是曲面擬合器,對你是否真的能成交毫無參考價值。

我們最後寫進系統的規則是:mark 用於保證金、風險與中間價對中間價的損益歸因,絕不作為成交價。回測需要成交價、但該時間戳沒有委託簿快照時,就將該次執行標記為未定價,而不是用 mark 假設成交。我們寧可捨棄這筆資料。

best_bid 0.0038 / best_ask 0.0045:以 3 種單位表示的價差

以 BTC 計是 7 個 tick。以一張 $395 的期權計算,價差是 $67.50,佔權利金的 17%。換算成波動率是 3.5 個百分點,買價 40.4、賣價 43.9;期權交易員聽到你問價差多大時,實際會告訴你的就是這個數字。

數量和價格同樣重要:買方掛單 4.9 張,賣方掛單 12.1 張。Deribit 期權的數量以合約張數計,所以 4.9 張代表 4.9 BTC 標的,名目價值約 $472k——但在這個履約價只有 0.47 BTC 的Delta。如果策略需要可觀的 Gamma,就得交易數十張合約,而觸價委託簿上可見的數量只夠其中一小部分。第二檔通常還要再差 2 或 3 個 tick。任何具備數量模型的期權回測,都需要逐檔掃過委託簿,或假設透過 RFQ/大宗交易定價;這兩種假設會得出截然不同的結果。

last_price: 0.0043代表過去 24 小時內某個時間曾經成交,可能是 19 小時前、當時現貨價格完全不同的時候。在每天成交 61 張合約的商品上,這筆成交從一開始就已經過時。別拿它來建立報酬序列。

greeks:5 個數字,4 種單位慣例

這個區塊造成的隱性損害比整份資料內容其他部分加起來還多,因為每個數值在量綱上都正確,卻沒有一個是你直覺會猜的單位。

欄位數值單位常見誤讀
delta0.0962每張合約對應的標的 BTC 數量誤當成美元 Delta
gamma0.0000189標的每變動 $1 時的 Δdelta誤當成每變動 1% 的數值
vega36.77每 1 個波動率百分點對應的 USD誤當成每 100% 波動率的數值,或以 BTC 計價
theta-42.91每個日曆日對應的 USD誤當成每個交易日的數值
rho4.61每 1% 利率變動對應的 USD忽略,這樣沒錯

Delta 以幣計價,vega 和 theta 以美元計價,gamma 則是現貨每變動 1 美元時的數值。把以幣計價的 Delta 混進以美元計價的風險彙總,就會讓表面上看似中性的部位,實際上做多了 40 BTC。theta 以日曆日計算,最容易讓週末策略吃虧:從週五收盤持有到週一開盤,會累積 3 天的時間衰減;這裡每張合約約為 $129,期間卻沒有任何交易時段。如果你的回測逐根 K 棒更新,並且每一步都套用 theta,週末就會消失,所有賣出權利金的策略都會悄悄比實際情況更差。

open_interest 812.7、volume 61.2:市場鏈上的實際狀況

昨天成交 61 張的履約價,未平倉量有 800 張。這是個真正活躍的履約價——到期還有 3 週的 110,000 整數關卡,正是交易流量集中的位置。再往外走 2 個履約價到 120,000,未平倉量就會少一個數量級;改看非月選到期日的非整數履約價,會找到有買價、買賣價差達 40%、整週都沒有成交的商品。

如果回測遍歷所有掛牌商品,整條選擇權鏈都會被當成可以成交。我們最後採用的篩選條件是:報價價差低於 mark 的 20%、買賣兩側各至少 1 張合約,且過去 24 小時內成交量不為零。在一般交易日,大約只有 BTC 掛牌選擇權的三分之一符合條件。其餘三分之二就是虛假 Alpha 藏身之處。

資料內容裡沒有的欄位

這個資料物件沒有任何欄位告訴你一筆交易要花多少錢。Deribit 每張期權合約收取 0.0003 BTC,maker 和 taker 費率相同——以標的計價的 0.03%,不是權利金的 0.03%——上限為期權價格的 12.5%。這張合約單邊費用是 $28.92,尚未觸及上限,因為 0.0041 的 12.5% 是 0.000513,而固定費用較低。

費用按名目價值計、權利金按波動率計,代表越往價外走,費用佔已付金額的比例就暴增。

$67.50報價價差(mark 的 17%)
$28.92每張合約單邊費用
31%來回交易成本佔權利金比例
3.5 點波動率買賣價差

以 0.0045 的賣價買進($434),以 0.0038 的買價賣出($366),再付 2 次手續費:以 mark 為 $395 的合約來回交易,總成本是 $125.80。你的看法必須有權利金 31% 的價值才能損益兩平。這就是長 Gamma 想法被否決的全部原因,和訊號毫無關係。

如果問取得 Delta 要花多少成本,情況會更有意思,因為費用隨合約張數增加,而合約張數會隨 Delta 減少。為方便計算,假設各履約價的 mark IV 都固定在 42.1%(真實選擇權鏈有偏斜;在加密貨幣市場,買權翼的交易價格通常高於ATM,因此這張表算得偏樂觀):

商品Mark(BTC)Delta每 1 BTC Delta 所需合約張數單邊費用每 BTC Delta 成本
97000-C(ATM)0.03730.5181.93$28.92$55.80
110000-C0.00410.09610.4$28.92$301
120000-C0.00040.01379.4$4.82(已達上限)$383
BTC 永續合約—1.01.0$48.21$48.21

最底下那列的 12.5% 上限發揮了實際作用;沒有上限的話,深度價外翼的成本會是每 BTC Delta $2,300,樂透型策略在數學上根本不可行,而不只是表現差。即使有上限,透過 120,000 履約價買進曝險,成本仍約是永續合約的 8 倍。期權不是低成本表達方向看法的方法,任何回測若得出相反結論,就是漏掉了這張表。

UTC 08:00,9 月 25 日

ticker 沒告訴你的最後一件事,是部位如何結束。Deribit 以到期日 UTC 08:00 前 30 分鐘的指數平均值結算期權,並對價內合約收取 0.00015 BTC 的交割費,同樣以結算價值的 12.5% 為上限。

這對回測有 2 個影響。第一,這個平均價格區間確實會影響結果:一張在 07:59 價內 $300 的期權,如果最後半小時行情不利,可能結算為一文不值;若回測按 08:00 的瞬間價格結算,多數到期日會和模擬帳戶差幾個基點,少數則會差很多。第二,不管你想不想結算,交割費都會照收,所以持有到期的策略每個週期會付 3 次費用;07:30 平倉的策略則會付 2 次費用加上價差。哪個比較便宜取決於履約價,兩者的成本約在權利金 0.0012 BTC 左右反轉。我們逐個部位計算,不會一概採用固定規則。

我原本想寫的文章是關於波動率預測。結果我花了 1 週處理單位和費用上限;這大概就是期權研究中光鮮表象與現實的正確比例。

20 個欄位。2 個刻意設計成不一致的價格、1 個從未成交的價格、以 4 種單位表示的希臘值,以及完全藏在資料內容之外、文件頁面裡的成本模型。如果你正在建置期權回測,第一天就該先寫一個函式,把這類資料物件轉成成本完整、計價單位正確的部位——包含價差、費用、上限、交割、幣本位與美元本位。之後寫的每個策略,都會沿用這個函式裡的假設。

加密貨幣期權deribit隱含波動率費用回測
← 所有文章