滾動前推分析(Walk-Forward Analysis)

Walk-Forward Analysis

定義

滾動前推分析是一種驗證方法:先以過去的訓練窗口反覆擬合策略參數,再把這些參數原封不動地應用於下一個未見過的測試窗口,並讓兩個窗口沿歷史向前移動。表現只以接連起來的各個測試窗口來評判。

運作方式

每一輪的次序都很嚴格:訓練數據必須在測試數據開始之前結束,因此參數只會利用過去的資料選定。滾動版本保持訓練長度不變並捨棄最舊的數據;錨定版本則固定起點,讓訓練窗口不斷增長。若指標回顧期或持倉期跨越了兩個窗口的邊界,應在兩者之間預留間隔。

由於重新優化屬於策略的一部分,它會在每一輪重複,並在樣本外接受評判。窗口長度仍須取捨:窗口過短,參數雜訊大;窗口過長,則對轉變中的市況適應緩慢。

公式/慣例

輪數 =(總期數 − 訓練長度)÷ 測試長度,適用於移動步長等於測試長度且期數可被整除的情況

說明例子

假設示例:共有 120 個月數據,訓練窗口為 36 個月,測試窗口為 12 個月,每次向前移動 12 個月。第一輪以第 1–36 個月擬合,並於第 37–48 個月測試;最後一輪以第 73–108 個月擬合,並於第 109–120 個月測試,共 (120 − 36) ÷ 12 = 7 輪、84 個樣本外月份;第 1–36 個月從不出現在測試紀錄之中。

注意事項

滾動前推結果仍然只是一條歷史路徑;若在看過樣本外結果後才更改窗口長度或規則,便等於重新回到樣本內調校。應計入交易成本,並把由樣本內到樣本外的表現大幅下滑視為過度擬合的跡象。