回测与评估
MT5 EA 回测为什么慢:源码性能检查清单
非可视化回测没有动态图表,但仍可能花时间在重复计算、日志和定时事件上。提速应先找到真正耗时的工作。
区分启动等待与持续计算
分别记录历史下载、初始化和固定短区间的运行时间。首次运行可能在等数据,后续才体现模拟速度。比较时应使用相同编译文件、输入、模型和日期,避免把环境变化误判为代码提速。
检查反复执行的操作
重点寻找每个 Tick 重建指标句柄、复制过多历史数据、扫描全部历史成交,以及循环内大量 Print 输出。稳定信息可以考虑缓存,只请求真正需要的数据;但底层环境可能变化时,也要及时刷新缓存。
把显示工作与交易逻辑分开
状态面板可以按适当的定时频率或内容变化刷新,不必每次决策都重绘图表。但不能为了提速,把移动止损、持仓保护或逐 Tick 入场条件一概挪到新 K 线时执行,否则会改变策略。
验证预期行为仍然一致
- 保留固定区间的基线结果。
- 每次只改一个已确认的性能瓶颈。
- 比较开平仓、手数和汇总指标。
- 解释差异后再接受改动。
- 最后用有代表性的较长区间复核。
用 MQLume 开启你的定制
源码的价值之一,就是能看清 EA 内部到底在做什么。MQLume 提供可编辑项目,方便有针对性地改进;可以从 The Gold Reaper MT5 开始研究。