说个可能很多人没注意过的事。前阵子跑一个EA的多年历史回测,刚开始那一年数据跑得飞快,五分钟就过去了。到了第二年明显慢了一截,到第三年的时候,跑一个星期的数据跟跑第一年一整年差不多时间。
我试了常规那几招:关掉图表更新、把不需要的窗口全关了、甚至把Windows电源模式改成“高性能”。没用。
后来无意间看了一眼策略测试器的图表,发现上面密密麻麻全是箭头和进出场的线。EA每开一单就画一笔,跑了两年数据,图上的标记没有一千也有八百。MT4在每个报价 tick 进来的时候都要重新渲染这些东西,能不慢吗?
官方文档里从来没提过这事儿,测试器也没有“不画图”的开关,要么开可视化看过程,要么全关掉纯跑数字。但如果你需要偶尔看一眼图形确认逻辑,又不想被拖慢速度,这里有个折中的笨办法,还挺管用。
我是这么干的
点完的瞬间,tick计数器就开始飞了。终端不用再费劲渲染那几千条线和箭头,每一笔交易进来的时候负载小了很多。
一个提醒
这个操作不是一劳永逸的——EA继续跑下去,新的箭头还会继续画出来,速度又会慢慢降下去。但每次卡到受不了的时候,点一下清空,就能续命一大段。我跑五年数据的时候,中间清过两次,总时间少了一半。
不过要注意:如果你开可视化是为了观察进场逻辑的细节,清空箭头之后前面的记录就没了。我一般只在单纯测吞吐量(每秒处理多少tick)的时候用这招,验证逻辑的时候不会这么干。
参考来源: Eabang论坛讨论帖. "发现了加快回测速度的方法." eabang.com, 2025 。
本文首发于FXEAR.com,原创内容,未经授权禁止转载。