72lab
免費註冊
量化入門· 第 5 / 8 課· 6 分鐘

樣本外檢驗:別被回測騙了 Walk-Forward Testing

在歷史資料上挑出最好的參數很容易,難的是它在沒見過的資料上還靈不靈。滾動前進檢驗模擬真實的「先選參數、再上場」。

本課免費,註冊帳號後即可使用互動模擬

每節課都有可以拖曳、播放的互動模擬和隨堂小測驗,註冊後免費使用,並自動儲存學習進度。下面先附上本課的文字版講解。

還沒想好?先看看第一課(免註冊)「用規則積木搭策略」。

文字版講解 · 量化入門 第 5 課「樣本外檢驗:別被回測騙了」

在歷史資料上挑出最好的參數很容易,難的是它在沒見過的資料上還靈不靈。滾動前進檢驗模擬真實的「先選參數、再上場」。

先選參數,再上場

真實交易裡你只能用過去的資料選參數。滾動前進檢驗模擬這個過程:在樣本內裡挑最優參數,在緊接著的樣本外裡檢驗,然後整體往前滾。

回測裡的水分

用全部資料挑出的「最優參數」等於看著答案做題。樣本外表現和它的差距,就是回測裡的水分;在純雜訊裡也能挑出好看的參數,是過度擬合最直接的證據。

要平原,不要尖峰

可靠的參數附近,鄰近的參數也表現不錯。只有某一個參數特別好、旁邊都很差,多半是巧合,換一段行情就會失效。

本課要點

  • 樣本內挑參數、樣本外檢驗,樣本外的表現才接近真實水準。
  • 滾動前進:每次用過去一段資料選參數,在接下來一段資料上檢驗,再整體往前滾。
  • 樣本內很好、樣本外很差,說明策略多半是在擬合雜訊。
  • 好參數附近的參數也應該不錯;只有一個「尖峰」參數特別好,多半是巧合。

動手試試

下面這些練習可以在本課的互動模擬裡完成:

  1. 在「風格切換」行情裡:全樣本最優報酬是多少?樣本外合計呢?
  2. 切到「純雜訊」:每個區間的樣本內平均是多少?樣本外合計呢?
  3. 回到「風格切換」,把訓練區間從 120 根改成 200 根:參數更換次數變少了嗎?樣本外合計變好還是變差?
  4. 切到「長期趨勢」:樣本外合計還是正的嗎?和「全樣本最優」差多少?

小測驗與解析

1. 一個參數在樣本內年化 40%、樣本外年化 −5%,最可能說明?
答案:過度擬合了歷史雜訊。只在「見過的資料」上表現好,是過度擬合的典型特徵。
2. 滾動前進檢驗的做法是?
答案:用過去資料選參數、在下一段資料上檢驗,然後往前滾動。模擬真實交易中「只能用過去資訊做決定」的處境。
3. 測試了 200 組參數,挑出回測最好的一組,年化 35%。最合理的下一步是?
答案:在沒參與挑選的樣本外資料上檢驗。試的組合越多,挑出「碰巧好看」的參數的機會越大,必須用沒見過的資料檢驗。

本課術語

  • 樣本內 (In-Sample):用於最佳化參數的那段歷史資料。
  • 樣本外 (Out-of-Sample):沒有參與最佳化、專門用來檢驗策略的那段資料。
  • 過度擬合 (Overfitting):參數被調得過度貼合歷史資料,在新資料上表現很差。
  • 滾動前進檢驗 (Walk-Forward Analysis):反覆用過去一段資料選參數、在緊接著的一段資料上檢驗,再整體往前滾動,模擬真實交易。
樣本外檢驗:別被回測騙了(量化入門) · 72lab