Summary: 解决MT4/MT5回测时的历史数据错误。本文提供完整步骤:下载完整数据、从经纪商导出、设置正确建模模式,让EA回测准确运行。




步骤1:识别历史数据错误类型
运行EA回测。如果看到警告如“没有足够的历史数据”或“检测到图表缺口”,或者回测只运行了很短一段时间,说明遇到了历史数据错误。截图位置:回测报告显示数据不足的提示界面。

步骤2:打开品种管理
在MT4/MT5中,点击“查看” > “品种”(或按快捷键Ctrl+U)。找到你正在测试的货币对或交易品种。截图位置:品种窗口显示所有交易品种列表。

步骤3:启用该品种的所有时间周期
选中你的品种,点击“属性”。检查所有时间周期(M1到MN1)是否可见。如果有任何被禁用的时间周期,请启用它们。截图位置:品种属性界面中所有时间周期均已勾选。

步骤4:下载最新的历史数据
点击“工具” > “选项”(MT4)或“设置”(MT5)。进入“图表”选项卡。将“图表中的最大柱数”增加到2000000或更高。然后返回主窗口。按F2键打开历史数据中心。截图位置:历史数据中心主窗口。

步骤5:在历史中心选择品种和时间周期
在历史中心,展开你的品种文件夹。选中“1分钟”数据。点击“下载”。等待进度条完成。对其他时间周期(5分钟、15分钟、1小时、4小时、1天)重复上述下载操作。截图位置:下载按钮及进度条。

步骤6:从经纪商导出数据(替代方法)
如果内置下载失败,进入“工具” > “历史中心”。选择你的品种,然后点击“导出”。保存为CSV文件。然后联系你的经纪商客服,请求获取完整的历史CSV数据。在同一个历史中心窗口中使用“导入”按钮进行导入。截图位置:导出和导入按钮。

步骤7:设置正确的建模模式
打开策略测试器(Ctrl+R)。点击建模模式下拉菜单。选择“每个即时价位”(最精确),而不是“控制点”或“仅用开盘价”。截图位置:建模模式下拉菜单已选中“每个即时价位”。

步骤8:延长回测周期长度
在策略测试器中,将“起始日期”设置为当前日期之前至少2年(例如起始日期:2024-01-01,结束日期:2026-06-07)。避免起始日期过于靠近当前时间。截图位置:正确填写的日期范围字段。

步骤9:清除缓存并重启MT4/MT5
关闭MT4/MT5。进入数据文件夹:“文件” > “打开数据文件夹”。删除“bases”文件夹(缓存)。然后重新启动MT4/MT5。截图位置:数据文件夹中bases文件夹被高亮显示。

步骤10:重新运行回测
再次运行相同的回测。“历史数据不足”的错误应该消失。回测进度条应覆盖整个选定的日期范围。检查“日志”选项卡中是否有任何残留的警告信息。截图位置:成功运行且无错误的回测界面。

参考来源: MetaQuotes官方帮助文档 - 历史中心与回测 / MQL5文档 - 历史数据测试