2026年十一月6日 · 資料

你的回測使用了錯誤的時點資產範圍

你的回測使用了錯誤的時點資產範圍

回測即使每根 K 棒的時間戳都正確,仍可能用到明天才會知道的資訊。當策略拿今天仍存續的資產回測多年歷史,彷彿它早就知道哪些市場會維持流動性、持續掛牌,而且值得保留,就會發生這種情況。

資產範圍建構是策略的一部分。如果實際上線的系統在每個決策時點只能從當時可用的資產中選擇,回測也必須遵守相同界線。有 3 種取巧做法經常抹去這條界線。

錯誤一:用今天的清單回測整段歷史

假設你今天挑出加密貨幣永續合約市場中規模最大的 50 個,再從 2021 年開始回測。這份清單排除了已消失、流動性下滑或遭下架的合約,也讓較早的日期能使用當時可能尚未存在的市場。

問題不容易察覺:失敗的資產從樣本中消失,策略看起來就更穩定。舉例來說,動能規則在今天的 50 個市場上可能表現出色,但歷史版本可能曾反覆配置到後來崩跌或失去交易所掛牌的標的。你測試的是一個根據結果挑選出來的投資組合。

請將成員資格記錄為帶日期的資料。對每項資產,追蹤它何時符合資格、何時不再符合,以及原因。每次再平衡時,只用當時可取得的資訊套用規則。市場必須在實際掛牌後,並經過任何必要的暖機期,才能納入。若市場下架,必須明確定義最後持倉的退出或結算方式;刪除該市場的資料列並不等於退出規則。

錯誤二:依據決策之後才測得的統計值排序

即使使用歷史資產範圍,成員資格規則若採用涵蓋未來的完整區間,仍可能造成資訊洩漏。「每月交易流動性最高的 20 檔股票」聽起來合理,直到你發現流動性排名使用了策略原本要交易的整個月份資料。

想像一下,你在第一個交易日進行再平衡。若依當月平均成交金額排序,就等於悄悄利用接下來 3 週的資料,決定哪些標的在第 1 天符合資格。問題通常會表現為策略容量異常出色:策略避開了當月稍後變得流動性不足的資產,然而在進場時根本不可能知道這件事。

請在選擇時點之前設定統計資料的截止時間。若每月在第一個交易時段再平衡,可以依照前 20 個已完成交易時段排序,並以前一個交易時段為止。接著要明確說明執行延遲:如果排名使用昨天的收盤價,按照你假設的作業流程,今天開盤時能送出委託嗎?

選擇規則時點版本常見的資訊洩漏
依成交金額選前 20 名依再平衡前已完成的交易時段排序納入再平衡當日或當月資料
在交易所掛牌使用實際生效的掛牌與下架時間用目前的 symbols API 查詢過去日期
最低歷史資料長度計算選擇時點已取得的觀測值要求資產未來持續存續才能通過篩選

錯誤三:把缺少歷史資料當成資產不符合資格的證據

資料供應商的封存資料不一定完整記錄了歷史市場。找不到某個 symbols,可能代表該資產從未存在、交易所更改了命名方式、供應商沒有保留已下架的商品,或資料串流單純有缺漏。這些情況的意義各不相同。

問題是一份看似整齊、卻有無法解釋的缺口的資產範圍。研究人員常要求完整的回溯期間,接著默默排除資料不足的標的。這可能是合理的暖機規則,但也會刻意排除新掛牌的資產。更糟的是,如果缺失資料集中在失敗的市場,「只用完整資料」就會變成另一種存活者篩選。

請將資格、資料可用性和策略暖機期分開記錄。逐日記下排除資產的原因。在研究紀錄中保留缺失資料的狀況,不要悄悄把它轉成刪除。如果來源無法確認某個市場當時是否已掛牌或可交易,請明確說明,並衡量結果受這項不確定性影響的程度。

讓資產範圍可重現

實用的稽核可以從一個歷史再平衡時點開始。根據帶日期的掛牌資料,以及該截止時間可取得的資料,重建候選清單。只用已完成的觀測值重新計算排序輸入。然後將產生的成員清單與回測實際使用的清單比較。

請將規則、截止時間、成員資格決策和資料來源版本一併存檔。如果你無法解釋某個日期為何納入一項資產、排除另一項,就還無法判斷策略是找到了優勢,還是沿用了依未來結果塑造的樣本。

資產範圍錯誤很少會以不可能的價格顯現。它們呈現的樣子,往往是策略恰好避開了那些後來變得不再方便交易的市場。

存活者偏差時點資料資產範圍建構回測
← 所有文章