別被MT5測試器的輸入值快取騙了
目錄
結論:請假設測試器裡殘留的是「上一次的值」
MT5 的策略測試器會依每支 EA 記住上一次的輸入值。這是很方便的功能,但在更新 EA 之後,或剛做完另一次驗證時,你以為自己驗證的設定,和實際跑出來的設定可能並不一致。
我們的對策很簡單:不要相信測試器畫面上顯示的值。把全部項目都寫進設定檔的 [TesterInputs],再用報告中留下的輸入值來核對。 本文說明這麼做的原因與步驟。
為什麼會驗證到另一組設定
測試器會儲存並重複使用輸入值
MT5 測試器會依 EA 儲存最後一次使用的參數,下次選擇同一支 EA 時再讀取。這省去了手動輸入的麻煩,但在下列情境就會出事。
- 改版 EA 時更動了預設值,測試器裡卻還留著舊值
- 最佳化時試過極端數值,之後直接帶著那組值跑一般回測
- 為其他貨幣對調整過的手數或過濾條件,被帶到下一次驗證
這些情況只要仔細看畫面其實都能發現。但如果 EA 有幾十個輸入項目,只有一項不同就很容易漏看。
結果「看起來合理」才麻煩
設定不對時,測試器不會報錯。結果若是離譜到不行,還能馬上察覺;真正麻煩的是跑出看似合理的數字。
舉例來說,把兩支都在 USDJPY H1 運作的 Donchian 系 EA 並排比較(兩者皆為 MT5 實機回測的實測值)。
| EA | PF | 交易次數 | 有效DD |
|---|---|---|---|
| DONCHIAN ENGINE | 1.5 | 631 | 10.8% |
| MEGAMAX DONCHIAN | 1.55 | 629 | 58.6% |
PF 與交易次數幾乎相同,有效 DD 卻差很多。兩者的設計差異已寫在各 EA 的頁面,這裡想強調的是:只看 PF 和交易次數,根本分辨不出實際是用哪一組設定跑的。只要一個輸入值偏掉,風險評估就可能整個不同。
我們的確認流程
1. 把全部項目寫進設定檔的 [TesterInputs]
MT5 可以帶入設定檔(ini)來啟動測試器。請在其 [TesterInputs] 區段中,不只寫要更動的項目,而是寫出全部輸入值。
[Tester]
Expert=MyEA
Symbol=USDJPY
Period=H1
Model=4
[TesterInputs]
InpLots=0.10||0.10||0.01||1.00||N
InpPeriod=20||10||5||50||N
格式為「值||起始||步進||終止||是否最佳化(Y/N)」。一般回測的話,結尾請設為 N。
沒寫進去的項目會以什麼值運作,可能因環境而異,所以我們不仰賴它。 因為「應該是預設值吧」這種想當然,正是本文所談的失誤本身。
2. 核對報告中的輸入參數
測試器的報告會留下實際使用的輸入值。驗證結束後,請把 ini 與報告中的輸入值逐項比對。與其用眼睛比較,不如轉成文字再做差異比對,更可靠。
3. 更新 EA 後,視為「另一支 EA」
改版後預設值有變動的 EA,請在檔名加上版本號,另存成不同名稱。這是為了從一開始就切斷舊的儲存值被自動讀取的途徑。
檢查清單
- 已把全部輸入項目寫進
[TesterInputs] - 最佳化之後,所有項目的結尾都已改回
N - 報告中的輸入值與 ini 一致
- EA 改版後已更換檔名
- 商品、時間週期與建模方式也已在
[Tester]中明確指定
限制與注意事項
即使這樣做,也無法防範所有失誤。
- EA 內部沒有以輸入值形式公開的常數,無法用 ini 管理。原始碼是否相同,需要用別的方法確認。
- 就算輸入值正確,只要歷史資料或點差條件不同,結果就會改變。核對輸入值只是維持可重現性的其中一環。
- 我們自己也無法斷言,在徹底執行這套流程之前跑過的驗證全都正確。就我們所察覺的範圍內已重新驗證,但不敢說絕對沒有疏漏。
我們所提供 EA 的設定方式請參閱 EA 設定方法,其他驗證心得則整理在知識庫。
總結
- MT5 測試器會記住上一次的輸入值,可能在不知不覺中沿用
- 設定即使偏掉也不會報錯,還會跑出看似合理的數字,所以很難察覺
- 對策是把全部項目寫進
[TesterInputs],並與報告中的輸入值核對 - EA 改版後請另存為不同名稱,避免讀取到舊的儲存值
- 即便如此,內部常數與資料條件的差異仍無法防範,因此輸入值管理只是驗證的一部分
相關文章
📧 免費電子郵件課程(共 8 封)+ 訂閱者專屬 MT5 指標 13 款合集
訂閱後會立即收到訂閱者專屬合集的下載連結,內含本站 13 款 MT5 指標的已編譯檔案(.ex5)、原始碼和使用指南。隨後透過共 8 封郵件介紹外匯自動交易的本質、回測的正確解讀方法和經紀商選擇技巧(前 5 天每天 1 封,之後在訂閱第 7、14、30 天各 1 封)。MQL5 Market 版(首發價,隨銷量分階段漲價)漲價前也會通知您。在本站,只要擁有合作經紀商的真實帳戶,EA 即可免費使用。
※ 嚴格保護隱私。可隨時取消訂閱。