19
今天排查一套黄金EA时,表面上没有报错,日志也显示规则通过,但成交位置总比原计划慢半拍。
最后发现,问题不在指标,而在“比较基准”用错了。
旧逻辑判断是否追价时,拿当前报价去比较上一根K线的收盘价(reference_close);真正应该比较的,是信号生成时被冻结的原始触发位(trigger_level)。
这两个价格看起来可能很接近,工程含义却完全不同:
所以我给执行层重新加了4道门:
信号生成后,trigger_level不能随着新K线或新报价漂移。否则系统会不断把“已经错过”改写成“仍可入场”。
做多和做空的突破关系必须分别判断,不能只用绝对距离。方向关系错了,距离再近也不是有效触发。
当前报价相对trigger_level的偏离超过上限,直接放弃,不因为“模型仍然看多或看空”就追进去。
信号生成时间、触发时间、当前报价时间必须分别检查。超过TTL后重新评估,不能拿旧判断执行新行情。
这次修复也让我重新确认一件事:AI负责方向判断,不等于EA可以忽略执行价格。方向、触发、报价、成交是四本账,任何一层混在一起,最后都可能变成看对方向却做错位置。
目前这只是一次工程缺陷修复,不代表策略已经盈利,也不代表实盘验证完成。后面还要继续看滑点、点差、成交回执和样本外表现。
你排查EA追价时,最先检查的是触发位、报价时效,还是滑点点差?欢迎在评论区说说你的处理方式。
仅作系统研发与验证记录,不构成交易建议,也不代表未来表现。
关于新站启用的通知