MT5 EA最佳化入門:遺傳演算法實戰解說
目錄
MT5 EA最佳化入門:遺傳演算法實戰解說
在調整 EA 參數時,MT5 的策略測試器提供兩種最佳化模式:「窮舉法(逐一測試所有參數組合)」與「遺傳演算法(GA)」。
面對龐大的組合數量,在有限時間內完成搜尋,遺傳演算法是業界標準做法。本文將整理遺傳演算法最佳化的基本概念與實務要點。
什麼是遺傳演算法
遺傳演算法(Genetic Algorithm,GA)是一種模仿生物進化的最佳化方法。具體流程如下:
- 隨機生成多組參數(個體)
- 對每個個體執行回測,並依評估指標(PF、還原係數等)進行評分
- 從高分個體中選出「親代」,透過交叉與突變產生下一代
- 重複以上過程,隨著世代累積,逐漸收斂至高評分的參數組合
窮舉法是「遍歷所有組合」,而 GA 則是「聚焦於較優區域進行搜尋」,因此計算時間可縮短數個數量級。
窮舉法與遺傳演算法的使用場景
- 參數數量少、組合在數千以下 → 使用窮舉法徹底覆蓋
- 參數數量多、組合在數萬以上 → 使用遺傳演算法
舉例來說,若 3 個參數各設定 10 個步進值,共有 1,000 種組合,窮舉法即可勝任。但若 5 個參數各設定 20 個步進值,組合數高達 320 萬種,此時便需要遺傳演算法。
策略測試器的設定方式
啟用最佳化功能,請在策略測試器介面中進行以下設定:
- 最佳化:選擇「基於遺傳演算法的快速最佳化」
- 結果:選擇評估指標,例如「最大複利」、「自訂最大值」、「最大還原係數」等
- 輸入參數頁籤:勾選欲最佳化的參數,並設定起始值、終止值與步進值
評估指標的選擇方式
選擇什麼作為「優良」標準,將直接影響最終結果。以下列出常見指標及其特點:
- 最大複利(獲利):僅最大化利潤。因無視風險,容易陷入過度最佳化
- 還原係數:淨利潤 ÷ 最大回撤。兼顧平衡
- 夏普比率:考量報酬率的穩定性
- 自訂最大值:可在 EA 程式碼中自由定義(例如:PF × 交易次數)
建議使用還原係數或夏普比率,這是在避免過度最佳化的同時,較容易找到實用參數的方式。
執行遺傳演算法最佳化
啟動最佳化後,每一世代中評估值較高的參數組合,將依序列於「最佳化結果」頁籤中。MT5 的遺傳演算法會自動執行數百個世代,逐步收斂至優質解。
常見陷阱
- 收斂過快:參數搜尋範圍可能過於狹窄
- 完全不收斂:評估指標設定不當,或資料雜訊過多
- 收斂至明顯異常的數值:未排除交易次數過少的解
透過在評估函數中加入「排除交易次數低於 50 次的結果」等篩選條件,可有效去除樣本數不足的雜訊解。
避免過度最佳化
最佳化執行越多次,越容易趨近「過去完美、未來失效」的參數。以下是避免這種情況的實務守則:
1. 分割時間區間
以 10 年歷史資料為例,可用前 7 年進行最佳化,再用後 3 年進行樣本外(OOS)驗證。若後半段結果崩潰,即可判斷前半段發生了過度擬合。
2. 比較前 10 至 20 名結果
僅採用最高分的單一結果是危險的做法。應確認排名靠前的解是否集中在相似區域,若是,則採用該區域中央附近的參數。
3. 檢驗參數靈敏度
將候選參數上下調整 10 至 20%,確認結果是否出現大幅崩潰。若崩潰,代表該解過度擬合於「尖銳的最佳點」。
4. 保留不進行最佳化的參數
刻意保留「未經最佳化、邏輯上自然的固定值」,能有效降低過度最佳化的風險。例如,對 EMA 週期進行最佳化,但將 ATR 倍數固定不動。
善用並行最佳化
MT5 支援多核心 CPU 的並行最佳化。在「測試器」→「設定」中增加使用的代理數量,即可縮短計算時間。
此外,若使用 MQL5 雲端網路,可調用全球遠端代理進行大規模最佳化,但需支付費用。建議先在本地縮小參數範圍後,再考慮是否使用雲端資源,效率更佳。
本站配布 EA 的最佳化方針
以 GOLD_EMA_ATR_EA(XAUUSD H1)為例,我們刻意縮小最佳化對象的範圍:
- EMA 短期週期
- EMA 長期週期
- ATR 倍數(用於損切)
其餘參數均採用「自然值」固定,以防止過度最佳化。10 年回測得出的 PF 1.30,若繼續最佳化可以再提高,但未來市場中失效的風險也會隨之增加。**「選擇平凡的數字,長期穩定運行」**才是實務上的正確解答。
免費 EA 下載
GOLD_EMA_ATR_EA 隨附最佳化後的參數設定與最佳化指南,免費提供下載。
推薦券商
為了讓回測與最佳化的結果在實盤中得到更好的再現性,本站推薦以成交品質為重點的券商。
相關文章