回测(Backtesting)是指将 EA 策略应用于历史行情数据,模拟其在过去一段时间内的交易表现,从而在不承担实际资金风险的前提下评估策略的可行性。这是每一个 EA 开发者和使用者在上线实盘之前必须完成的关键步骤。一次严谨的回测可以帮助你识别策略的致命缺陷、了解历史最大回撤、验证盈利逻辑是否成立——而跳过回测直接实盘,无异于蒙眼飞行。本文将带你从零开始,掌握 MT5 策略测试器的完整使用流程。
打开策略测试器
MT5 内置了功能强大的策略测试器,无需安装任何额外插件即可使用。
通过菜单栏打开
在 MT5 主界面顶部菜单栏中,点击 查看(View) → 策略测试器(Strategy Tester)。
使用快捷键
直接按下键盘快捷键 Ctrl + R,策略测试器面板将出现在 MT5 界面下方。
确认面板位置
策略测试器默认停靠在 MT5 窗口底部。你可以将其拖拽为独立窗口,以便获得更大的操作空间。
回测基本设置
打开策略测试器后,在正式开始回测前,需要正确配置以下参数。每一项设置都会影响回测结果的准确性。
选择 EA 文件
在策略测试器面板左上角的下拉菜单中,选择你要测试的 EA。EA 必须已编译并存放在 MT5 的 MQL5/Experts 目录下才能出现在列表中。
选择交易品种
在 交易品种(Symbol) 下拉框中选择你希望测试的货币对或其他品种,例如 EURUSD、XAUUSD 等。确保该品种在你的经纪商账户中可用,且历史数据已下载完整。
选择时间周期
在 时间周期(Timeframe) 中选择与 EA 策略逻辑匹配的 K 线周期,例如 M15(15 分钟)、H1(1 小时)或 D1(日线)。时间周期应与 EA 代码中使用的周期一致。
设置回测时间范围
在 自定义日期(Custom Period) 中勾选并设置回测的起止日期。建议选取至少 2–3 年的历史数据,以涵盖不同的市场环境(趋势市、震荡市、高波动期)。
选择回测模式
在 模式(Model) 下拉框中选择回测精度模式。推荐使用 每 Tick 模式(Every Tick),该模式最接近真实行情,尤其适合短线和剥头皮类 EA。详细对比见下方表格。
设置初始存款金额
在 存款(Deposit) 字段中输入模拟的初始账户资金。建议使用与你实盘账户相近的金额,以确保仓位计算和回撤比例具有参考意义。
点击开始运行
确认所有设置无误后,点击 开始(Start) 按钮。回测进度条将在面板中显示,完成后自动跳转至结果报告页。
回测模式对比
MT5 提供三种不同精度的回测模式,各有适用场景。在精度与速度之间做出正确的选择,能显著提升回测的实用价值。
| 模式 | 速度 | 精度 | 适用场景 |
|---|
| 每 Tick(Every Tick) | 慢 | 最高 | 短线、剥头皮、对价格精度敏感的 EA |
| 每 Tick(基于真实报价) | 最慢 | 极高 | 需要最接近真实市场的高精度验证 |
| 开盘价(Open Prices Only) | 极快 | 较低 | 日线级别以上的趋势策略快速初筛 |
对于大多数日内交易策略,推荐使用 每 Tick 模式。如果你只是快速筛选参数区间或测试日线级别的逻辑,可先用开盘价模式提高效率,确认方向后再用每 Tick 模式做精细验证。
解读回测报告
回测完成后,MT5 会自动生成详细的回测报告。学会正确解读这些指标,是判断策略优劣的核心能力。
净利润(Net Profit)
策略在回测期间内的最终盈亏总和(已扣除手续费和隔夜利息)。净利润为正是最基本的门槛,但单看绝对值意义有限,需结合回撤和持续时间综合判断。总利润 / 总亏损(Gross Profit / Gross Loss)
所有盈利交易的总和与所有亏损交易的总和。通过对比这两个数字,可以初步判断策略的盈亏结构。盈利因子(Profit Factor)
计算公式:总利润 ÷ 总亏损的绝对值。盈利因子是衡量策略质量的核心指标之一。
- 低于 1.0:策略整体亏损
- 1.0 – 1.3:策略勉强盈利,稳定性存疑
- 1.3 以上:可接受的基准线
- 2.0 以上:优秀(但需警惕过拟合)
期望值(Expected Payoff)
每笔交易的平均盈亏期望,单位为账户货币。正数表示策略长期期望值为正,负数则应放弃该策略。 最大回撤——绝对值(Max Drawdown Absolute)
账户余额从历史最高点下降的最大绝对金额。例如账户最高达到 12,000 美元,随后跌至 9,500 美元,则绝对回撤为 2,500 美元。最大回撤——相对值(Max Drawdown Relative)
以百分比表示的最大回撤幅度,更具普遍参考意义。通常建议:
- 保守型策略:回撤低于 10%
- 稳健型策略:回撤 10%–20%
- 激进型策略:回撤 20%–30%(需谨慎)
胜率(Win Rate)
盈利交易笔数 ÷ 总交易笔数。胜率高不代表策略好,需结合盈亏比综合判断。胜率 35% 配合 3:1 的盈亏比,同样是正期望值策略。 交易次数(Total Trades)
回测期间总交易笔数。次数过少(如 2 年内不足 30 笔)会导致统计显著性不足,回测结论可信度低;次数过多(如 1 天内数百笔)则需关注手续费对净利润的侵蚀。平均持仓时间
反映策略的交易风格——是超短线剥头皮、日内交易还是中长线趋势跟踪。确认与你的预期策略类型一致。连续亏损次数(Consecutive Losses)
最长连续亏损的交易笔数。这个指标直接影响心理承受能力和资金管理要求。连续亏损 10 笔以上的策略,在实盘中很容易引发情绪干预。
回测的局限性
回测是一个强大的工具,但它并不等于未来的保证。了解回测的局限性,能帮助你避免对历史数据过于乐观。
过度优化(曲线拟合):通过反复调整参数使回测结果”完美”,本质上是让 EA 记住了历史数据而非学会了规律。这样的策略在实盘中往往表现惨淡。判断标准:参数稍微改动一点,结果就大幅恶化,往往说明存在过拟合。历史数据质量差异:不同经纪商提供的历史 Tick 数据质量参差不齐,部分数据存在缺口或失真,可能导致回测结果虚高。滑点与执行延迟未充分反映:回测默认的滑点设置通常低于实盘水平,尤其在重大新闻发布时,实际滑点可能数倍于回测假设。未来数据不可知:策略是基于历史规律设计的,但市场结构会随时间演变。某策略在 2018–2020 年表现优异,不代表 2024 年同样有效。
前向测试
前向测试(Walk-Forward Testing / Out-of-Sample Testing) 是对抗过拟合风险的最有效手段之一。其核心思路是:
- 划分数据集:将历史数据分为两段——较早的”样本内数据”(In-Sample)用于参数优化,较晚的”样本外数据”(Out-of-Sample)用于验证。
- 在样本内数据上优化参数:找到表现最佳的参数组合。
- 将参数固定,在样本外数据上测试:若策略在从未”见过”的数据上仍表现良好,说明其具备一定的泛化能力,而非仅仅记住了历史数据。
确定数据分割比例
常见做法是将数据按 70% / 30% 或 80% / 20% 的比例分割,较早的部分用于优化,较晚的部分用于前向验证。
在样本内数据上完成参数优化
使用 MT5 策略测试器的优化功能,在样本内数据上找到最优参数组合。
锁定参数,运行样本外测试
将参数固定,修改回测时间范围至样本外数据段,运行回测并记录结果。
对比两段数据的表现
若样本外表现与样本内表现相近(允许一定合理降幅),则策略具备较强的可信度;若样本外结果大幅劣化,则需重新审视策略逻辑。
回测结果好不代表实盘一定盈利,但回测结果差的策略在实盘中几乎不会突然变好。回测是必要条件而非充分条件——通过了回测验证,才有资格考虑实盘;而回测不通过,则无需犹豫,直接排除。