EA订单注释与魔法号管理教程

新帖
登录发帖
Exness 推荐平台

入金门槛低,出金到账快,支持多种账户类型

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
leijia657
leijia657 楼主 2 小时前 浏览 9 回复 1 阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 3 帖数 14 积分 881 汇币 714
1楼
拿欧美1.0手来算,点差1.2,佣金往返7刀,滑点平均0.3,单笔往返成本差不多19刀出头,一天要是开个五六单,光摩擦成本就上百刀了。这时候你再回头看订单列表里一堆没注释、魔法号全填0的单子,月底想按策略拆成本根本拆不出来,哪个EA在偷偷放血都找不到。所以这篇就聊订单注释和魔法号这套东西,属于EA上线前必须做扎实的基础活儿。
先说魔法号。MT4/MT5的OrderSend里那个magic参数,本质就是给每套策略发身份证。我的习惯是按模块分段,比如主策略段100000起、对冲模块200000起、手动单固定999999,每套EA内部再按品种加偏移,欧美100001、镑美100002这样。这样后期用HistorySelect按magic过滤,或者写个统计脚本按魔法号聚合盈亏,一眼就能看出哪套在赚钱。踩过的坑是早期偷懒全填0,结果两个EA同时跑黄金,一个挂单一个市价,平仓时互相认错单子,直接对冲出反向仓位,查了一整晚日志才定位到。记住魔法号一旦上线就别改,改了历史统计就断档了。
再讲订单注释。OrderSend第十个参数comment,默认很多模板给的是空字符串或者EA名字。这里有两个坑:一是注释长度别超过31个字符,超了部分经纪商会截断甚至拒单,我习惯控制在20以内;二是注释里别放中文和特殊符号,某些服务器编码不一致,回读OrderComment()会变乱码,后面做字符串匹配就废了。我的写法是“策略代号-周期-序号”,比如“EUH1-03”,既短又能追溯。还有个细节,部分经纪商对市价单和挂单的注释处理不一样,挂单转持仓后注释可能被覆盖,所以关键信息尽量压在魔法号里,注释只做辅助。
具体落地我一般这么干:

  • 在EA的全局变量区统一定义#define MAGIC_MAIN 100001这类常量,禁止在OrderSend里写裸数字
  • 封装一个SendOrder()包装函数,把magic和comment作为必传参数,内部做长度和字符校验
  • 开仓前用OrderSelect循环检查同魔法号同品种是否已有持仓,避免重复开仓
  • 平仓和改单时先用OrderSelect确认OrderMagicNumber()匹配再操作,别图省事直接按 ticket 平
  • 每周导出一次历史,用Python按magic分组算净值和回撤,脚本我一般跑在VPS本地,省得来回传数据

最后提一句VPS上的注意点,多EA同账户跑的时候,魔法号冲突是最隐蔽的故障源,尤其那种复制别人参数模板的,两套EA魔法号撞了,一个平仓指令能把另一个的仓位带走。上线前务必在模拟盘用脚本扫一遍所有持仓的magic分布,确认没有重叠再挂实盘。你们现在账户里魔法号是怎么分段的,有没有遇到过注释被经纪商截断的情况?
0 回复 众裁0 复制
#1
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 连续盈利期交易止盈纪律的复盘