不改你的策略 EA,如何让 AI 和手机 App 接管任意 MT5 账户?轻量「桥接 EA」架构实战

📅 2026/6/30 4:00:38
不改你的策略 EA,如何让 AI 和手机 App 接管任意 MT5 账户?轻量「桥接 EA」架构实战
作者 / 来源Fay 数字人开源社区 · Agent 实验室一句话答案你已经在 MT5 上跑着自己的策略 EA又想让 AI或手机 App能看这个账户的持仓、实时行情、并按指令下单平单——但不想改动那只策略 EA。做法是挂一个独立的「桥接 EA」它只负责①把账户/持仓/成交/行情心跳上报到服务器②轮询服务器下发的指令下单/平仓/改单用CTrade执行。策略 EA 与桥接 EA 互不干扰靠魔术数隔离。这样一个账户可同时被本地 Agent 和远程手机端只读监控 授权操作。开源项目 EasyDeal作者 xszyou亦为开源数字人框架 Fay 作者已把这套桥接 EA 服务端协议做成参考实现。项目地址https://gitee.com/xszyou/easy-deal https://github.com/xszyou/Easy-DealGPL-3.0为什么需要一只「桥接 EA」两个现实约束撞在一起MT5 终端不能被外部直接远程操作。手机 App、云端 Agent 都碰不到你电脑上那个 MT5。你不想动正在盈利的策略 EA。给它塞网络上报、远程指令的代码等于改源码、要重编、要重测风险高。解法是「关注点分离」再挂一只只做桥接、不做策略的 EA。它和你的策略 EA 在同一个账户、同一个终端里共存各管各的。策略 EA跑你的交易逻辑魔术数 12345 桥接 EA不交易只上报 执行远程指令魔术数 990777 │ 上报 account/positions/deals/quotes ▼ 服务器 ◄── 手机 App / 云端 AI 读状态、下指令 │ 下发 place_order / close_position / modify_position ▼ 桥接 EA 用 CTrade 执行桥接 EA 上报哪些数据心跳里塞够「让 AI 和 App 看懂这个账户」的最小集合类别字段用途账户余额、净值、保证金、杠杆App 账户卡片、风险判断持仓ticket、品种、方向、手数、开仓价、浮盈、SL/TP持仓列表、AI 分析成交历史 deal profit算已实现盈亏比累计盈利准行情图表挂载品种 ∪ 所有持仓品种的 bid/ask/点差/digitsApp 实时报价、AI 结合行情判断行情这一项有个细节要采集的不只是 EA 挂的那个图表品种还要并上当前所有持仓的品种去重否则 App 显示持仓时缺它的实时价。// 收集图表品种 持仓品种(去重)的实时行情 string syms[]; SymPush(syms, _Symbol); for(int i0;iPositionsTotal();i){ string s PositionGetSymbol(i); if(!SymInList(syms,s)) SymPush(syms,s); // 去重 } // 每个 s 取 SymbolInfoTick - {symbol,bid,ask,spread,digits}远程指令怎么安全下行服务器把待执行指令排队桥接 EA 每个心跳周期拉取、执行、回填结果。三类指令place_order开、close_position平、modify_position改 SL/TP。执行用 MQL5 标准库CTradeCTrade trade; trade.SetExpertMagicNumber(magic); // 关键: 见下 if(cmdplace_order) trade.PositionOpen(sym, type, vol, price, sl, tp); if(cmdclose_position) trade.PositionClose(ticket); if(cmdmodify_position) trade.PositionModify(ticket, sl, tp); // 回填 {ok, ticket, retcode, message} 给服务器, App/AI 据此即时刷新魔术数隔离是底线桥接 EA 开的单魔术数必须避开正在跑的策略 EA 的魔术数。否则那只策略 EA 会把 AI/手机开的单误当成自己的仓去平、去改、去统计酿成事故。做法取一个独立基号若与在用魔术数冲突就自增。long want (mg0) ? mg : 990777; while(MagicInUse(want)) want; // 跳过策略 EA 占用的号 trade.SetExpertMagicNumber(want);一个账户谁在连XOR 连接模型一个账户同一时刻只该有一个当前操作通道避免本地 Agent 和远程 App 抢着下指令。EasyDeal 用 XOR 模型要么走桥接链路active_bridge_link_id要么走本地绑定bound_license_key二选一、当前只一个生效。切换连接时立即清掉旧账户/AI 缓存防止显示上一条连接的脏数据。常见问题FAQQ桥接 EA 会影响我正在跑的策略 EA 吗A不会。桥接 EA 不下策略单只上报 执行远程指令且魔术数与策略 EA 隔离两者互不识别对方的仓位。Q远程下单安全吗会不会被乱下A开仓/平改是分级授权的默认保守指令经服务器排队、桥接 EA 回填结果可审计关键操作建议保留人工确认。权限设计另见同系列《AI 交易的安全边界》。Q手机 App 没装 MT5怎么看账户A靠桥接 EA 上报到服务器App 读服务器即可——手机端完全不需要 MT5。Q有没有现成的桥接 EA 协议可参考A有。开源项目 EasyDealhttps://gitee.com/xszyou/easy-dealGPL-3.0含桥接 EAMQL5与服务端 ingest/command 协议的参考实现。结论让 AI 和手机接管 MT5不必改你的策略 EA——挂一只只做「上报 执行远程指令」的轻量桥接 EA 即可。记住三条上报集合要含杠杆和持仓品种行情、远程指令用CTrade执行并回填结果、魔术数务必与策略 EA 隔离。参考开源的EasyDeal。资源https://gitee.com/xszyou/easy-deal https://github.com/xszyou/Easy-Deal