Chuyển tới nội dung chính

Giới Thiệu

Webhook là một phương pháp giúp MetaTrader 5 gửi dữ liệu hoặc thực hiện lệnh giao dịch thông qua HTTP request. Điều này giúp bạn tích hợp giao dịch tự động với các hệ thống bên ngoài như bot giao dịch, quản lý rủi ro hoặc thông báo giao dịch.

Bước 1: Kích Hoạt WebRequest Trong MetaTrader 5

Để MetaTrader có thể gửi HTTP request, bạn cần kích hoạt WebRequest trong phần cài đặt:

  1. Mở MetaTrader 5.
  2. Vào Tools > Options.
  3. Chuyển sang tab Expert Advisors.
  4. Trong phần "Allow WebRequest for listed URL", thêm URL của webhook, ví dụ:
    https://webhook.chart.vn
  5. Nhấn OK để lưu cài đặt.

Bước 2: Viết Mã MQL5 Để Gửi Lệnh Qua Webhook

Tạo một script mới trong MetaTrader bằng cách:

  1. Mở MetaEditor.
  2. Chọn File > New > Script.
  3. Đặt tên, ví dụ WebhookOrder.mq5.
  4. Thêm đoạn mã sau để gửi lệnh mua/bán qua webhook:
//+------------------------------------------------------------------+
//| Webhook Order Execution Script (MQL5) |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, chobot.vn."
#property link "https://chobot.vn"
#property version "1.00"

input string WebhookURL = "https://webhook.chart.vn/xxxxxxxxxx"; // Thay URL webhook của bạn vào đây
input double LotSize = 1.0; // Khối lượng giao dịch

//+------------------------------------------------------------------+
//| Script bắt đầu thực thi |
//+------------------------------------------------------------------+
void OnStart()
{
double AskPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double BidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID);

bool BuySignal = (iClose(_Symbol, PERIOD_M1, 0) > iClose(_Symbol, PERIOD_M1, 1)); // Tín hiệu mua
bool SellSignal = (iClose(_Symbol, PERIOD_M1, 0) < iClose(_Symbol, PERIOD_M1, 1)); // Tín hiệu bán

if (BuySignal)
{
SendWebhook("buy", AskPrice);
}
else if (SellSignal)
{
SendWebhook("sell", BidPrice);
}
}

//+------------------------------------------------------------------+
//| Hàm gửi yêu cầu HTTP GET đến Webhook |
//+------------------------------------------------------------------+
void SendWebhook(string side, double price)
{
if (side == "" || price <= 0) return;

// Tạo URL request dạng GET
string request_url = WebhookURL + "?symbol=" + _Symbol + "&price=" + DoubleToString(price, 5) + "&quantity=" + DoubleToString(LotSize, 2) + "&side=" + side;

string cookie=NULL, headers;
char post[], result[];

ResetLastError();

int response_code;
int timeout = 5000; // 5 giây timeout

if (WebRequest("GET", request_url, cookie, NULL, 500, post, 0, result, headers) == -1)
{
Print("Lỗi WebRequest: ", GetLastError());
}
else
{
Print("Webhook gửi thành công! Phản hồi: ", CharArrayToString(result));
}
}

Bước 3: Kiểm Tra Kết Quả

  1. Lưu lại script và quay lại MetaTrader.
  2. Kéo script vào biểu đồ của cặp tiền tệ hoặc tài sản giao dịch.
  3. Nếu điều kiện đặt lệnh được thỏa mãn, webhook sẽ nhận được yêu cầu HTTP GET.
  4. Kiểm tra webhook response trong phần "Experts" của MetaTrader.
  5. Kiểm tra nhật ký để xem dữ liệu gửi đi có đúng không.

Mẹo và Lưu Ý

  • Kiểm tra lỗi bằng GetLastError() nếu lệnh không gửi đi.
  • Chỉ sử dụng trên tài khoản demo trước khi triển khai vào tài khoản thực.

Kết Luận

Sử dụng MetaTrader kết hợp với Webhook giúp tự động hóa giao dịch, tạo ra các chiến lược thông minh và linh hoạt hơn. Bạn có thể áp dụng phương pháp này để giao dịch nhanh chóng, kết hợp với hệ thống bên ngoài như bot AI hoặc nền tảng giao dịch tự động.