MetaQuotes ID:把交易推送从短信网关拽进免费即时通道
还在为交易信号短信延迟和运营商限制头疼?一台装了 MT 移动终端的设备就能绕过这些老问题
「用 MetaQuotes ID 接住 EA 的推送消息」
MT5 移动终端早就支持从 EA 直接往手机推消息,前提是你得拿到那台设备的 MetaQuotes ID。Android 和 iOS 都内置了推送通道,不依赖手机号、也不挑运营商,自动交易触发条件时就能秒推到屏。 官方披露过一组数据:截至 2014 年 3 月,已有超过 40,000,000 台移动终端被分配了 MetaQuotes ID。对做外汇、贵金属的交易者来说,这意味着告警延迟大概率能压到秒级,但手机网络抖动、系统杀后台仍可能漏推,属高风险环境下的辅助手段。 老派传呼和 GSM 短信早被时代甩开,推送通知把「交易端→人」的链路又缩短了一截。开 MT5 手机端,进设置把 MetaQuotes ID 抄出来填进 EA 的通知参数,就能先验证一遍。
MetaQuotes ID 到底是个什么码
推送通知走的是 iOS / Android 的推送通道,不依赖特定运营商,也不要求第三方 App 常驻后台,设备联网就能收。对外汇、贵金属这类高波动品种来说,行情跳空或爆仓预警晚一秒都可能放大亏损,通道稳不稳直接决定你能否及时反应。 MetaQuotes ID 是 MetaQuotes 系移动端给每台安装实例发的唯一标识,用来把推送从服务器精准投递到你的手机。MT4 / MT5 的 iPhone 与 Android 版在安装时各自生成一个独立 ID,目的是避免你被不同 App 的海量通知搞混。 打开移动端「Messages」分区就能看到自己的 ID,iPhone 版 MT5 的界面里它明晃晃挂在消息页左侧。相比早期靠邮件转付费短信网关的做法——运营商支持参差、还按条收费——推送完全免费、几乎不限条数,只要你的流量套餐含上网就行。 以前想用手机盯账户状态或信号提醒,得先发邮件到指定地址再经短信网关转发,链路长、易丢、贵。现在用 MetaQuotes ID 接推送,出门不用开电脑也能收到信号和账户异动,只是记住:任何通知都只是辅助,MT5 上的实际持仓风险仍由你自己扛。
◍ MetaQuotes ID 的两条推送通道
MT5 的推送通知不是单一来源,而是分两条线进到同一个 MetaQuotes ID。一条来自桌面客户端本地,一条来自 MQL5.community 后台服务,二者都靠专用中继服务器直发到绑定该 ID 的移动端,延迟接近实时。 桌面端的订阅入口在终端设置里填 MetaQuotes ID;社区服务的入口在你的个人资料页填同一个 ID。填完之后,触发条件各自独立:客户端事件(如 EA 报警、成交回执)走本地通道,社区事件(如信号订阅状态、文章回复)走云端通道。 验证方法很直接:开 MT5 终端设置抄下自己的 MetaQuotes ID,手机装好对应 App 并登录同 ID,然后用一段发通知的脚本触发一次,看手机是否在数秒内收到。外汇与贵金属品种波动剧烈,这类通知仅作辅助提醒,不构成任何交易依据。
「把事件推到手机:MT5 通知的两条路」
推送通知的价值在于把终端里的关键事件压缩到秒级到达手机,而不是盯盘时漏掉成交或风控触发。先在 MT5 设置里填好 MetaQuotes ID 并打开推送开关,否则下面两种办法都收不到。 写代码的最直接:MQL5 给了 SendNotification() 一个专用函数,唯一参数是消息文本,长度上限 255 字符。挂进 EA 或脚本后,账户异动、策略信号都能实时甩到移动端,比邮件快得多。
class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Notification.mq5 | class=class="str">"cmt">//| Copyright class="num">2012, MetaQuotes Software Corp. | class=class="str">"cmt">//| [MQL5官方文档] | class=class="str">"cmt">//+------------------------------------------------------------------+ class="macro">#class="kw">property copyright "Copyright class="num">2012, MetaQuotes Software Corp." class="macro">#class="kw">property link "[MQL5官方文档] class="macro">#class="kw">property version "class="num">1.00" class="macro">#class="kw">property script_show_inputs; class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Text message to send | class=class="str">"cmt">//+------------------------------------------------------------------+ input class="type">class="kw">string message="Enter message text"; class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Script program start function | class=class="str">"cmt">//+------------------------------------------------------------------+ class="type">void OnStart() { class=class="str">"cmt">//--- Send the message res=SendNotification(message); if(!res) { Print("Message sending failed"); } else { Print("Message sent"); } class=class="str">"cmt">//--- } class=class="str">"cmt">//+------------------------------------------------------------------+
class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Notification.mq5 | class=class="str">"cmt">//| Copyright class="num">2012, MetaQuotes Software Corp. | class=class="str">"cmt">//| [MQL5官方文档] | class=class="str">"cmt">//+------------------------------------------------------------------+ class="macro">#class="kw">property copyright "Copyright class="num">2012, MetaQuotes Software Corp." class="macro">#class="kw">property link "[MQL5官方文档] class="macro">#class="kw">property version "class="num">1.00" class="macro">#class="kw">property script_show_inputs; class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Text message to send | class=class="str">"cmt">//+------------------------------------------------------------------+ input class="type">class="kw">string message="Enter message text"; class=class="str">"cmt">//+------------------------------------------------------------------+ class=class="str">"cmt">//| Script program start function | class=class="str">"cmt">//+------------------------------------------------------------------+ class="type">void OnStart() { class=class="str">"cmt">//--- Send the message res=SendNotification(message); if(!res) { Print("Message sending failed"); } else { Print("Message sent"); } class=class="str">"cmt">//--- } class=class="str">"cmt">//+------------------------------------------------------------------+
把社区通知和二次验证接进MT5
MT5 客户端和 MQL5.community 后台是打通的,最实用的落点是推送通知。先在社区个人资料里填好 MetaQuotes ID,就能让移动终端接收账户侧的关键事件:私信文本、自由职业者订单消息、代码库/文章/市场/信号板块的发布状态变更、虚拟主机租赁动态、论坛主题被评论、新品发布公告、卖方注册提醒等。 账户安全这块,建议开双重认证。路径在个人资料—设置—安全,启用“只授权许可的静态IP地址”。从陌生 IP 登录时,除账密外还要输发送到移动端的动态口令;若你用固定 IP,加进白名单后本地登录免二次校验。外汇与贵金属交易本身高风险,账户被盗可能直接造成实盘损失,这层防护值得花五分钟配。 移动端 MT4/MT5 还内嵌了社区聊天,能直接和 MQL5.community 好友、同行语音文字沟通,不用切到浏览器。盯盘间隙问一句策略细节,比贴吧翻帖快得多。
◍ 一点提醒
把行情警报从屏幕里解放出来,是老手和盯盘疲劳之间的一道缓冲。MT5 的推送通知走 MetaQuotes ID 通道,不依赖短信或邮件,延迟低且免费。 截至2016年12月,已注册超过9,000,000个唯一 MetaQuotes ID,说明这条通道在真实账户群体里早就是基础设施。 想自己验证,把 sendnotificationsample.mq5 丢进 [terminal data folder]\MQL5\Experts,编译后挂任意图表,手机端先登录同账号并打开通知权限,就能收到 EA 发来的测试推送。 安卓上偶尔出现 ID 显示为空,多与谷歌账户未生效或移动数据下服务未回连有关,换 WiFi 点信息栏 MQID 按钮通常能取到;外汇和贵金属杠杆高,警报只帮你看见,不等于该动手,真金白银前先想清楚仓位。