如何讀懂策略測試報告:Sharpe Ratio、Drawdown 完整解析
📌 本文重點
完整解析 MT5 策略測試報告的每個指標:獲利因子、Sharpe Ratio、最大回撤、期望值、回收比率,以及如何根據報告判斷策略的真實價值。
完整解析 MT5 策略測試報告的每個指標:獲利因子、Sharpe Ratio、最大回撤、期望值、回收比率,以及如何根據報告判斷策略的真實價值。
策略測試報告總覽
MT5 策略測試完成後,點選「報告」標籤可看到完整的績效報告。以下是各個指標的詳細解析。
核心獲利指標
| 指標 | 說明 | 計算方式 | 參考值 |
|---|---|---|---|
| 獲利因子(Profit Factor) | 總獲利與總虧損的比值 | 總獲利 ÷ 總虧損 | >1.5 良好,>2.0 優秀 |
| 期望值(Expected Payoff) | 每筆交易的平均預期盈虧 | 總盈虧 ÷ 總交易數 | 必須為正值 |
| 回收比率(Recovery Factor) | 獲利能力與風險的比值 | 總獲利 ÷ 最大回撤 | >3 良好 |
| Sharpe Ratio | 風險調整後的報酬 | 平均報酬 ÷ 報酬標準差 | >1.0 良好,>2.0 優秀 |
回撤指標詳解
| 回撤類型 | 說明 | 重要性 |
|---|---|---|
| 最大餘額回撤(Balance DD) | 已實現虧損的最大連續下降 | 高 — 代表實際損失 |
| 最大淨值回撤(Equity DD) | 包含浮動虧損的最大下降 | 最高 — 最真實的風險 |
| 相對回撤(Relative DD %) | 以百分比表示的最大回撤 | 高 — 可跨帳戶比較 |
交易質量指標
// 在 OnTester() 中取得所有統計數據
void PrintAllStats()
{
Print("=== 策略報告 ===");
Print("總交易: ", TesterStatistics(STAT_TRADES));
Print("獲利交易: ", TesterStatistics(STAT_WIN_TRADES));
Print("虧損交易: ", TesterStatistics(STAT_LOSS_TRADES));
Print("勝率: ", DoubleToString(TesterStatistics(STAT_WIN_TRADES)/
MathMax(TesterStatistics(STAT_TRADES),1)*100,1), "%");
Print("獲利因子: ", TesterStatistics(STAT_PROFIT_FACTOR));
Print("期望值: $", TesterStatistics(STAT_EXPECTED_PAYOFF));
Print("Sharpe: ", TesterStatistics(STAT_SHARPE_RATIO));
Print("最大回撤: $", TesterStatistics(STAT_BALANCE_DD));
Print("相對回撤: ", DoubleToString(TesterStatistics(STAT_BALANCE_DD_RELATIVE)*100,2), "%");
Print("回收比率: ", TesterStatistics(STAT_RECOVERY_FACTOR));
Print("平均獲利: $", TesterStatistics(STAT_GROSS_PROFIT)/
MathMax(TesterStatistics(STAT_WIN_TRADES),1));
Print("平均虧損: $", TesterStatistics(STAT_GROSS_LOSS)/
MathMax(TesterStatistics(STAT_LOSS_TRADES),1));
}
判斷策略好壞的實用清單
- ☑ 交易次數 > 100 筆(樣本足夠)
- ☑ 獲利因子 > 1.5
- ☑ 最大淨值回撤 < 20%
- ☑ Sharpe Ratio > 1.0
- ☑ 連續最大虧損次數 < 8 次
- ☑ Out-of-Sample 績效 ≥ In-Sample 的 50%
- ☑ 在不同品種/時間框架有類似表現(策略具普遍性)
本文由 James Lee 撰寫。內容僅供教育目的,不構成投資建議。