Hàm gửi dữ liệu từ MT4 tới Telegram, thông báo số dư tài khoản

 1. Giới thiệu

Trong giao dịch Forex, việc theo dõi số dư tài khoản (Account Balance) theo thời gian thực rất quan trọng. Nếu bạn thường xuyên phải mở MT4 để kiểm tra, điều này sẽ mất thời gian và đôi khi bỏ lỡ những thay đổi quan trọng.
Bài viết này sẽ hướng dẫn bạn cách viết hàm MQL4 để gửi dữ liệu từ MT4 tới Telegram nhằm thông báo số dư tài khoản một cách tự động, nhanh chóng và an toàn.

2. Tại sao nên gửi thông báo số dư từ MT4 sang Telegram?
  • Theo dõi từ xa: Bạn nhận thông báo ngay trên điện thoại hoặc máy tính, không cần mở MT4.
  • Phản ứng nhanh: Nếu số dư giảm mạnh hoặc có biến động, bạn sẽ biết ngay.
  • Tự động hóa giao dịch: Tích hợp vào các robot (EA) để báo cáo trạng thái tài khoản.
  • Bảo mật thông tin: Telegram API sử dụng giao thức mã hóa.

3. Chuẩn bị trước khi lập trình

Để thực hiện, bạn cần:
  • Tài khoản Telegram (miễn phí).
  • Bot Telegram (tạo bằng BotFather).
  • API Token của bot.
  • Chat ID để gửi tin nhắn.
  • MT4 và kiến thức cơ bản về MQL4.

4. Hướng dẫn từng bước

Bước 1: Tạo Bot Telegram và lấy API Token
  • Mở Telegram, tìm BotFather.
  • Gõ /newbot, đặt tên và username cho bot.
  • Sau khi tạo xong, BotFather sẽ gửi cho bạn API Token dạng:
  • 123456789:AAH1x-ExampleTokenHere
Bước 2: Lấy Chat ID của bạn
  • Mở Telegram, tìm @userinfobot hoặc @RawDataBot.
  • Nhấn Start, bot sẽ trả về chat_id.
Bước 3: Cho phép MT4 gửi request ra ngoài
  • Trong MT4, vào Tools → Options → Expert Advisors.
  • Tích Allow WebRequest for listed URL.
  • Thêm địa chỉ:
  • https://api.telegram.org
Bước 4: Viết hàm MQL4 gửi tin nhắn
Dưới đây là code mẫu MQL4:
//+------------------------------------------------------------------+
//| Hàm gửi tin nhắn Telegram từ MT4                                 |
//+------------------------------------------------------------------+
void SendTelegramMessage(string token, string chat_id, string text)
{
   string url = "https://api.telegram.org/bot" + token + "/sendMessage";
   string data = "chat_id=" + chat_id + "&text=" + text;
   char result[];
   int res = WebRequest("POST", url, "application/x-www-form-urlencoded", NULL, 0, data, result, NULL);
   
   if(res == -1)
      Print("Lỗi gửi tin nhắn: ", GetLastError());
   else
      Print("Đã gửi tin nhắn thành công!");
}
Bước 5: Lấy số dư tài khoản và gửi đi

//+------------------------------------------------------------------+
//| Gửi số dư tài khoản tới Telegram                                |
//+------------------------------------------------------------------+
void SendAccountBalanceToTelegram()
{
   string token   = "API_TOKEN_CUA_BAN";
   string chat_id = "CHAT_ID_CUA_BAN";
   string balance = DoubleToString(AccountBalance(), 2);
   string equity  = DoubleToString(AccountEquity(), 2);
   string message = "🔔 Thông báo số dư tài khoản\n"
                  + "Balance: " + balance + " USD\n"
                  + "Equity: "  + equity  + " USD";
   SendTelegramMessage(token, chat_id, message);
}

Bước 6: Gọi hàm khi cần
Ví dụ: gửi số dư mỗi khi mở MT4 hoặc sau mỗi lệnh mới.

int OnInit()
{
   SendAccountBalanceToTelegram();
   return(INIT_SUCCEEDED);
}

5. Mẹo tối ưu khi sử dụng

  • Lên lịch gửi định kỳ bằng EventSetTimer().
  • Kết hợp cảnh báo khi số dư < mức yêu cầu.
  • Mã hóa Token để tránh bị lộ.
  • Tích hợp thêm thông tin: lịch sử giao dịch, margin, profit…

6. Kết luận

Với hướng dẫn trên, bạn đã biết cách viết hàm gửi dữ liệu từ MT4 tới Telegram để thông báo số dư tài khoản. Đây là bước quan trọng để tự động hóa giám sát tài khoản, giúp bạn giao dịch chuyên nghiệp hơn và phản ứng nhanh với biến động thị trường.
Mới hơn Cũ hơn