回測陷阱:為什麼 90% 的回測結果不可信
回測是量化投資的基礎工具,但也是最容易自我欺騙的工具。這篇文章整理了回測中最常見的 8 個陷阱,以及如何用制度性方法防禦。
回測的根本矛盾
回測(backtesting)是量化投資的基礎:用歷史資料測試交易策略的績效。
但回測有一個根本矛盾:
你是用過去的資料來預測未來,但你在設計策略時已經看過了這些「過去」。
這意味著:你不是真的在「預測」,你是在「擬合」(fitting)。 區分這兩者的能力,決定了你的回測結果是否可信。
八大回測陷阱
陷阱 1 — 前視偏差(Look-Ahead Bias)
定義:在決策時使用了當時尚未公開的資訊。
常見形態:
- 用公司年報數據做策略,但年報在隔年 3–4 月才公開
- 用調整後價格(ex-dividend adjusted)計算信號,但調整是事後的
- 用現在的指數成分股回推歷史(忽略歷史上的成分變動)
防禦:每個數據點都標記可用時間(available date),嚴格使用 point-in-time 資料。
陷阱 2 — 存活者偏差(Survivorship Bias)
定義:只使用目前仍存在的標的做回測,忽略了中途下市/退出的。
詳細說明參見存活者偏差深度剖析。
防禦:使用包含下市股的完整歷史資料庫。
陷阱 3 — 過度擬合(Overfitting)
定義:策略的參數過多或過度優化,完美擬合了歷史數據的雜訊而非真正的 規律。
判斷標準:
- 參數數量 vs 數據量:如果參數多於數據點的 1/100,幾乎一定過度擬合
- In-sample vs Out-of-sample:in-sample 很好但 OOS 崩潰 = 過度擬合
- 參數敏感度:微調參數就大幅改變績效 = 過度擬合
防禦:
- 減少參數數量(越簡單越好)
- 強制使用 OOS 驗證(至少 30% 數據保留)
- Walk-forward validation(滾動窗口)
陷阱 4 — 多重比較問題(Multiple Comparison / Data Snooping)
定義:測試了大量策略,只報告表現最好的。
如果你測試 100 個隨機策略,即使全部無效,期望有 5 個在 95% 信心水準下「顯著」。
防禦:
- 報告所有測試過的策略數量
- 使用 Bonferroni 修正或 FDR 控制
- 事前註冊(Pre-registration):在回測前寫下假設
陷阱 5 — 交易成本低估
定義:回測中使用不切實際的低交易成本。
常見問題:
- 忽略滑價(slippage):實際成交價與信號價格的差距
- 低估衝擊成本(market impact):大單交易會推動價格
- 忽略借券成本:做空策略的借券費
- 忽略稅負:台灣證交稅 0.3%(單邊)
防禦:使用保守的交易成本假設(通常是你「認為合理」的 2–3 倍)。
陷阱 6 — 回測期間的選擇偏差
定義:刻意選擇對策略有利的回測期間。
- 動能策略在多頭市場表現好 → 選 2010–2020 回測
- 均值回歸策略在區間盤表現好 → 選 2014–2019 回測
防禦:
- 使用盡可能長的回測期間(涵蓋多個市場週期)
- 報告不同子期間的績效(而不只是全期間)
陷阱 7 — 流動性假設錯誤
定義:假設在任何時間都能以回測價格成交任意數量。
現實中:
- 小型股的流動性可能非常差
- 極端行情(如 2020/03)時,流動性會突然蒸發
- 你的策略本身可能影響市場(market impact)
防禦:
- 過濾掉日均成交量低於門檻的標的
- 限制單筆交易不超過日均成交量的 5–10%
陷阱 8 — 報酬分布假設錯誤
定義:假設報酬呈常態分布,忽略尾部風險(fat tails)。
- Sharpe Ratio 假設常態分布
- 最大回撤(max drawdown)在常態分布下被低估
- 真實市場的尾部事件頻率遠高於常態分布預測
防禦:
- 不只看 Sharpe,也看 Sortino、Calmar
- 計算歷史最大回撤,並假設未來會更差
- 進行壓力測試(stress test):在極端行情下策略表現如何
可信回測的檢核清單
在信任任何回測結果之前,逐項檢查:
- 使用 point-in-time 資料(無前視偏差)
- 包含下市股(無存活者偏差)
- 有 OOS 驗證(至少 30% 保留)
- 參數數量合理(< 數據量的 1%)
- 報告所有測試過的策略數量
- 交易成本使用保守假設
- 回測期間涵蓋多個市場週期
- 有流動性過濾
- 有壓力測試
如果超過 3 項未通過,這個回測結果大概率不可信。
來自本站實戰的教訓
本站在過去的量化研究中經歷了10 次獨立的 RED 判定 (策略不可行),每一次都是因為上述陷阱的某種組合:
- 過度擬合:LGBM 模型未設 seed,Sharpe 2.16 是隨機樂透
- 存活者偏差:只用現存股票回測 momentum 策略
- 多重比較:測試 161 個策略變體,只看最好的幾個
- 交易成本低估:忽略台灣證交稅對高頻交易的影響
- 參數運氣:threshold sweep 找到完美倒 U 型,但沒有穩定平台
每一次 RED 判定都是一次教訓,也是對回測紀律的強化。
結語
回測是量化投資中最有用也最危險的工具。有用是因為它是唯一能 在投入真金之前測試想法的方法;危險是因為它太容易讓你看到 你想看到的結果。
唯一的防禦不是「更聰明」——是更嚴格的制度:事前註冊、 OOS 驗證、保守假設、誠實紀錄失敗。把紀律變成流程, 而不是依賴意志力。
**方法論提醒:**本篇為方法論研究筆記,非投資建議。
地緣優先的投資觀察週報
每週一封。方法論、失敗紀錄、量化驗證結果。不寄明牌,不寄投資建議。 免費訂閱即可收到精選摘要,付費解鎖完整深度研究。
- 免費版:每週 1 篇精選 + 市場速覽
- 付費版:每週 3 篇深度研究 + 數據附件
同一條思路下的其他研究
回測常見陷阱:七種 overfitting 的樣貌
我見過(也自己犯過)的七種回測陷阱。每一種都會讓你看到一個漂亮的 Sharpe,然後在實盤上消失。這篇是一份實用檢核表,不是教科書。

存活者偏差:你看到的成功故事全是倖存者
存活者偏差(Survivorship Bias)是投資觀察中最致命的認知錯誤之一。看不見失敗者,就無法正確估計成功的機率。這篇文章用實際案例解釋為什麼。
貝氏思維在投資觀察中的應用
貝氏定理不只是數學公式,它是一種思考方式:從先驗機率出發,用新證據更新信念,永遠不要對任何假設 100% 確定。這是投資觀察者最應該內化的數學直覺。