- 8/28/2026
- 8/28/2026
若要在 MT4 中对 EA 进行回测,请打开策略测试器(按 Ctrl+R 或前往“视图” > “策略测试器”),从下拉菜单中选择您想要测试的智能交易系统 (EA),选择货币对和时间框架,选择报价模型,设置日期范围,然后点击“开始”。MT4 将在历史数据上模拟该策略,并生成显示利润、回撤、交易次数和权益曲线的结果。整个测试过程仅需几分钟,但您选择的设置和输入的数据将决定这些结果是否具有实际意义。


快速步骤
| 步骤 | 操作 |
| 1 | 将 EA 文件安装到 MQL4 > Experts 文件夹中 |
| 2 | 重启 MT4 或刷新导航器面板 |
| 3 | 按 Ctrl+R 打开策略测试器 |
| 4 | 从智能交易系统 (Expert Advisor) 下拉菜单中选择 EA |
| 5 | 选择交易品种、时间框架和日期范围 |
| 6 | 选择测试模型(逐笔报价、控制点或仅开盘价) |
| 7 | 在“专家属性”下设置点差和 EA 输入参数 |
| 8 | 点击“开始”并等待绿色进度条完成 |
| 9 | 查看“结果”、“图表”、“报告”和“日志”选项卡 |
| 10 | 在使用实盘资金之前,请使用更好的数据和不同的经纪商进行重新测试 |
本文的其余部分将补充每一步背后的背景信息:如何安装 EA、每个策略测试器设置如何运作、如何正确解读报告,以及如何避免导致外汇交易者盲目信任不该信任的回测结果的常见错误。无需编程技能;MT4 策略测试器通过其界面处理一切。


MT4 中的回测究竟意味着什么
当你在 MetaTrader 4 中对专家顾问(EA)进行回测时,你是在指示平台通过 EA 的交易逻辑重放历史市场数据。根据 MetaQuotes(MetaTrader 的开发商)的说法,策略测试器会遍历过去的价格条(或根据你的模型为逐笔报价),并完全按照 EA 代码的指令执行交易。它记录每一次入场、每一次出场、每一笔盈利和每一笔亏损。最后,你会得到一份报告,展示在该历史期间内会发生什么情况。
为什么这很重要?在实盘模拟账户上测试 EA 需要数周时间。而回测能将数月或数年的市场数据压缩到一次运行中,并在几分钟内完成。你可以在投入真实资金之前,快速评估策略是否具有优势。
从一开始就值得记住的几件事:
- 回测显示的是过去表现。它并不保证未来的结果。这对于每种交易策略(无论是手动还是自动)都是成立的。
- 回测才是现实。事后在图表上观察指标具有误导性,因为许多指标会重绘(repaint),正如 MetaQuotes 在其关于指标行为的 MQL4 文档中所指出的那样。策略测试器(Strategy Tester)的交易日志会根据 EA 的实际代码,精确显示交易是在何时开仓和平仓的。
- 大多数专业的汇 de 交易者在信任任何单一回测结果之前,都会在多个经纪商和数据集上进行测试。

MT4 回测核心术语
| 术语 | 含义 |
| Expert Advisor (EA) | 用于 MetaTrader 的自动化交易机器人 |
| Strategy Tester | MT4 内置的用于在历史数据上测试 EA 的工具 |
| MQL4 | 用于编写 MT4 专家顾问(EA)、指标和脚本的编程语言 |
| .ex4 文件 | MT4 可以直接运行的已编译 EA 文件 |
| .mq4 文件 | 可以被编辑并随后进行编译的源代码文件 |
| 分笔模型 (Tick model) | MT4 在回测期间模拟价格运动的方法 |
| 每分笔 (Every Tick) | MT4 最详细的原生测试模型 |
| 控制点 (Control Points) | 一种速度更快但准确度较低的测试模型 |
| 仅开盘价 (Open Prices Only) | 一种仅在每根 K 线开盘时进行测试的快速模型 |
| 建模质量 | MT4 对回测中所用历史数据准确性的评估 |
| 可视化模式 (Visual Mode) | 一种在图表上重放交易以进行视觉检查的策略测试器模式 |
| 前向测试 (Forward testing) | 回测后在模拟账户上实时运行 EA |
开始之前:安装 EA 和加载历史数据
在您进行任何测试之前,需要准备好两样东西:EA 文件和数据。
安装 EA:如果“专家顾问”(Expert Advisor)尚未显示在 MT4 导航器面板的“专家顾问”栏下,请手动放置文件。根据 MetaQuotes 的 MQL4 文件结构文档,EA 文件应位于 MQL4 > Experts 文件夹中:
- 打开 MT4 并前往文件 > 打开数据文件夹。
- 打开MQL4 > Experts文件夹。
- 将 EA 文件 (.ex4 或 .mq4) 复制到该文件夹中。
- 重启 MetaTrader,或者在导航器中右键点击“专家顾问”部分并选择刷新。
现在 EA 应该会出现在列表中。如果没有出现,请再次检查文件位置并重启平台。如果您想要现成的可测试机器人,可以查看免费 EA 库来自 Algo Trading Space 的内容包括专为 MT4 直接使用的 EA 格式。
正在加载历史数据:MT4 使用其内置数据进行回测,但默认数据通常不完整,尤其是在较短的时间周期上。要加载更多市场数据:
- 前往工具 > 选项 > 图表并将“历史图表最大柱数”和“图表最大柱数”设置为一个较大的数值(例如 999999999)。
- 按下F2打开历史中心。
- 选择您计划测试的货币对(例如 EURUSD)。
- 双击每个时间周期进行加载,然后点击下载。
- 重启 MT4。
这将为策略测试器提供更多可用数据。为了获得更高的准确性,许多交易者会从外部来源下载分笔数据(tick data),例如历史数据应用并将其导入平台。经纪商内置的数据足以进行初步筛选,但专门的逐笔报价(tick data)能为最终决策提供更真实的测试结果。
如何打开并配置 MT4 策略测试器
按下Ctrl+R或前往View > Strategy Tester。MT4 窗口底部会出现一个面板。所有的配置工作都在这里完成。
以下是各项设置的含义,详见 MetaQuotes 策略测试器文档:
| 设置 | 操作内容 | 重要性 |
| 智能交易系统 (Expert Advisor) | 从下拉菜单中选择 EA | 选择要测试的机器人 |
| 交易品种 | 选择货币对,例如 EUR/USD | 必须与 EA 设计时所针对的货币对一致 |
| 模拟模式 | 选择“每个分笔 (Every Tick)”、“控制点 (Control Points)”或“仅开盘价 (Open Prices Only)” | 控制价格波动模拟的精确度 |
| 使用日期 | 勾选复选框,设置“从”和“到”的日期 | 定义历史回测周期 |
| 时间周期 | 选择时间框架 (M1, M5, M15, H1 等) | 必须与策略目标的时间框架一致 |
| 点差 | 当前点差或固定的点数 | 影响每次模拟交易的成本 |
| 可视化模式 | 开启或关闭 | 在图表上显示交易;速度较慢,但有助于理解行为 |
在点击“开始”之前,请点击EA 属性以调整 EA 的输入参数:手数大小、止损、止盈以及开发者包含的任何自定义设置。输入参数因 EA 而异。在EA Studio 中构建的策略通常根据 EA Studio 文档使用开盘价逻辑,这意味着它们是为“仅限开盘价”模型而设计的。

选择正确的 Tick 模型
这是回测过程中最重要的决策之一。MT4 提供三个选项,正如 MetaQuotes 的策略测试器文档中所述:
| 模型 | 速度 | 准确度 | 最适用 |
| 每一个 Tick (Every Tick) | 慢 | 最高原生精度 | 最终决策级测试 |
| 控制点 | 中等 | 中度 | 快速筛选多个 EA |
| 仅开盘价 | 快 | 对于 K 线开盘策略而言较高 | 专为基于 K 线开盘信号进行交易而构建的 EA |
- 每跳 (Every Tick)通过从更小的时间框架重构 Tick 数据,模拟每个 K 线内的每一次价格变化。速度较慢,但是最真实的原文原生选项。
- 控制点使用最近的较小时间框架来生成价格点。适用于快速筛选,但不适用于最终决策。
- 仅开盘价仅在每根 K 线开盘时对 EA 进行测试。这是最快的模型,适用于编写为基于开盘信号进行交易的策略。
配置完成后,点击开始。绿色进度条会填充两次:第一次运行加载数据,第二次运行实际测试。
运行测试与读取结果
策略测试器运行完成后,会出现四个选项卡。
结果选项卡:原始交易日志:测试期间每笔开仓和平仓的记录。包括订单号、类型(买入或卖出)、手数、开仓价和平仓价、止损、止盈、盈亏以及当前余额。滚动到底部查看最终余额。
图表选项卡:净值曲线。平滑且上升的曲线表示稳定性。剧烈的下跌表示出现了严重的净值回撤。大多数经验丰富的交易者会首先查看图表,以便进行直观的视觉判断。



报告选项卡:关键统计数据:
| 指标 | 它告诉您的信息 |
| 总净利润 | 所有交易的总盈亏 |
| 毛利润 / 毛损失 | 盈利交易之和与亏损交易之和 |
| 利润因子 | 毛利润除以毛损失;许多交易者将 1.3-2.0 视为一个有用的起始范围,并结合回撤和交易次数进行评估 |
| 最大回撤 | 最大净值从峰值到谷值的下降幅度;即您的历史最大亏损 |
| 总交易次数 | 已执行的交易数量;交易次数越多,通常意味着统计置信度越高 |
| 预期收益 | 平均每笔交易利润 |
| 模型质量 | 测试数据对真实价格走势的还原准确度;根据 MetaQuotes 文档,许多 MT4 用户将 90% 视为最低标准 |
日志选项卡:技术执行日志。如果 EA 在测试期间产生错误,会在此处显示。
如果一个策略具有平滑的权益曲线、合理的获利因子、可控的回撤,并且在不同市场条件下进行了数百次交易,那么它就可以作为在模拟账户上进行实盘测试(Forward Testing)的候选对象。请记住:良好的回测是必要的初步筛选,但并不代表实盘表现的保证。

大多数 EA 最佳 MT4 回测设置
| 设置 | 推荐选择 |
| 模型 | 用于最终测试的“每个分笔(Every Tick)”;对于基于 K 线开盘价的 EA,使用“仅开盘价(Open Prices Only)” |
| 点差 | 基于经纪商条件的固定现实点差(例如:在 5 位数报价的经纪商中,主流货币对为 10-20 点) |
| 日期范围 | 尽可能至少 2-3 年 |
| 时间周期 | 该 EA 所设计的对应时间周期 |
| 可视化模式 | 仅用于理解行为,而非进行大规模测试 |
| 建模质量目标 | 对任何低于 90% 的数值保持谨慎 |
| 数据源 | 使用经纪商数据进行筛选;使用分笔数据(Tick Data)进行最终验证 |
如何获取更优质的市场数据以实现更准确的回测
MT4 中回测结果具有误导性的最常见原因是数据不完整或质量低下。如果经纪商的数据存在缺口,策略测试器会通过插值法填充缺失的 K 线,这可能会产生不切实际的成交价格。
以下是检查并优化数据的方法:
- 每次测试后,检查“报告”选项卡中的建模质量百分比在 MT4 中,任何低于 90% 的数值都应谨慎对待。
- 按 F2打开“历史中心”并检查您交易对的数据范围。如果仅覆盖一两年,可能不足以进行有意义的分析。
- 下载分笔数据(Tick Data)以获得更高的准确度。历史数据应用程序提供涵盖主要货币对和时间周期的纯净外汇数据。第三方工具如 Tick Data Suite(详见 tickdatasuite.com)可以将真实的实时历史分笔数据(Tick Data)和可变点差注入策略测试器(Strategy Tester),将建模质量提升至 99%。
一个实用的两步走方法:先利用经纪商内置的“仅开盘价(Open Prices Only)”或“控制点(Control Points)”数据快速筛选大量 EA。然后,在做出任何实盘部署决策之前,使用分笔数据对你的候选名单进行重新测试。这可以在不牺牲关键准确性的情况下节省时间。
同时,也值得使用不止一家经纪商的数据进行测试。不同的经纪商提供的买入/卖出价(Bid/Ask)、点差和蜡烛图形态略有不同。如果一个策略在一家经纪商的回测表现良好,但在另一家表现很差,则说明该策略对数据质量过于敏感,可能无法信任。更广泛的专家顾问(Expert Advisor)回测指南Algo Trading Space 上的内容涵盖了多经纪商验证以及样本外测试(Out-of-sample testing)的详细说明。
使用可视化模式观察策略运行
可视化模式是 MT4 最被低估的功能之一。当你勾选“可视化模式(Visual Mode)”复选框(在某些平台版本中标记为“tester visual”)并点击“开始”时,策略测试器会打开一个独立的图表窗口,并实时重放价格行为,准确显示交易是在哪里开仓和平仓的。
这在以下几个方面非常有用:
- 你可以观察 EA 如何应对不同的市场状况。
- 绿色箭头标记多单入场;红色箭头标记空单入场。蓝色线条显示盈利平仓;红色线条显示亏损平仓。
- 速度滑块允许你控制模拟速度:减慢速度以研究单笔交易,或将其推至最大以快速完成。
- 最后,图表会显示 EA 使用的指标,这有助于你理解策略的逻辑。
可视化模式并不是测试速度最快的方式。但它是理解从未见过的 EA 的最佳方式。先在可视化模式下运行第一次回测,观察机器人的交易方式,然后再切换到非可视化模式以获取实际数值。
本页原文中有一点值得重复强调:不要试图通过观察历史图表上的指标来推导交易策略。许多指标会发生重绘(repaint),这意味着你现在看到的并不一定是该K线形成时的实际显示情况。回测交易日志才是准确的记录,而图表仅是近似值。
常见的 MT4 回测错误及其解决方法
| 问题 | 可能的原因 | 解决方法 |
| EA 未出现在下拉菜单中 | 文件不在 MQL4/Experts 文件夹中,或未重启 MT4 | 将 .ex4 或 .mq4 文件放入正确的文件夹并重启 MT4 |
| 测试后没有出现任何交易 | 交易品种、时间周期、日期范围或 EA 参数设置错误 | 核实交易对、周期和日期范围是否符合 EA 的设计;检查 EA 属性中的输入设置 |
| 建模质量非常低 | 历史数据不完整或存在数据缺口 | 通过 F2 加载更多数据,或从以下工具导入分笔数据(Tick Data):Historical Data App |
| 结果看起来好得不切实际 | 过度优化或点差/滑点不切实际 | 使用真实的固定点差和分笔数据(Tick Data)进行重新测试 |
| 回测结果与模拟盘表现不符 | 点差、滑点或不同的经纪商数据 | 在模拟盘进行实盘测试(Forward-test),并跨多个经纪商进行对比 |
| 测试运行极其缓慢 | 在大日期范围内开启可视化模式的“每笔分笔”(Every Tick)模型 | 在进行初步筛选时禁用可视化模式;首轮测试建议使用“仅开盘价”(Open Prices Only) |
最大的概念性错误是仅凭单一参数集在单一经纪商的数据上进行一次回测就深信不疑。稳健的 EA 应该在不同的数据源和配置下都能产生合理(而非完美)的结果。如果该策略仅在一种特定的设置下有效,那么它几乎可以肯定存在过拟合问题。
常见问题解答
为什么我的 EA 没有出现在 MT4 策略测试器的下拉列表中?
最常见的原因是文件存放路径错误。根据 MetaQuotes 的 MQL4 文件结构文档规定,EA 文件(.ex4 或 .mq4)必须放置在 MT4 数据文件夹内的 MQL4 > Experts 目录中。放置文件后,请完全重启 MetaTrader 4,或者在导航器(Navigator)窗口中右键点击“专家顾问”(Expert Advisors)部分并选择“刷新”。如果 EA 仍未显示,请确认文件未损坏,且该文件是为 MT4 编译而非 MT5。
在 MT4 中进行回测时,哪种分笔模型(Tick Model)效果最好?
对于最终的决策级测试,请使用“每笔分笔”(Every Tick)。它能模拟 MT4 所能重建的最细微的价格波动,并能原生产生最高质量的模型。对于大量专家顾问(EA)的快速筛选,使用“仅开盘价”(Open Prices Only)速度更快,且对于基于开盘信号构建的策略(例如在…中创建的策略)而言依然准确。EA Studio. “控制点”位于两者之间,但通常用处较小;大多数交易者会选择其中一个极端,而忽略它。
回测时我应该使用固定点差还是当前点差?
请根据您交易的货币对和交易时段,使用基于经纪商历史状况的固定且现实的点差。对于像 EUR/USD 这样在伦敦或纽约活跃时段的主要外汇货币对,10-20 点(在 5 位小数经纪商上,相当于 1-2 点/pips)是一个合理的起点。“当前”点差使用的是测试运行时时的实时点差,如果您在交易清淡的周末或非交易时段运行测试,这可能会产生误导。固定点差可以在多次运行中提供一致且可重复的结果。
MT4 中的 90% 回测质量(modeling quality)意味着什么?
回测质量是 MT4 对测试中所用历史数据在多大程度上准确代表真实价格波动的估算。根据 MetaQuotes 的文档,使用其内置的“每个分笔(Every Tick)”模型配合完整的经纪商数据,90% 大约是 MT4 原生能达到的最高水平。更高的准确度(高达 99%)需要使用像 Tick Data Suite 这样的第三方工具,该工具可以注入真实的实时历史分笔数据和可变点差。许多交易者将 90% 视为值得采取行动的结果的最低标准。
为什么我的 MT4 回测结果与模拟交易结果不同?
几个因素导致了这种差距。实盘模拟账户面临真实的滑点、可变点差以及策略测试器无法完全模拟的经纪商执行条件。经纪商的历史数据也可能与实时数据流略有不同。此外,正如经纪商执行披露中所述,模拟账户有时使用的流动性模型与实盘账户不同。为了弥补这一差距,请务必在强大的回测之后进行数周的模拟前测(forward testing),并比较至少两家经纪商的表现。
我可以在不下载分笔数据(tick data)的情况下在 MT4 中回测 EA 吗?
可以。MT4 策略测试器使用其内置的历史数据即可工作,进行基础测试时不需要外部分笔数据。结果会不够精确,特别是对于对柱内价格波动和点差波动敏感的策略,但内置模型足以进行初步筛选。在投入资金进行最终验证之前,通过历史数据 App(Historical Data App)或 Tick Data Suite 导入分笔数据可以产生更真实的数值,并将回测质量提升至 99%。
信任专家顾问(EA)最安全的方法是在其接触实盘资金之前进行彻底测试。Algo Trading Space 提供了一个免费初学者课程逐步涵盖 MT4 设置、回测以及实盘 EA 部署。如果您想要现成的可测试机器人,则免费 EA 图书馆为你提供了一个实用的起点。若想获取每月更新的策略、实时业绩追踪以及直接支持,VIP 俱乐部是严肃交易者进阶之选。当您在解读回测结果时需要任何帮助,请随时联系团队;这正是他们的职责所在。

Unknown Author


