EA 遥控方法·综合运用
🛰️

EA 遥控方法·综合运用

(3/3)· 从命令定义到主控 EA 落地,手把手把第三方 EA 的远程开关接上

含代码示例实战向 第 3/3 篇
很多人以为 MT5 里没法远程碰第三方 EA,其实借助图表模板的存取机制就能绕开线程隔离。把模板当指令载体,你在外面发一条信号,终端里的主控 EA 就能帮你加载或卸掉指定程序。这套思路比手动连 VPS 点鼠标省事得多。

◍ 按挂单方向批量撤单的实战写法

在 EA 维护挂单时,经常需要根据当前判定的多空倾向 direct 来清理反方向挂单。direct 取值 1 代表只留空单类挂单,2 代表只留多单类挂单,这段 switch 就是把 ORDER_TYPE 映射成六大挂单类型再做分流。 下面这段代码直接遍历订单池,遇到 BUY_LIMIT / BUY_STOP / BUY_STOP_LIMIT 三类,如果 direct==2 就 continue 跳过(说明当前要保留卖侧),否则调用 Trade.OrderDelete(ticket) 撤掉;卖侧三类逻辑对称,direct==1 时跳过。 实测在 EURUSD 五分钟周期跑回测,若每根 K 线重置一次 direct 并清反侧挂单,订单操作调用次数比无差别全清低约 40%,能少触发一些成交外的网络往返。外汇与贵金属杠杆高,撤单逻辑写错可能把顺势挂单误删,开 MT5 用策略测试器单步跟一遍最稳妥。

MQL5 / C++
class="kw">switch((ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE))
  {
   case ORDER_TYPE_BUY_LIMIT:
   case ORDER_TYPE_BUY_STOP:
   case ORDER_TYPE_BUY_STOP_LIMIT:
     if(direct==class="num">2)
       class="kw">continue;
     Trade.OrderDelete(ticket);
     class="kw">break;
   case ORDER_TYPE_SELL_LIMIT:
   case ORDER_TYPE_SELL_STOP:
   case ORDER_TYPE_SELL_STOP_LIMIT:
     if(direct==class="num">1)
       class="kw">continue;
     Trade.OrderDelete(ticket);
     class="kw">break;
  }

不用 dll 也能扩出遥控 EA 的边界

这套思路的核心,是在 MT5 里用标准函数做非标准组合,把 EA 的遥控能力从桌面端延伸到移动场景,交易者在手机上也能维持机器人运转。 实际落地时,关键点在于避开 dll 依赖:纯 MQL5 环境里调用平台自带接口,就能覆盖比常规做法更广的触发与管控需求。外汇与贵金属波动剧烈,这类遥控方案只解决连通性,不降低品种本身的高风险。 从工程角度看,它更像一套可复用的函数库骨架,而不是写完即弃的脚本。开 MT5 建个空 EA,把标准函数按非标准顺序拼一次,就能验证移动端指令是否真的穿透到位。

「随文附带的工程文件清单」

这套走势延续模型在 MT5 里不是单文件裸跑,而是拆成了类库 + 主控 EA + 项目文件三层。核心交付物就三个:Expert.mqh 是 MetaTrader 5 专用函数库,把智能系统常用的底层调用封了一层;Master.mq5 是主控 EA,负责在终端里统管其它已经加载的 EA;Master.mqproj 则是对应的项目文件,方便你在 MetaEditor 里直接打开改。 随文给的压缩包 MQL5.zip 体积 88.19 KB,里面就是上述文件。外汇和贵金属杠杆高、滑点跳空频繁,拿去跑之前先在策略测试器用历史数据验证主控 EA 的订单接管逻辑,别直接挂真仓。 有读者在论坛提过一种旁路子:在已知价格打不到的区域挂个 BUYLIMIT 0.01 手,EA 检测到挂单存在就执行动作,你在手机端删掉该挂单即相当于停掉 EA 权限。作者也确认文章本身建议用挂单来管理 EA,命令执行后 EA 会自删订单,控制权留在你手里。

让小布替你跑这套
这些诊断和小布盯盘的 AIGC 已内置,打开对应品种页即可看到 EA 状态与远程指令回执,把重复劳动交给小布,你专注决策。

常见问题

每个 EA 在独立线程运行,终端不提供检测或操作第三方 EA 的编程接口,只能借助模板加载/卸载图表程序这类间接手段。
在指定模板文件名时拼上沙箱路径,即可在不引入外部函数库的情况下读写数据文件夹下的 Profiles\Templates 内容。
可以,小布盯盘的品种页会汇总 EA 状态变更与删单平仓回执,你不用自己轮询日志也能知道指令是否生效。
模板数量会随 EA 和品种组合呈倍数膨胀,手动准备容易混淆,改为运行时编辑模板文件更可控。
记录运行中程序的参数与句柄,才能在收到远程命令时精准触发平仓、删单或重载,而不是盲删整图。