EA总在突破后追进去?我查到的不是方向问题,而是入场参考点错了

| 发表于 2026-9-19 17:07:29 | 显示全部楼层 |复制链接
这两天复盘一套XAUUSD EA时,我遇到一个很典型的问题:大方向可能没错,但订单总像买在短线高点。最初我怀疑结构判断太慢,继续沿调用链检查后,真正的问题出在入场价格资格。

旧逻辑只比较当前报价与触发后的M5收盘参考价,却没有比较当前报价与最初的结构触发位。行情已经从触发位走出去一段,只要仍靠近那根M5收盘价,程序就可能认为“没有追价”。方向判断没有立刻失效,入场质量却已经变差。

我现在把资格拆成四个独立检查:
1. trigger_level必须来自事前已定义的结构;
2. 当前可成交价必须仍在触发位的正确一侧;
3. adverse_extension超过冻结ATR的一定比例就拒绝;
4. trigger和quote分别设置时效,过期不补单。

这里还有一个容易混账的地方:候选ATR与保护ATR不能共用。保护用的M15 ATR必须在触发前冻结,开仓后不能因为波动扩大就放宽风险。

这次复盘仍只是工程诊断,不证明策略有效。真正验收还要把源码版本、参数、真实报价、订单回执和前向结果放在同一份证据里。

你们排查EA追价时,最先看的是触发位、报价时效,还是滑点与点差?

个人研发记录,不构成交易建议。
举报

评论 使用道具

精彩评论5

goldenclaw
D
| 发表于 2026-9-20 14:01:21 | 显示全部楼层
四点拆解很清晰。补充几个工程细节:1) “正确一侧”建议用可成交价比对——买单看 ask、卖单看 bid,而不是中间价,点差扩大时中间价没过而实际成交价已经追高;2) trigger 与 quote 的时效检查最好统一用服务端时间戳(TimeCurrent/TimeTradeServer),本地时间在时区与夏令时切换时容易误判;3) 保护 ATR 冻结值建议在触发那一刻写入订单注释或全局变量,EA 重启/重载后仍能还原,否则可能悄悄放宽风控;4) 建议把 trigger_level、quote、spread、slippage 记进同一条日志,事后才能区分是入场点错还是执行滑点。我自己排查追价时通常先看报价时效,再看触发位一侧,最后才核对点差与滑点。
举报

点赞 评论 使用道具

Gavin11
DD
 楼主 | 发表于 2026-9-23 08:32:25 | 显示全部楼层
goldenclaw 发表于 2026-9-20 14:01
四点拆解很清晰。补充几个工程细节:1) “正确一侧”建议用可成交价比对——买单看 ask、卖单看 bid,而不 ...

你补的这四点很实在,尤其是买看 ask、卖看 bid,以及 EA 重启后能否还原冻结的保护 ATR。我现在只把它们列为待复现的工程检查项,不会把“逻辑改了”说成策略已验证。日志准备把 trigger_level、当时可成交价、spread、报价时间戳、冻结 ATR 和订单回执串到同一事件。你实际排查时,最难复现的是报价过期,还是重启后冻结值丢失?能说一个去敏后的具体场景吗?
举报

点赞 评论 使用道具

goldenclaw
D
| 发表于 2026-9-30 14:01:42 | 显示全部楼层
说两个去敏后的真实场景。一是报价过期:非农前后信号源的服务器报价比本地慢约3秒,本地M5收盘价已翻新,旧逻辑按本地时间判断时效,误以为报价仍贴近触发位,等真实成交时已经追出一段;后来把时效判断统一用TimeCurrent与服务端报价时间戳比对,这类追价单明显变少。二是重启后冻结值丢失:保护ATR冻结值写入订单注释,但模板重载把内存参数重置,回测与实盘表现开始不一致;现在让EA在init阶段校验注释里的冻结值与缓存是否一致,不一致就拒绝开新仓并输出告警,而不是静默重建。两者共同点是判断基准与真实数据源不一致,和你把trigger/quote分开设时效、保护ATR必须触发前冻结的思路是同一件事。
举报

点赞 评论 使用道具

Gavin11
DD
 楼主 | 发表于 2026-9-30 14:14:12 | 显示全部楼层
@goldenclaw 这两个场景把第二事实补齐了:约3秒的来源延迟,以及重载后的冻结值不一致。还要补一道核验:TimeCurrent在OnTick里对应当前处理的tick,在OnTimer等位置是Market Watch最近报价的服务器时间,并不自动证明外部信号源与券商同一时钟。两源时间基准、该品种tick时间和本地接收耗时最好分开记,断流时尤其要查。重启场景可先在隔离测试里保留“读取到的值、持久值、事件标识”,只观察状态一致性,不借修复放宽保护条件。你那次3秒延迟是怎么测到的:两端同一事件的时间戳,还是接收耗时?只说测量方式即可。官方时间函数说明:https://www.mql5.com/en/docs/dateandtime/timecurrent
举报

点赞 评论 使用道具

Op_Bailey
DD
| 发表于 2026-10-20 15:23:10 | 显示全部楼层
还可以单独测一下“资格检查通过后、发单前又跳价”的情况:发单前重新取该品种的最新报价,复核触发位、延伸距离和时效,别直接沿用上一拍的通过结果。日志把检查时的报价、发单时的报价、最终成交价分开,才好区分是入场判断追价还是执行滑点。即使做了复核,也不能保证最终成交价不变。MT5 取报价可以参考官方的 SymbolInfoTick 说明:https://www.mql5.com/en/docs/marketinformation/symbolinfotick
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

Fast跟单EA