MT5 策略測試器完整教學:設定、優化與結果解讀
📌 本文重點
完整掌握 MT5 策略測試器:回測模式選擇、參數設定、優化方法(遺傳演算法)、報告指標解讀,以及避免常見回測陷阱的方法。
完整掌握 MT5 策略測試器:回測模式選擇、參數設定、優化方法(遺傳演算法)、報告指標解讀,以及避免常見回測陷阱的方法。
開啟策略測試器
在 MT5 中按 Ctrl+R 或點選「檢視」→「策略測試器」即可開啟。
回測模式說明
| 模式 | 速度 | 精確度 | 建議用途 |
|---|---|---|---|
| 每根K線開盤價 | 最快 | 最低 | 快速篩選策略 |
| 每根K線 | 快 | 中 | 基本驗證 |
| 每個即時報價(基於真實跳動點) | 最慢 | 最高 | 最終驗證、掛單策略 |
⚠️ 重要:含止損、止盈或掛單的策略,必須使用「每個即時報價(基於真實跳動點)」才能獲得可靠的回測結果。
關鍵設定參數
- 初始資金:建議與實盤資金相近,影響倉位計算
- 槓桿:選擇你的經紀商提供的槓桿倍數
- 優化:關閉時為單次回測;開啟時為參數優化
- 歷史數據期間:至少需要 2–3 年數據,才有統計意義
- 點差:建議使用「目前」或設定一個略高於實際的保守值
參數優化設定
在 EA 的 input 參數旁邊勾選「✓」即可加入優化。設定「起始值」、「終止值」、「步進」:
input int InpFastMA = 10; // 起始:5, 終止:20, 步進:1
input int InpSlowMA = 30; // 起始:20, 終止:50, 步進:5
input double InpRisk = 1.0; // 起始:0.5, 終止:3.0, 步進:0.5
優化標準建議選擇:自定義最大(需在 EA 中定義 OnTester())或 餘額最大(簡單但容易過度擬合)。
自定義優化指標
// 在 EA 中實作 OnTester() 回傳自定義評分
double OnTester()
{
double profit = TesterStatistics(STAT_PROFIT);
double drawdown = TesterStatistics(STAT_BALANCE_DD);
double trades = TesterStatistics(STAT_TRADES);
double winRate = TesterStatistics(STAT_WIN_TRADES) / MathMax(trades, 1);
double profitFactor= TesterStatistics(STAT_PROFIT_FACTOR);
// 過濾條件:交易數不足、勝率太低、利潤因子太低則評分為0
if (trades < 30 || winRate < 0.4 || profitFactor < 1.2) return 0;
// 自定義評分:利潤 / 最大回撤(越高越好)
double score = (drawdown > 0) ? profit / drawdown : 0;
return score;
}
解讀回測報告關鍵指標
| 指標 | 說明 | 參考標準 |
|---|---|---|
| 獲利因子(Profit Factor) | 總獲利 / 總虧損 | > 1.5 為良好 |
| 最大回撤(Max DD) | 資金峰值到谷值的最大跌幅 | < 20% 為可接受 |
| Sharpe Ratio | 風險調整後報酬 | > 1.0 為良好 |
| 期望值(Expected Payoff) | 每筆交易的平均獲利 | 必須為正值 |
| 交易次數 | 樣本數量 | 至少 100 筆以上 |
| 回收比率(Recovery Factor) | 總獲利 / 最大回撤 | > 3 為良好 |
避免過度擬合的方法
- 優化後保留 30% 數據做 Out-of-Sample 測試(不參與優化)
- 優化結果應在 Out-of-Sample 期間表現相近
- 避免優化過多參數(>5個參數容易過度擬合)
- 優先選擇「穩健區域」的參數,而非極值
本文由 James Lee 撰寫。內容僅供教育目的,不構成投資建議。