Gửi thông báo đẩy
Như bạn đã biết, terminal cho phép gửi thông báo đẩy từ các dịch vụ MetaQuotes, chính terminal và các chương trình MQL đến thiết bị di động chạy hệ điều hành iOS hoặc Android. Công nghệ này sử dụng MetaQuotes ID, một định danh duy nhất của người dùng (xem ghi chú). MetaQuotes ID được cấp khi cài đặt phiên bản di động của terminal trên thiết bị của người dùng, sau đó ID này phải được chỉ định trong cài đặt terminal, trên tab Thông báo (có thể chỉ định nhiều định danh, cách nhau bằng dấu phẩy). Sau đó, chức năng gửi thông báo đẩy sẽ khả dụng cho các chương trình MQL.
Trên thực tế, MetaQuotes ID không định danh một người dùng, mà là một cài đặt cụ thể của terminal di động; một người dùng có thể có nhiều cài đặt. ID không liên kết mặc định với việc đăng ký trong cộng đồng mql5.com, mặc dù có thể chỉ định mối liên kết như vậy trên trang web. Đừng nhầm lẫn giữa đăng ký người dùng trong cộng đồng với MetaQuotes ID. Để làm việc với thông báo, người dùng terminal không cần đăng nhập vào cộng đồng.
bool SendNotification(const string text)
Hàm SendNotification
gửi thông báo đẩy với văn bản được chỉ định đến tất cả các terminal di động có MetaQuotes ID từ cài đặt terminal. Độ dài tin nhắn không quá 255 ký tự.
Nếu thông báo được gửi thành công từ terminal, hàm trả về true
, và trả về false
nếu xảy ra lỗi. Các mã lỗi có thể trong _LastError
bao gồm:
- 4515 — ERR_NOTIFICATION_SEND_FAILED — vấn đề liên lạc
- 4516 — ERR_NOTIFICATION_WRONG_PARAMETER — tham số không hợp lệ, ví dụ, chuỗi rỗng
- 4517 — ERR_NOTIFICATION_WRONG_SETTINGS — MetaQuotes ID được cấu hình sai hoặc thiếu
- 4518 — ERR_NOTIFICATION_TOO_FREQUENT — gọi hàm quá thường xuyên
Nếu có kết nối với máy chủ, tin nhắn được gửi ngay lập tức. Nếu thiết bị của người dùng đang trực tuyến, tin nhắn sẽ đến được người nhận, nhưng không thể đảm bảo việc giao hàng trong trường hợp chung. Không có thông báo trả lại cho chương trình về việc giao tin nhắn. Lịch sử tin nhắn đẩy trên máy chủ cho việc giao hàng bị trì hoãn không được lưu lại.
Hàm có giới hạn về tần suất sử dụng: không quá 2 lần gọi mỗi giây và không quá 10 lần mỗi phút.
Hàm SendNotification
không được thực thi trong trình kiểm tra chiến lược.
Cuốn sách bao gồm một script đơn giản NetNotification.mq5
gửi thông báo thử nghiệm khi cài đặt chính xác.
void OnStart()
{
const string message = MQLInfoString(MQL_PROGRAM_NAME)
+ " runs on " + AccountInfoString(ACCOUNT_SERVER)
+ " " + (string)AccountInfoInteger(ACCOUNT_LOGIN);
Print("Sending notification: " + message);
PRTF(SendNotification(NULL)); // INVALID_PARAMETER(4003)
PRTF(SendNotification(message)); // NOTIFICATION_WRONG_SETTINGS(4517) hoặc 0 (thành công)
}
2
3
4
5
6
7
8
9