发送推送通知
我们知道,终端允许你将来自 MetaQuotes 服务、终端本身以及 MQL 程序的推送通知发送到 iOS 或 Android 操作系统的移动设备。该技术使用 MetaQuotes ID,这是一个用户的唯一标识符(见注释)。MetaQuotes ID 是在用户设备上安装移动版终端时分配的,之后必须在终端设置的“通知”选项卡中指定该 ID(可以指定多个标识符,用逗号分隔)。此后,MQL 程序便可使用发送推送通知的功能。
事实上,MetaQuotes ID 并非标识用户,而是标识移动终端的特定安装实例;一个用户可以有多个安装实例。默认情况下,该 ID 与 mql5.com 社区的注册无关,尽管可以在网站上指定这种绑定。不要将社区中的用户注册与 MetaQuotes ID 混淆。要使用通知功能,终端用户无需登录社区。
bool SendNotification(const string text)
SendNotification 函数将带有指定文本的推送通知发送到所有具有终端设置中 MetaQuotes ID 的移动终端。消息长度不超过 255 个字符。
如果通知成功从终端发送,函数返回 true,如果发生错误则返回 false。_LastError 中可能的错误代码包括:
- 4515 ERR_NOTIFICATION_SEND_FAILED 通信问题
- 4516 ERR_NOTIFICATION_WRONG_PARAMETER 无效参数,例如空字符串
- 4517 ERR_NOTIFICATION_WRONG_SETTINGS MetaQuotes ID 配置不正确或缺失
- 4518 ERR_NOTIFICATION_TOO_FREQUENT 函数调用过于频繁
如果与服务器存在连接,消息会立即发送。如果用户的设备在线,消息应该会到达收件人,但在一般情况下无法保证送达。程序不会收到关于消息送达情况的回执通知。服务器上不保存用于延迟发送的推送消息历史记录。
该函数的使用频率有限制:每秒不超过 2 次调用,每分钟不超过 10 次。
SendNotification 函数不在策略测试程序中执行。
本书包含一个简单的脚本 NetNotification.mq5,设置正确时,它会发送一个测试通知。
void OnStart()
|