Summary: 发现一个几乎没人提过的MT4回测提速冷门技巧:回测过程中删掉图表上自动生成的交易箭头和连线,速度能提升近3倍。外加另一个隐藏性能优化设置。




去年大半年我都在跑一个复杂EA的回测,上万笔交易跨多个周期。最让人崩溃的不是策略本身,而是回测越跑越慢。前三个月的数据几分钟就跑完了,跑到半年附近的时候直接变成蜗牛爬。

一开始我以为是VPS性能不够,升级了套餐,没好多少。然后又怀疑是MT4本身的问题,把网上所有能找到的"优化指南"试了个遍——减少最大柱数、关新闻、隐藏不用的品种——效果都微乎其微。

后来纯粹是瞎捣鼓的时候发现了一个东西,真的是意外收获。

那个没人提过的3倍提速技巧



事情是这样的:MT4在回测过程中,每笔交易都会在图表上自动画个箭头和连线——入场一个箭头、出场一个箭头、中间还有条线连着。这玩意儿在可视化模式下确实有用,能直观看到每笔交易怎么走的。但问题是,跑了几千笔交易之后,图表上密密麻麻全是这些对象,CPU全耗在渲染这些东西上了。

MQL4文档里其实提过一句,任何图表对象都会消耗资源用于显示和重绘。回测的时候图表每个tick都在刷新,对象越多重绘就越慢,这个逻辑不难理解。

论坛上有人也发现了这个事:「随着回测开平仓的增加,图表上的箭头和交易线不断增多……把线和箭头删掉,速度立即肉眼可见提高了」。我自己实测下来,长周期回测速度提升接近3倍

怎么操作(完全不影响回测数据)



不需要改任何代码,回测过程中:

  • 打开正在跑回测的图表

  • 工具栏上有<strong>删除线段</strong>和<strong>删除箭头</strong>两个按钮

  • 跑一段时间(比如模拟数据每过2-3个月)就点一下

  • 历史回测数据本身不受影响,删掉的只是视觉标记


  • 个人经验:如果挂机跑过夜回测,可以用AutoHotkey之类的工具写个脚本自动点这两个按钮。不过说实话,手工每隔几小时点一下,效果已经非常明显了。

    另一个很少人注意到的隐藏减速项



    这个来自Exness官方帮助中心,写得挺清楚:「在市场报价窗口隐藏所有未使用的交易品种……点击图形窗口上的X图标关闭所有未使用的图表」。跑回测之前,把其他图表全关掉,只留正在测试的那一个。我试过,能快个15-20%左右。

    ---

    参考来源:
  • MetaTrader 4帮助中心 – 图表设置与对象说明

  • Exness帮助中心 – MetaTrader性能优化指南

  • Eabang论坛讨论 – 回测提速发现


  • 本文首发于FXEAR.com,原创内容,未经授权禁止转载