EA回測曲線好看,先核對這幾項測試條件
區分建模方式與真實逐筆資料,記錄點差假設、參數篩選和獨立檢查區間,讓EA測試結論可以複查。
作者:托馬斯|EA與平台實務|2026年10月6日
一張向上的回測曲線,不能說明程式在什麼條件下運行,更不能直接代表實盤表現。比較黃金EA時,先核對測試條件,再讀結果,比只挑淨利潤最高的一份報告更有用。本文討論常規MT4測試器,不將MT5或第三方測試工具的功能混為一談。
先保存一份能夠複查的測試記錄
在運行測試之前,保留EA版本、參數檔案、完整品種名稱、圖表週期、日期區間、初始資金及其貨幣,以及資料來源與終端版本。每次修改參數或條件,都記錄原因,不在看到結果之後只保存最好的一次。
這些記錄的目的不是增加報告頁數,而是讓其他人能夠知道測試究竟比較了什麼。兩份曲線即使外觀相近,只要合約條件、數量或資金口徑不同,就可能沒有直接可比性。報告缺失的條件應標明未知,不能靠猜測補齊。
建模方式,需要與程式邏輯對應
MT4官方說明列出不同的歷史建模方式。只按開盤價測試與依靠柱內價格變化的程式,可能不能反映同一種觸發過程。選擇方式時應先確認EA是在完整K線形成後判斷,還是依賴同一根K線內部的價格、退出和訂單變化。
官方說明中的Every tick模式也使用較小週期資料與插值生成價格變化,並不自動等於完整的歷史真實逐筆成交記錄。不能看到「每個tick」字樣,就認定已經還原了全部市場細節。若使用第三方資料或額外工具,應另外說明其來源和方法。
點差假設,不等於歷史成交環境
根據MT4官方說明,常規測試器預設會使用測試開始時品種的當前點差來模擬Ask,也可在Spread欄位設定自訂值。這意味著測試的點差假設需要明確記錄,不能把固定假設當成整個歷史期間的真實浮動點差。
資料公布、流動性變化或異常時段的成交條件,未必能由一組固定設定充分體現。佣金、隔夜費用和其他執行影響,也應核對具體報告與工具是否考慮、採用何種口徑。沒有模擬的部分要明確說明,不用「回測已通過」代替這些檢查。
優化結果,只是特定條件下的排序
MT4優化結果可以顯示不同參數組合的利潤、交易數、回撤和預期收益等統計項。排序第一,表示該組合在所選區間與條件下達到了相應指標,不代表未來仍然排第一。
分析時不僅看最佳一行,還要觀察附近參數稍作變化後是否出現完全不同的結果。如果表現只集中在一個很窄的組合,說明結論可能對設定敏感,但不能僅憑這一現象就斷定程式一定失效。應繼續核對邏輯、資料和測試條件,保留有利與不利結果。
留出未用於調參的資料,再作檢查
可以預先劃分用於調整參數的區間,以及不參與調參的獨立檢查區間。劃分方式和評價指標應在看到檢查結果之前確定。若檢查後又反覆用同一段資料改參數,這段資料就不再是完全獨立的檢驗。
這是一種研究安排,不是保證盈利的認證流程。不同市場狀態下的樣本數量、持倉敞口和結果差異仍需記錄;不能因為一次獨立檢查盈利,就忽略樣本不足或只覆蓋單一環境的問題。
條件變化時,保留前後對照
在保持其他條件相同的情況下,改變一個明確的假設並比較結果,可以幫助發現程式對條件的敏感性。應記錄改動、依據、測試結果和沒有覆蓋的限制,而不是只給出「更穩」這種難以核查的評價。
模擬運行可以用於檢查程式流程和記錄實際報價環境,但模擬成交仍不等同於實盤。進入任何運行階段之前,應明確異常訂單、斷線、倉位偏離和損失達到限制時的檢查流程,不能為了延續回測曲線而臨時放寬規則。
最後把結論寫成條件句
一份清楚的總結應寫明:在什麼資料、參數和費用假設下,觀察到了什麼結果;哪些風險沒有被覆蓋;還需要驗證什麼。把未知事項保留下來,比把研究結果包裝成收益承諾更有助於後續複查。
槓桿交易可能造成重大損失。本文用於EA測試與研究方法說明,不構成程式購買、交易或倉位建議。回測、模擬與優化結果均不能保證實盤安全或未來收益。