XAUXX研究手记
← 返回研究手记

两个黄金EA为何会管到同一笔单?检查MT4魔术号

用模拟账户案例说明EA如何按品种和魔术号筛选订单,以及换号后如何避免遗留持仓失去管理。

托马斯 · 更新于 2026-11-10

作者:托马斯|MT4实务|2026年11月10日

摘要:在同一个MT4账户挂两套黄金EA时,如果它们使用相同的订单识别条件,就可能同时修改一笔订单的止损。排查时先看订单上的品种和魔术号,再看代码实际按哪些条件筛选。下面的编号和订单均为教学假设。

魔术号记录在哪里

MQL4 的 OrderSend 支持传入 magic 参数。订单被成功选中后,OrderMagicNumber 可以读出该订单的识别号。它能给程序提供分类依据。具体哪些订单会被修改或关闭,仍由EA自身的筛选和执行逻辑决定。如果程序遍历账户订单时只检查品种,两套黄金EA即使填了不同的魔术号,也可能处理同一批单。

![EA选中订单后核对品种与魔术号的原创流程图,非实盘](/media/101800ab-1111-4444-8888-123456789abc.png)

图中假设策略A、B分别使用101和202。A逐笔选中交易池的订单,先核对实际品种,再核对识别号。两项都符合时,才交给后续逻辑检查订单类型及允许的动作。选单失败应跳过并记录错误。涉及修改前,宜再次选中目标订单,避免使用此前复制进程序的旧数据。

用模拟账户分三步验证

第一步,记录两套EA的版本、输入参数、图表周期和券商品种全名。不同账户上的黄金名称可能带后缀。对同一品种部署多个实例时,也要明确它们究竟独立管理,还是设计上共享订单。

第二步,在模拟账户中让每套EA分别生成一笔可识别的测试单,同时准备一笔应被排除的测试单。日志至少记下订单号、品种、魔术号和程序准备执行的动作。然后触发一次可控的管理动作,例如尝试修改策略A自己的测试单,查看策略B的订单是否保持原值。挂单和已成交持仓最好分别验证,因为交易池可同时包含这两类订单,实际处理规则通常不同。

第三步,重启终端或重新加载EA后再查一次。若程序只记住本次运行期间建立的订单列表,重启后的行为可能变化。可核对它是否按既定条件重新识别订单,以及没有匹配订单时是否出现意外动作。编号只是辅助隔离,账户范围内的总风险检查如果有意读取所有持仓,应与实际修改订单的权限分开记录。

更换编号之前先处理旧单

假设策略A此前用101建立仓位,现在改成303。输入参数变化通常只影响后续代码使用的值,旧订单的识别号并不会随图表设置自动迁移。若管理条件只匹配303,原101订单可能被跳过。变更前应列出旧订单和预定处理方式,再在模拟环境验证重启与交接。遇到版本不可查或日志不能说明筛选逻辑的EA,先暂停自动管理变更,核对现有持仓的退出安排。模拟通过也只能说明所测试场景,真实报价变化、服务器拒单和滑点仍需单独评估。

原创教学示意,非实盘。
原创教学示意,非实盘。
风险提示:杠杆交易可能造成重大损失。本站内容用于研究与教育,不承诺收益。历史表现不能代表未来结果。

MT4与EA排查专题 →

WECHAT

与托马斯交流

黄金研究 · 交易复盘 · MT4使用交流

微信号:xauxx666
查看二维码大图

用微信扫一扫添加。手机访问可打开大图,保存后在微信扫一扫中选择相册识别。

托马斯的微信二维码,微信号xauxx666