
Walk-Forward 設計守則:OOS 不是跑一次就算
很多回測報告寫著「OOS 表現良好」就把策略 GREEN 了。但 OOS 做一次不叫 walk-forward,那只是運氣。這篇整理 walk-forward 分段的三個設計關鍵,以及每一段應該記錄什麼才算誠實的 robustness 檢驗。
目錄
為什麼 OOS 做一次還不夠
把歷史資料切兩段、拿後段來驗前段找到的參數,這是最基本的 out-of-sample 流程。但在絕大多數研究場景下,這樣的「單段 OOS」提供的 robustness 證據非常弱 — 因為:
- 後段資料只是一個特定的市場 regime。若參數剛好契合那段 regime,結果會看起來很好
- 沒有「多段驗證」意味著你無從估算 Sharpe 的變異範圍,只知道單一值
- 更糟的是,很多研究流程會在「OOS 失敗」後回去調整 in-sample,反覆幾次之後 OOS 已不是真正 OOS
真正的 walk-forward 是把這件事規格化: 資料切成多段、每段都跑一次獨立的 in-sample 訓練 + OOS 驗證,然後看 多段 OOS 的分布,而不是單一段的結果。相關推導與警告可見 Bailey 等 (2014)「Probability of Backtest Overfitting」 的 CSCV 方法論。
觀察重點 1 — 分段數與重疊設計
不能只切兩段。 最低建議是 5 段,常用 8-12 段。分段越多,多重檢定負擔越大,但 Sharpe 分布的估計越穩。
兩種主流設計:
- Expanding window: 訓練段從起點開始,逐次往後延伸;每次只往後多一個 OOS 段。適合有 regime shift 的長期資料
- Rolling window: 訓練段長度固定,窗口整體往後滑。適合假設「近期資料比遠期更 relevant」的情境
哪個好沒有標準答案,但要求研究者事先決定並在論文裡寫清楚。事後切換 window 類型以拿到較好的結果,就是另一種形式的 data snooping。
觀察重點 2 — 每段要記什麼
單看每段 OOS 的 Sharpe 是不夠的。最低應該記錄:
- 該段 OOS 的 Sharpe
- 該段 OOS 的 Win Rate 與 Profit Factor
- 該段最大 drawdown 與持倉天數中位數
- 該段 Top 2 trades 對總 PnL 的貢獻比例 — 若 > 50%,通常代表 event lottery 而非系統性 edge
- 該段與 in-sample 參數的 correlation — 若某幾段 OOS 表現大幅偏離 IS,需要在報告裡標註並解釋
最後聚合時看的是這些指標的分布,不是平均。Sharpe 的中位數、四分位數、最差段表現,比「平均 Sharpe」有意義得多。
觀察重點 3 — 設計時就要決定 GREEN 門檻
這是很多研究者會忘記的一步: walk-forward 的決策規則必須在跑之前寫清楚,不能等看到結果再定。範例:
- 至少 70% 的 OOS 段 Sharpe > 0
- 多段 OOS Sharpe 的中位數 > 某個閾值(視策略族而定,古典 L1 公開資料通常 > 0.5 已屬罕見)
- 任何一段 OOS Sharpe < -1 視為 fail,不論其他段表現多好
- 跨段 Sharpe 標準差 < 某個值
如果執行時發現門檻太嚴、沒策略過得了,要接受那個事實,而不是放寬門檻。放寬門檻的那一刻,研究就從實驗變成了辯護。
實務流程檢查
落到執行步驟,合格的 walk-forward 應該長這樣:
- 定義資料切法(段數、窗口類型、是否 gap)
- 定義每段要記的指標清單
- 定義 GREEN / AMBER / RED 判定規則
- 跑
- 匯報時包含所有段的結果,不能只展示贏的那幾段
- 若不通過,策略 RED — 不是回去調參數再跑
可在 Pardo 的經典著作 The Evaluation and Optimization of Trading Strategies 找到更完整的 walk-forward 設計討論。
下一步
這份守則會隨研究室多次 walk-forward 實戰持續修正。讀者可訂閱 每週觀察 追蹤更新,或回看上一篇 〈為什麼我們把 Sharpe > 2 先當成 bug〉。
本站為觀察研究,不作價格預測或個股薦股;上列所有訊號以撰文時為準,後續發展請自行追蹤一手來源。
來源
- Bailey, D. H., Borwein, J. M., López de Prado, M., and Zhu, Q. J.「The Probability of Backtest Overfitting.」SSRN
- Pardo, Robert. The Evaluation and Optimization of Trading Strategies, 2nd Ed. Wiley
- López de Prado, Marcos.「The 7 Reasons Most Machine Learning Funds Fail.」SSRN
- Harvey, C. R., Liu, Y., and Zhu, H.「…and the Cross-Section of Expected Returns.」SSRN
地緣優先的投資觀察週報
每週一封。方法論、失敗紀錄、量化驗證結果。不寄明牌,不寄投資建議。 免費訂閱即可收到精選摘要,付費解鎖完整深度研究。
- 免費版:每週 1 篇精選 + 市場速覽
- 付費版:每週 3 篇深度研究 + 數據附件
同一條思路下的其他研究

公開回測紀律:為什麼我們把 Sharpe > 2 先當成 bug
十多次失敗的回測告訴我一件事:高 Sharpe 不是 edge,是訊號。是「該去找 bug」的訊號。本文整理三個最常見的高 Sharpe 假象、對應的診斷步驟、以及為何把「先假設壞掉」寫成預設值,對長期研究才誠實。把門檻寫出來,是為了下次看到漂亮數字時仍能按順序跑完七條檢查,而不是被僥倖拉走。

「615 回測後 670 反彈」的敘事解剖:為什麼 90% 的 Level Prediction 是事後合理化
市場充滿精確的價格預測:『S&P 615 回測,670 反彈』。但為什麼這些預測事前很少成立,事後總能解釋?這篇文章用統計學和心理學拆解三個預測存活的機制,以及如何區分『真預測』與『事後合理化』。
Geofin Score v0:把敘事觀點翻譯成可回測的因子
強敘事觀點很多、能進 backtest 的很少。這篇提出 Geofin Score v0——一個把 Geopolitical-First 框架五個維度量化成單一分數的初版設計。v0,會被下一版推翻。