EA 最佳化是尋找能改善策略歷史表現之參數值的過程。方法正確時,它能提煉出真實的交易優勢。方法錯誤時,它會產生在歷史資料上表現出色、卻在實盤交易中立即失敗的參數。兩者的關鍵差異在於是否有前推分析的紀律。
最佳化的核心問題
最佳化是在參數空間中搜尋,找出在歷史資料集上使所選指標(總報酬、夏普比率(Sharpe)、獲利因子)最大化的參數組合。問題在於:若參數組合足夠多,您總能在任何歷史資料上找到看起來非凡的設定——包括純粹的隨機雜訊。
這就是曲線配適(又稱過度配適)。曲線配適的 EA 記住了回測期間特定的價格走勢,而非發現了真實的市場優勢。它在前推測試中將表現不佳或完全失效。
前推分析的解決方案
曲線配適的解藥是樣本外測試。將一部分歷史資料——通常是最近的 20–30%——保留為「驗證集」,絕不納入最佳化範圍。然後:
- 在較早的樣本內資料(例如 2020–2024 年)上最佳化參數
- 在樣本外資料(例如僅 2025 年)上測試最佳參數,不做任何進一步調整
- 若效能在樣本外期間依然維持,則這些參數具備一定的真實預測價值
MT5 的策略測試器內建「前推最佳化」模式,可在滾動視窗上自動化執行此流程。
穩定性測試——實用的捷徑
若前推最佳化看起來複雜,一個更簡單的過度最佳化訊號是參數敏感度。找出最佳參數後,測試其變化值:若預設的 ATR 乘數為 2.0,也測試 1.8 和 2.2。
- 穩定的參數:1.8 和 2.2 的效能與 2.0 相近。結果對此參數不高度敏感——優勢是真實的。
- 曲線配適的參數:效能在 1.9 或 2.1 時急劇下降。2.0 這個值是專門針對歷史資料最佳化出來的;稍微變動就會使結果崩潰。
即使某個最佳參數的絕對峰值效能略低於更敏感的最優值,也應優先選擇位於效能平坦區域的參數。
應最佳化什麼(以及不應最佳化什麼)
應最佳化:
- 停損乘數(基於 ATR 的停損具有自然的參數範圍)
- 趨勢過濾器的門檻值(ADX 水平、EMA 週期)
- 交易時段過濾器(日內進場時間窗口)
不應最佳化:
- 每筆交易的風險百分比——這是部位管理決策,而非優勢參數
- 以最大化回測利潤為設定目標的出場點——未來的市場並非過去市場的鏡像
何時停止最佳化
一個實用的停止規則:一旦您在樣本外期間的夏普比率(Sharpe)超過 1.5,且前推效率(樣本外利潤 / 樣本內利潤)高於 0.5,就停止最佳化。在此時點進行進一步的精調,只會在增加曲線配適風險的同時,無法帶來相應的優勢提升。
正式上線前的最後確認:在模擬帳戶上執行最佳化後的 EA 一個月,並將交易結果逐筆與回測對比。若模擬效能在回測夏普比率的 20% 以內,則這些參數可行。若模擬效能嚴重低於預期,請重新審視回測設定中的成交模型假設(點差、滑價)。