MagicNumber设计|多个EA在同一账户运行的运维要点
结论:MagicNumber是EA的“名牌”,同一账户内不要重复
如果要在一个账户中运行多个EA,首先要确定的就是MagicNumber的分配。MagicNumber是附加在订单和持仓上的编号,用来表示“这是哪个EA下的单”。多数EA都是通过这个编号来判断“哪些是自己的持仓”。
编号一旦重复,某个EA就可能把另一个EA的持仓误认为自己的,擅自进行平仓或修改止损。这种情况不会报错,从显示上看两个EA也都在正常运行,因此是很难察觉的事故。
推荐经纪商比较 →
🎁 免费下载EA📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
※ 严格保护隐私。可随时取消订阅。
机制:EA如何分辨“自己的持仓”
在MT5中,EA下单时可以附带一个数值型的MagicNumber。这个值会保留在持仓(POSITION_MAGIC)和交易历史(DEAL_MAGIC)中。手动下单时通常为0。
一般的EA在统计或管理持仓时,会按下面两点进行筛选:
- 品种是否与自己所在的图表相同
- MagicNumber是否与自己的设置值相同
只有这两项都一致的持仓,才会被视为“自己的份额”。这里的关键是:MT5本身不会阻止MagicNumber重复。编号只是一种约定,是否遵守取决于运维者和EA的设计。
重复时会发生什么
当两个EA在相同品种、相同MagicNumber下运行时,可能出现如下情况:
- 抑制开仓:设置了“最大持仓数为1”的EA,把另一个EA的持仓算作自己的,从而放弃新的开仓
- 平掉别人的持仓:出现平仓信号时,连另一个EA的持仓也一并平掉
- 覆盖止损:移动止损把另一个EA持仓的SL也一起移动了
- 手数计算失真:根据持仓数量决定手数的EA,会建立比预期更大的仓位
这些问题在回测中都无法复现,因为测试器每次只运行一个EA。这就是验证结果与实际运行出现偏差的原因之一。
部分平仓的追踪
使用部分平仓的EA,在追溯记录时也需要注意。在对冲账户中,即使部分平仓,持仓的标识号(POSITION_IDENTIFIER)也不会改变,在历史的平仓成交中会以DEAL_POSITION_ID的形式保留。如果之后要按EA汇总业绩,先用MagicNumber筛选,再按这个持仓ID归并,才最可靠。
不过,平仓成交中记录的MagicNumber,有时是发出平仓订单一方的值。如果对EA建立的持仓中途手动平掉一部分,那笔成交的编号会变成0,仅用MagicNumber汇总时数字就会对不上。备注栏也可能被经纪商或服务器端改写,因此不能作为可靠的识别依据。
设置前检查清单
| 检查项目 | 检查方法 | 疏忽的风险 |
|---|---|---|
| 各EA的MagicNumber是否重复 | 在各EA的参数界面列成清单并记录 | 平仓、SL修改相互干扰 |
| 同一EA用于多个图表时是否区分了编号 | 即使品种不同、周期不同也使用不同编号 | 不看品种的EA会发生混淆 |
| 账户是否为对冲型 | 在账户信息中确认 | 净额结算账户中同一品种的持仓会合并为一个,无法用编号区分 |
| 运行期间是否更改过编号 | 更改前先确认没有持仓 | 已有持仓失去管理而残留 |
| 是否与手动交易混用 | 手动交易使用另一个账户 | 汇总出现偏差,手动平仓导致记录缺失 |
编号最好采用“按EA划分位数”这类简单规则,之后查看历史记录时就不会混乱。设置界面的位置请参阅EA设置方法。
局限与注意事项
即使区分了MagicNumber,也有无法避免的情况。在此如实说明。
- 对不看MagicNumber的EA无效:仅按品种筛选的EA,或管理账户内所有持仓的EA,即使区分了编号也会产生干扰。如果混用其他公司的EA,我们无法得知其内部设计。
- 默认值冲突:许多EA是以默认值直接发布的。不同开发者的EA之间,默认值碰巧相同的情况完全可能发生。请务必自己确认数值。
- 处理多个品种的EA:像ATLAS或TRINITY这样由一个EA处理多个品种的情况,会与其他EA形成争夺同一品种的局面。即使区分了编号,保证金依然共用,因此回撤同时叠加的可能性依然存在。
- 资金管理不会被分离:编号只能区分持仓管理。保证金维持率和强制平仓是按整个账户来决定的。一个EA大幅亏损,其他EA也会被牵连。
想要确保避免干扰,最简单的办法是每个EA使用一个独立账户。编号设计只是在决定使用同一账户运行时的最低限度准备。
总结
- MagicNumber是保留在订单、持仓和历史中的EA识别编号,MT5不会阻止重复
- 重复时可能出现抑制开仓、平掉其他EA的持仓、覆盖SL、手数计算失真,而且回测无法复现
- 部分平仓的追踪应结合MagicNumber与持仓ID进行;手动平仓可能导致记录偏差
- 净额结算账户无法用编号区分持仓;运行多个EA请使用对冲账户
- 即使区分了编号,保证金仍然共用;要确保避免干扰就分开账户
其他运维经验请参阅EA・MT5知识库。
相关文章
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
※ 严格保护隐私。可随时取消订阅。