2026年十月26日 · 資料

為什麼我的回測一直替換選擇權資料?

為什麼我的回測一直替換選擇權資料?

即使策略程式碼一行都沒改,選擇權回測結果也可能改變。供應商可能修正錯誤報價、補上延遲成交、修訂合約中繼資料,或更改交叉市場的篩選方式。你用相同日期重新執行,卻得到不同的成交、不同的部位,甚至不同的 Sharpe。這不一定是策略出錯,而是策略接受測試時所依據的證據變了。

要讓選擇權回測可重現,請把市場資料視為有版本的輸入。記錄使用的快照、保留影響每項決策的原始觀測值,並在採信新的彙總結果前,先逐一比對合約與時間戳記層級的變動。

程式碼沒變,為什麼我的選擇權回測結果變了?

選擇權紀錄對資料修正格外敏感,因為合約看起來能否交易,取決於多個欄位是否彼此吻合:買價、賣價、數量、標的價格、到期日、履約價,以及合約乘數或交割內容。修正一筆報價,就可能讓原本看似有利的機會變成交叉市場。修正中繼資料,則可能改變部位乘數的意義。

假設有一套策略,當賣價低於 $2.00 時買進買權。首次載入資料時,10:14 的報價是賣價 $1.95、買價 $1.90,數量為 5。供應商對照延遲收到的交易所訊息後,將賣價修訂為 $2.05。一筆觀測值就讓訊號反轉。如果該合約是策略當天唯一的一筆交易,這項幅度不大的資料修正就可能左右當天報酬。

報價篩選也很重要。供應商可能會剔除過時報價、移除交叉市場,或以不同方式標準化時間戳記。這些處理方式可能合理,但也是資料集身分的一部分。「SPY 選擇權,1 月至 3 月」並不足以明確界定一份可重現的歷史資料。

什麼是選擇權資料版本?

資料版本是指特定研究執行所取得的歷史觀測值確切版本。請保留供應商與資料集名稱、擷取時間、日期範圍、結構描述版本,以及任何清理或篩選規則。如果供應商提供快照 ID 或修訂時間戳記,也一併保存。

對每一項模擬決策,都要保留足夠的來源脈絡,以便回答:當時考慮了哪個合約、選用了哪筆報價、該報價何時發布或收到,以及它符合哪項規則而取得採用資格?原始紀錄與衍生紀錄都很重要。若 NBBO 清理後沒有保留來源時間戳記,就可能看不出報價是否過時,或是否在模擬決策之後才收到。

應保存的紀錄重要原因範例
來源快照指出這次執行使用的歷史資料供應商修訂 ID 與擷取時間戳記
報價來源資訊說明選用的市場報價交易所、事件時間、接收時間、買賣價與數量
合約條款定義該選擇權代表的內容履約價、到期日、乘數與交割內容
清理政策顯示哪些觀測值遭到排除過時門檻與交叉報價處理方式

如何確認供應商修訂是否改變了我的結果?

使用兩個快照,對相同策略與設定各執行一次。先按日期比較符合資格的觀測值與合約數量,再比較決策與成交:哪些訊號出現或消失、哪些報價改變,以及新紀錄是否改變了模擬成交價格。

別只看總報酬。也要追蹤交易筆數、進場與出場價格、遭拒絕的訊號,以及僅存在於單一資料版本的交易所貢獻的 P&L 比例。即使個別交易不斷被替換,回測的 Sharpe 仍可能相近;只看摘要統計,無法看出底層歷史資料已經變動。

2個待比較的資料版本
4個需保留的來源脈絡欄位
1筆交易就可能左右樣本數偏少的結果

要做好稽核,策略、費用與執行假設都要固定。如果同時變動好幾項設定,就無法判斷差異究竟來自供應商修正,還是你自己的實驗。

我應該一律使用最新的選擇權歷史資料嗎?

若目標是使用供應商目前最佳的重建資料,就採用最新歷史資料。若需要重現先前結果,或了解研究系統當時掌握了什麼資訊,就保留舊快照。這兩者回答的是不同問題。

進行時點研究時,修正後的紀錄如今可能更準確,當時卻未必已提供給策略。請盡可能保留發布與接收時間;若無法取得,就清楚標示這項限制。現代重建資料不會自動等同於歷史資訊集。

選擇權回測結果改變時,第一個問題應該是:「哪些觀測值變了?」等你能回答這個問題之後,再問「哪次執行才是對的?」

每次回測都該保存哪些資訊?

請在結果旁保存一份精簡的清單:資料供應商與快照、擷取時間、結構描述與清理版本、合約中繼資料來源、策略提交版本、執行假設,以及執行設定。每筆交易都要能連回支持該交易決策的報價紀錄。

這份簡短紀錄能讓難以解釋的重新執行結果,變成可供檢視的差異。選擇權歷史資料會持續修正。你的研究流程應讓每次修正都清楚可見,讓更完善的資料封存能改善證據,而不會悄悄改寫實驗。

選擇權資料時點資料回測資料工程
← 所有文章