首頁 > 部落格 > IS/OOS分割不夠|Walk-Forward窗口設計

Walk-Forward回測EA驗證

IS/OOS分割不夠|Walk-Forward窗口設計

發布日: 2026-10-13閱讀時間:約 4 分鐘
⏱ 本文為發布之日的資訊。EA的績效數值(PF、DD、年化)會隨實盤運行與重新驗證而變動,最新數值請在各EA頁面確認。 查看最新EA績效 →

結論:OOS只有一個區間,就仍然只是「一次考試」

把資料分成最佳化用(IS)與驗證用(OOS),是懷疑過度最佳化時有效的第一步。但如果分割只做一次,OOS的結果只能告訴你「在那一個區間表現如何」。

我們的結論如下:把OOS切成多個窗口,一邊向前推進一邊驗證,看的是每個窗口是否獲利,而不是總和。即使總和是正的,只要利潤集中在特定窗口,評價就先保留。

固定分割的弱點

分割點會左右結果

固定分割時,要在哪裡切開由開發者決定。如果OOS剛好落在趨勢明確的時期,看起來就會比邏輯的真實實力更好;若剛好落在相反的時期,則可能把本來可用的邏輯丟掉。兩種情況,結果都取決於「分割點」這一個選擇。

OOS看太多次,就不再是OOS

另一個問題出在開發者的行為。OOS成績不好就修改參數,然後再看一次OOS。重複這個流程,等於是在挑選符合OOS的參數。形式上是未使用的資料,實質上已被拿去做最佳化。這種失誤我們自己也可能犯,不靠流程加以約束就無法避免。

Walk-Forward的窗口建立方式

Walk-Forward是把「最佳化期間」與「緊接其後的驗證期間」當成一組窗口,沿著時間向前移動並重複進行的方法。驗證區間永遠在最佳化區間之後(更靠近未來),因此能得到多個OOS。

方式窗口的移動方式適用情境弱點
固定分割只切一次最初的粗略確認對分割點的依賴很大
滾動型維持最佳化期間長度向前推進行情性質容易改變的商品會捨棄舊行情階段的資訊
錨定型固定起點,逐步拉長最佳化期間交易次數少的邏輯舊資料的影響持續存在

決定窗口長度的標準

窗口長度與其用曆法的年數決定,不如以交易次數決定更安全。驗證區間內的交易太少時,獲利或虧損只是由偶然決定。持有時間長、交易頻率低的邏輯,驗證區間就必須拉得更長。

逐窗確認的步驟

  1. 讓各窗口的驗證區間互不重疊地排列
  2. 在每個窗口內做最佳化,並把得到的參數只套用在緊接其後的驗證區間
  3. 依驗證區間記錄損益、PF、交易次數與最大drawdown
  4. 確認PF在1.0以上的窗口有多少,以及虧損窗口落在哪個時期
  5. 確認把獲利最大的窗口排除後,其餘合計是否仍然獲利
  6. 觀察各窗口選出的參數是否大幅跳動

檢查的重點有三個:

  • 獲利的窗口是否集中在一部分
  • 虧損窗口的損失,相對於獲利窗口的利潤是否過大
  • 相鄰窗口之間的最佳參數是否出現極端變化

我們認為並不需要所有窗口都獲利。趨勢跟隨型在沒有方向的時期,窗口虧損是正常的。真正該視為問題的,是虧損窗口的原因無法說明,以及虧損的深度超出預期。

限制與注意事項

交易次數不足,窗口就無法成立

ATLAS的回測在驗證7.5年間有1193筆交易,即使切成多個窗口,每個窗口也仍能保有一定程度的交易數。另一方面,ETHEREUM EA的回測在驗證7.5年間只有154筆交易。這類低頻率的邏輯若切成細小窗口,每個窗口的交易筆數會變得極少,以窗口為單位的獲利、虧損幾乎無法作為判斷依據。只能把窗口切得粗一些,或是把逐窗評價僅當作參考。

公開的數值是全期間的值

實測排行上刊載的PF與勝率,是通盤驗證期間的數值,並不是逐窗的成績,因此光憑這些無法判定有無過度最佳化。閱讀時請將這一點納入考量。

窗口的設計本身也可以被最佳化

如果改變窗口的長度或數量,再挑選看起來結果較好的組合,那同樣是過度最佳化。窗口設計必須在開始驗證之前決定,事後不能再更動,這是前提。但從外部來看,幾乎無法確認這個前提是否被遵守。

即便如此,未來仍然無法預知

即使通過了Walk-Forward,也無法因應過去不曾出現的行情。在我們運行的模擬帳戶前向測試中,也有多個EA的損益為負。這是模擬帳戶而非真實帳戶的成績,且自開始以來的期間還很短,無論結果好壞,都還不到能下結論的階段。驗證方法是減少失誤的工具,並不保證會命中。

總結

  • 固定的IS/OOS分割,結果會受分割點與OOS檢視次數左右
  • Walk-Forward是建立多個驗證區間,並向前推進逐一確認的方法
  • 要看的不是總和,而是每個窗口的損益。確認利潤的集中程度與參數的穩定性
  • 交易次數少的邏輯,切成窗口越細,判斷就越不穩定
  • 窗口設計要事先固定。即使通過驗證,也無法得知未來的成績

驗證的思考方式也整理在實務知識集中。

📧 MQL5 Market 版漲價前通知 + 5天郵件課程(免費)

在本站,只要擁有合作經紀商的真實帳戶,EA 即可免費使用。MQL5 Market 上銷售的版本目前為首發價,會隨銷量分階段漲價。除漲價前通知外,每天還會寄送一封郵件,介紹外匯自動交易的本質、回測的正確解讀方法與經紀商選擇技巧。

※ 嚴格保護隱私。可隨時取消訂閱。

對EA或外匯有疑問嗎?

可以在Nattzy交易論壇發文提問(免費註冊)。不限於本文內容,EA設定、券商選擇等問題也歡迎。

到Nattzy提問 ↗

留言與提問