为什么同一个EA在真实报价和OHLC下会得出完全相反的结果
目录
为什么同一个EA在真实报价和OHLC下会得出完全相反的结果
MT5的策略测试器中,有一个选择回测「模型」的选项。「全部报价(基于真实报价)」和「1分钟OHLC」。很多人并不在意这一项,直接运行后就相信跑出来的数字。
然而,仅仅是这一个模型的选择,就可能让同一个EA、同一时间段、同一货币对的结果,不只是略有出入,而是符号完全反转。几乎没有人具体讲过「忽视模型会发生什么」,所以本文直接公开3个实测案例。同时告诉大家一个判断法则:哪些EA会受模型影响,哪些不会。
案例1:薄利网格剥头皮EA——OHLC会撒下「严重的谎言」
每笔仓位止盈约1.5美元的黄金网格剥头皮EA。
| 模型 | 盈利因子 | 结果 |
|---|---|---|
| 1分钟OHLC | 2.46 | 看起来很优秀 |
| 全部报价(真实报价) | 0.488 | 账户亏损约65% |
同样的代码,同样的时间段。之所以能确信这不是噪声,而是假象(artifact),是因为两种模型下的交易次数几乎完全一致。也就是说,模型并非发现了不同的交易机会,而是让同一笔交易,在实际上并不存在的价格上成交了。
当止盈幅度小于K线内部的波动幅度时,OHLC的插值会凭空制造出「实际上根本没有触及的价格成交」。对于薄利、网格、剥头皮类型的策略,真实报价是必需的,OHLC的结果毫无参考价值。
案例2:ATR止损的突破型EA——OHLC会朝相反方向撒谎
可能出乎意料,谎言的方向并不总是偏乐观的。这是一个容易被忽视的另一面。
采用ATR止损、ATR止盈的黄金突破型EA。
| 模型 | 结果 |
|---|---|
| 1分钟OHLC | 彻底崩溃 |
| 全部报价(真实报价,2家经纪商的历史数据) | 盈利因子约1.3,盈利 |
OHLC模型必须推测在这一分钟内,最高价和最低价哪个先被触及。当止损和止盈同时落在同一分钟的波动区间内时,这个推测就直接决定了交易的输赢。如果持续猜错,本来能盈利的系统看起来就像是失效的。
案例3:收盘价驱动的趋势跟随型——两种模型结果一致
入场仅基于已收盘(closed)K线的收盘价,硬止损设置在距离ATR数倍的位置,采用ATR追踪止损,不设固定止盈,同时只持有1个仓位——这类策略在两种模型下的结果几乎相同。
USDJPY H1、真实报价、2017年1月至2026年5月的实测数据:
- 盈利因子 1.50
- 最大有效回撤 10.3%
- 交易次数 631次
- 胜率 34.5%
这套逻辑完全不依赖K线内部的价格波动,因此模型不可能出错。这种一致性本身,就是稳健性的证明。
判断法则
止盈相对于K线内部波动幅度越薄,决定回测结果的就越不是「行情」,而是「模型」。
- 薄利、网格、剥头皮类(能在1分钟内开仓并平仓的策略):真实报价是必需的,OHLC的结果可以直接舍弃。
- 收盘价入场+较宽的ATR止损:模型几乎不产生影响。可以用OHLC快速完成大量优化,再用真实报价验证胜出的参数组合(可大幅节省时间)。
- 止损和止盈落在同一根1分钟K线内:两种模型都不可轻信,需要人工核实成交情况。
两个实务性结论
-
没有注明模型的回测,不是「结果」,而只是一张「图」。 而且,省略注明这件事本身,和选择了哪种模型是相关的。越是挑选了对自己有利模型的报告,越不会写明模型名称。
-
切换模型后结果就崩溃的系统,根本算不上是一个系统。 说明其优势并非来自行情本身,而是来自模型的一方。
自己动手复现
案例3中的EA(基于已收盘K线的唐奇安通道突破策略)以完全免费、源码公开的形式提供。请在MT5的策略测试器中,分别用「全部报价(基于真实报价)」和「1分钟OHLC」各跑一次,比较结果。收盘价驱动型策略应该会在两种模型下得出几乎一致的结果——这正是健康EA应有的表现。
如果希望将同样「收盘K线入场+硬止损+追踪止损」的纪律,用已经过真实报价验证的产品来使用,可以参考MEGAMAX DONCHIAN(USDJPY)、BITCOIN COMET(BTCUSD)、ATLAS(5市场分散)等产品。这些产品均采用硬止损、无网格、无马丁格尔的设计,全部产品的真实数据验证结果均已公开。
总结
- 仅仅是模型的选择,就可能让同一个EA的表现完全逆转
- 薄利、网格、剥头皮类策略必须使用真实报价(OHLC会制造出虚假成交)
- 收盘价驱动型趋势策略在两种模型下结果一致,这本身就是稳健性的证明
- 不要相信没有注明模型的回测
相关文章
📧 涨价预告 + 免费5天邮件课程
所有EA目前均为首发价,并将随销量阶梯式上调。在每次涨价前收到通知,另有每日一封邮件:自动交易本质、正确解读回测、券商选择技巧。
※ 严格保护隐私。可随时取消订阅。