把回测变成电影:策略测试器可视化
结果图表、可视化测试、2D/3D 优化图,以及用 OnTester 做可视化优化
俗话说百闻不如一见。回测结果若只看净值曲线,很多逻辑漏洞会被掩盖。MT5 策略测试器提供一套可视化工具,把“数字”变成“画面”,让你直观评估 EA 的行为。
一、Results 选项卡的多维图表
除结余/净值图外,还能看按月、按天、按小时的交易分布,判断 EA 在哪些时段最活跃。更有价值的是 MFE(最大有利变动幅度)与 MAE(最大不利变动幅度)分布图,以及持仓利润生命周期图——后者对 ATC 锦标赛“禁超短线”规则检查尤其有用。
二、可视化测试 = 历史电影
开启可视化测试模式后,回测像一段可播放的历史影片:可慢放、快进、暂停,实时看 K 线如何随模拟历史构建、EA 如何应价。完全支持多货币——画面里多个品种同时跳动。
三、2D 优化图
策略测试器里的二维优化图用矩形明暗表示两个参数组合下的优化目标(如最大结余):绿色越深越好。它能直观显示参数间的波状相互影响,帮你定位“甜区”。
四、3D 优化图
在 Optimization Graph 上下文菜单切到高级模式,得到完全交互的三维图(可缩放、旋转到任意角度)。任何测试/优化结果都能导出为图像或 XML/HTML 报告,方便分享归档。
五、可视化优化:用 OnTester 实时出帧
引入 FrameGenerator.mqh 后,在 EA 末尾挂上 OnTester / OnTesterInit / OnTesterPass / OnTesterDeinit 与 OnChartEvent。OnTester 里算自定义标准(如 |Sharpe×Profit|)并传入 fg.OnTester,即可在优化过程中“当场”生成可视化帧,而不必事后处理数据。
六、可视化模式下的手动交互
可视化测试把回测变成「历史电影」:你可以暂停、单步、加速,鼠标在图上移动时终端会跳到对应 K 线,并实时显示当时 EA 的决策与持仓。这是调试逻辑的神器——很多「为什么这单没开」的疑问,暂停一帧就看清了。
还可以临时改参数、手动下单,观察 EA 如何反应,等于在历史事件里做沙盘推演。对验证「信号触发条件」「平仓逻辑」「异常处理」尤其有用,比纯看打印日志直观十倍。
七、从可视化画面发现逻辑 bug
常见 bug 在画面上一眼可见:订单全堆在某一根 K 线(说明信号每 tick 都触发、没去重)、止损线画在离谱位置(说明手数或点数算错)、长时间无任何交易(说明信号条件永远不满足)、盈利单被过早平掉(说明止盈或跟踪逻辑过激)。
八、2D 与 3D 优化图怎么读
优化结果可画成 2D(两个参数作轴、颜色表示评分)或 3D(三参数)。读图重点不是找最亮点,而是看「高原」——一片都高说明参数鲁棒、小扰动不影响;若只有一个尖峰四周骤降,说明该参数极度敏感、实盘稍偏就崩,是过拟合信号。
优先选「高原中央」而非「孤峰之巅」的参数,实盘稳定性高得多。这也是为什么优化不能只看排名第一,要看参数邻域的整体表现。把图存下来,和样本外结果对照,能少踩很多坑。 把优化图导出存档,每次重优化都和上周的图叠在一起看,参数是否「漂走」一目了然,这也是监控策略衰变的最低成本手段。
九、小结
- Results 多维图:按月/小时、MFE/MAE 分布
- 可视化测试:回放历史像看电影
- 2D 优化图:参数甜区一目了然
- 3D 优化图:可旋转交互,可导出
- OnTester 系列:优化中实时出帧
- 结果可导出图像/XML/HTML 报告