首页 / 交易学院 / 小布知识库 / 手动复盘与可视测试:上线前先用历史数据验证
手动复盘与可视测试:上线前先用历史数据验证
🔍

手动复盘与可视测试:上线前先用历史数据验证

不凭感觉上实盘——用一年以上历史、可视测试与渐进式验证筛掉失灵系统

技术分析基础 难度 · 入门 2026-03-06 13 分钟阅读
#复盘#可视测试#回测#过拟合#验证

一、可视化测试是什么

MT5 策略测试器提供「可视化」模式:在回放历史 tick 的同时,实时绘制价格、指标与 EA 动作。它还支持「手动模式」——你可以暂停回放,亲自在图上点鼠标下单,模拟自己在真实行情里的决策。这是连接机械回测与实盘手感的桥梁,也是排查 EA 行为最直观的手段,能把抽象的数字还原成你能「看见」的过程。

很多在日志里看不懂的异常,在图上往往一眼就明白:为什么这单开在奇怪的位置、为什么止损被扫得那么冤、为什么信号明明该触发却没动。可视化不是炫技,而是调试与训练的刚需。

二、OnTester 与回测生命周期

EA 在测试器中同样运行 OnInit / OnTick / OnTrade,外加 OnTester——在回测结束时调用,返回一个 double 作为优化评分。你可以用它输出自定义绩效指标(如盈利因子、回撤比、自定义风险调整收益),供遗传优化在参数空间里筛选。合理地设计这个评分,比盯着总盈利更能找到稳健参数。

double OnTester()
{
   double pf = TesterStatistics(STAT_PROFIT_FACTOR);   // 盈利因子
   double dd = TesterStatistics(STAT_EQUITY_DDREL_PERCENT); // 最大回撤%
   // 偏向高盈利因子且低回撤的评分
   return (pf > 0) ? pf * (100.0 / (100.0 + dd)) : -1;
}

三、在回测中手动下单

开启「手动」可视化模式后,测试器会在每个 tick 暂停等待你的操作(或按速度倍率自动推进)。你可以像实盘一样拖止损、平仓、加仓,用来训练执行力与纪律,验证「计划内该怎么做」。这种「飞行模拟器」让你在安全环境里重复练最坏情景的应对,而不是拿真金白银去交学费。

手动模式特别适合复盘自己亏损最大的那段行情:你会发现自己当时如果「按规则」会怎么做,以及实际手痒时会怎么做——这两者的差距,就是你要修的地方。看清差距,比任何指标都有用。

四、用 ChartXXXX 在回测里画图

回测中也能调用 ChartOpen / ChartIndicatorAdd / ObjectCreate 等函数,把中间变量(如信号强度、Filter 值、当前 ATR)画成对象,帮助你理解 EA 当时「看到了什么」。这对排查「为什么这单没开」极有用——你不必猜,直接看图上当时各条件的值。

✦ 回测里画图找 bug
若某笔该开的单没开,用 Comment 或 ObjectCreate 把入场条件各分量打印到图上,逐根 K 线核对,比读日志快得多。把「黑盒 EA」变成「透明 EA」,调试效率翻倍。

五、可视化测试的局限

手动模式测的是「你的执行」,不是「策略本身」,结论不能外推到自动 EA;可视化用压缩 tick 时,成交价与真实逐笔有偏差;更关键的是你「知道这是历史」,会不自觉用后见之明决策,实盘未必做得出同样决定。这些局限决定了它只是辅助,不是验证主力。

六、正确用法:先看自动,再手动验证

先用自动「每 tick」回测拿到基线绩效,再切手动可视化模式抽查关键时段(如你亏损最大的那周),观察 EA 在那个行情里的决策是否合理、你自己的应对是否守纪。两者结合,才能既验证策略又磨练自己,缺任一层都只懂一半。

建议把可视化测试写进每周复盘流程:每周挑一段实盘或回测里的失败交易,手动回放一遍,问自己「当时若严格按规则,结果会怎样」。这个习惯比多跑十次优化更能提升稳定性。

七、用 Comment / ObjectCreate 排查信号

在 OnTick 里用 Comment() 打印各条件分量(如 ma_diff、atr、filter 放行与否),或在图上用 ObjectCreate 画箭头标记每次信号评估。回放时你就能逐 tick 看到 EA 的「思考过程」,快速定位是条件写错、数据错位,还是滑点假设不当。

void OnTick()
{
   double ma  = iMA(_Symbol,0,20,0,MODE_SMA,0);
   double fil = iRSI(_Symbol,0,14,0,PRICE_CLOSE);
   Comment("ma=", ma, " rsi=", fil, " allowed=", (fil>50));
}

八、常见误用

⚠ 别把手动盈利当策略盈利
你在可视化里手动做对了,不代表自动 EA 也能做对。手动模式的价值是训练与排查,不是证明策略有效;用它校准的是你,不是参数。把手动胜率当成策略胜率,是新手最常见的自我欺骗。

九、小结

✦ 自动验证逻辑,手动训练自己
回测的两层价值:自动跑出策略基线,手动磨练执行纪律。前者回答「规则行不行」,后者回答「我能不能执行」。两件事都真做了,系统才算完整。

常见问题

自动回测验证策略规则在历史的表现;手动可视化测试验证「你」在回放行情里的执行,两者测的对象不同,结论不能互替。
它在回测结束时调用,返回一个 double 作为优化评分。常用 TesterStatistics 取总盈利、盈利因子、回撤等,设计成风险调整指标更能筛出稳健参数。
不能。你清楚这是历史回放,会不自觉地用后见之明决策,且 tick 是压缩的。它适合训练与排查,不是实盘验证。