重複使用樣本外區間
每當預留區間裡的一個結果又指導了一次調整,那段區間就成了訓練資料的一部分。幾輪之後已經沒有樣本外了,而流程感覺更嚴謹,證明的東西卻更少。
過度配適是把 EA 參數調得過分貼合歷史資料,使策略在回測中表現亮眼、在未曾見過的資料上表現不佳,因為它利用的是雜訊而非真正的市場規律。
亦稱:overfitting, 曲線配適, 過度最佳化
更新於 · 審閱於
把規則一路調到與過去貼合得極緊,於是它學會的是那段歷史的偶然,而不是它的規律。回測越來越好看,策略卻越來越差,而報告裡沒有任何東西能把兩者分開。
過度配適是一種會產出漂亮證據的失效方式,正因如此,它能通過一個差策略過不了的審查。每跑一輪最佳化,報告出來的結果都會變好,無論策略本身是否變好;只看報告結果的流程,因此根本分辨不出差別。
最佳化工具給出一個策略最好的十組參數。被公布的是最上面那一行;而真正說明優勢是否為真的,是它周圍那張表的形狀。
真實的優勢會隨著參數遠離最佳點而平緩變弱。被配適的優勢則從懸崖上掉下去,而這道懸崖在花掉任何一份樣本外資料之前就已經看得見。
計算 樣本內 2.41 → 樣本外 0.88,而相鄰設定都停在損益兩平附近
結果 那個 2.41 是區間的性質,不是規則的性質
過度配適是從產出結果的流程去診斷的,而不是從結果本身。要問:調了什麼、在什麼資料上調、又留下了什麼。
| 區間 | 含義 |
|---|---|
| 一個區間,全部參數都最佳化,什麼都沒留 | 這份報告對未來沒有證據價值。它描述的是規則能被扳到多貼合一個樣本。 |
| 公布了樣本外區間,但每次調整後又拿來用 | 預留已經花掉了。一旦它的結果反過來餵給調參,它也變成了樣本內。 |
| 一個未被動過的樣本外區間,只看了一次 | 最低標準。要解讀落差,而不是解讀水準。 |
| 帶寬闊參數高原、並做跨商品校驗的向前推進檢驗 | 實盤之前能拿到的最強證據,因為重新配適這件事本身被檢驗過了。 |
mt5depot 的列表會寫明資料區間、測試模型與成交筆數,讀者因此可以問出上面這些問題,而不是直接相信那條曲線。
每當預留區間裡的一個結果又指導了一次調整,那段區間就成了訓練資料的一部分。幾輪之後已經沒有樣本外了,而流程感覺更嚴謹,證明的東西卻更少。
那恰恰是配適會吹大的數字。零售 EA 的樣本內夏普超過 3,更可能是症狀而不是安慰。
參數數量是一條路徑,策略篩選是另一條。在同一個區間裡從兩百個簡單策略中挑出最好的一個,對樣本的配適效果,和調一個複雜策略一樣有效。
這會讓回測恢復好看,並把失敗重演一次,因為新的配適出自和舊配適完全相同的流程。要先回答的問題是:原來那個優勢有沒有哪怕一次是樣本外的。
| 這裡公開的 14 支 EA | 數值 |
|---|---|
| 樣本內獲利因子 | 1.27–1.52 |
| 獲利因子低於 1.00 的條目 | 0 |
| 報告了樣本外區塊的 | 11 |
| 樣本外報酬率 | −0.57 % 至 +3.01 % |
| 虧損的樣本外區塊 | 2 |
| 在真實資金帳戶上驗證過的執行 | 0 |
先讀最後一行,再讀第一行。滾動回測跑的仍然是有人可能早就看過的歷史,所以上面沒有任何一項是「能定下什麼」的那種樣本外——而且有三支 EA 公布了預留區間的起始日期,此後再沒有發布過任何結果,從內部看,報告偏差正是這個樣子。
弱點在規模,不在正負號。這裡樣本內紀錄的中位數是 362 筆已平倉交易,預留區塊的中位數只有 21 筆。這麼短的一段跑不出優勢與一個平靜季度的區別,所以那些小幅的負數(−0.57 %、−0.47 %)並不比正數帶有更多判決。
策略測試器的 Forward 下拉選單(No、1/2、1/3、1/4、Custom)會替你把區間切開。它攔不住你在每一輪最佳化之後又去看一遍前半段,而正是這一次次重看把它花掉了。把 Forward 設為 Custom,填上你停止查看的那個日期——上面十個區塊用的是 2026-04-01——預留區間值多少,就取決於落進去多少:Cairn 有 142 筆,其次最大的是 40 筆,另有兩支只有個位數。