我以前有个坏习惯——盯盘的时候总爱起身去倒水、拿外卖。每次回来都心惊胆战地刷新账户,生怕错过了什么。直到有一次,一笔挂单成交了我完全没察觉,等发现的时候已经浮亏了不少。那之后我才下决心好好研究MT5的推送通知功能。
翻了一下MetaTrader 5官方帮助中心关于通知的说明,写得不算复杂,但有一个关键信息藏得比较深——MetaQuotes ID的获取方式在文档里是分散在不同章节的,很多人第一步就卡住了。
第一步:在手机端找到你的MetaQuotes ID
这个ID是每个设备安装MT5移动端时生成的唯一标识符,就像手机号一样,用来接收推送消息[citation:9]。官方文档第10页说"打开移动平台,转至'消息'部分",但具体怎么找其实分系统:
很多人以为这个ID只是MQL5社区聊天用的,其实它是所有推送通知的目标地址,包括从桌面端发过来的交易提醒[citation:9][citation:11]。
第二步:桌面端配置发送通知
打开电脑上的MT5,依次点 工具 > 选项 > 通知 选项卡[citation:10]。
然后按这三步走:
- 本地程序端通知:只有MT5桌面版在运行的时候才会发。适合你人在电脑旁边但暂时走开一会儿的场景。
- 交易服务器通知:这个才是真正好用的功能。通知直接从交易商的服务器发出,就算你的电脑关了机,手机照样能收到[citation:10]。有一回我晚上关机睡觉,第二天起来一看手机,半夜止盈触发的推送清清楚楚躺在那儿,比闹钟还管用。
官方文档没明说的坑
文档里写了可以用"测试"按钮验证推送能不能用。但它没有强调的一点是:交易服务器通知并不是所有交易商都支持的。你勾选启用之后,平台日志里会显示当前账户支持哪些类型的通知,比如会看到一行像
'1222': subscribe to trade, order, balance notifications from trade server这样的记录[citation:10]。如果日志里没有出现类似的订阅成功信息,那就说明你的交易商不支持服务器端推送,只能老老实实用本地通知模式。第三步:在EA和警报里用推送功能
除了交易商自动发的成交通知,推送还有两个很实用的用法:
SendNotification()函数,可以自定义任何提醒内容——比如某个指标信号触发了、数据行情来了,甚至定期发一条"EA还在跑"的心跳消息[citation:10]。需要注意的限制
推送通知有频率限制:每0.5秒不超过1条,每分钟不超过10条[citation:10]。如果你的EA在行情剧烈波动时疯狂发通知,会被限流,重要的提醒反而收不到。所以代码里最好加上间隔控制的逻辑。
参考来源:MetaTrader 5帮助 - 通知设置(metatrader5.com)。
本文首发于FXEAR.com,原创内容,未经授权禁止转载。