导入价格历史
回测使用你自己提供的历史数据,通常从你经纪商的 MetaTrader 导出。这样结果与同一账户在 MetaTrader 测试器中的表现接近,而且数据保持私密:只为你的账户存储,只用于你的回测。
M1(一分钟)K 线最好。测试器用它构建所有更大的周期,并用它模拟每根 K 线内部的价格。
MetaTrader 5(推荐)
- 在市场数据页面下载导出脚本
QuantForge_HistoryExport.mq5。 - 在 MetaTrader 5 中打开 File → Open Data Folder → MQL5 → Scripts,把脚本复制进去。
- 按 F4 打开 MetaEditor,打开脚本并按 Compile (F7)。MetaTrader 只列出已编译的程序。
- 将 Tools → Options → Charts → Max bars in chart 设为 Unlimited 并重启 MetaTrader。否则导出会停在约三个月的 M1。
- 在导航器中,把 Scripts → QuantForge_HistoryExport 拖到任意图表上,输入品种(例如
EURUSD,XAUUSD)和年数,然后点 OK。 - 回到市场数据页面,导入 MQL5 → Files → QuantForge 中的文件。
脚本会在每个文件中写入品种的小数位、合约大小和经纪商,因此导入时无需额外信息。
不使用脚本
- MetaTrader 5: View → Symbols → Bars,选择 M1 和日期范围,点击 Request,再点击 Export Bars。
- MetaTrader 4: Tools → History Center,选择品种和 M1,然后 Export。
这些文件不包含合约信息,导入前请在核对步骤中检查小数位和合约大小。
导入时会检查什么
在存储任何数据之前,你会看到识别出的品种、周期、小数位和合约大小,并可以修改。重复的 K 线会被丢弃,无法读取的行会被报告,交易日内一小时或更长的缺口会被列出供你判断。历史按月存储;再次导入同一品种会合并新的月份。
点差
MetaTrader 导出的数据包含每根 K 线的点差,测试器默认使用它。没有点差列的历史使用测试器中设置的固定点差。