Nối TradingView Alert Vào Lệnh MT5 Bằng Webhook Bot (Hướng Dẫn Đầy Đủ)

Được viết bởi vào ngày 06/10/2026 lúc 10:16 | 20 lượt xem

Nối TradingView Alert Vào Lệnh MT5 Bằng Webhook Bot (Hướng Dẫn Đầy Đủ)

Bạn muốn tín hiệu trên TradingView tự động “biến thành” lệnh trên MetaTrader 5 mà không cần đụng tay? Đó chính xác là điều mà TradingView Alert → Webhook → MT5 giải quyết. Trong bài viết này, tôi sẽ hướng dẫn bạn từng bước: từ viết tín hiệu Pine Script, cấu hình Webhook Alert, cho đến viết bot Python đặt lệnh lên MT5 bằng thư viện MetaTrader5.

Đây là kiến thức cốt lõi mà khóa Bootcamp TradingView Webhook Bot đào tạo chuyên sâu — nơi bạn được cầm tay thực hành nối tín hiệu TradingView thành lệnh thật trên MT5, Binance và chứng khoán Việt Nam.

Mục lục

  1. Vì sao nên nối TradingView với MT5?
  2. Kiến trúc tổng quan
  3. Chuẩn bị môi trường
  4. Viết tín hiệu Pine Script
  5. Cấu hình Webhook Alert trên TradingView
  6. Viết bot Python nhận Webhook
  7. Kết nối Python với MT5
  8. Đặt lệnh thật (và demo)
  9. Quản lý lệnh: magic number, SL/TP
  10. Chạy thử và gỡ lỗi
  11. Đưa bot lên VPS
  12. Câu hỏi thường gặp
  13. Kết luận

1. Vì sao nên nối TradingView với MT5?

MetaTrader 5 (MT5) là nền tảng giao dịch phổ biến nhất tại Việt Nam cho Forex, vàng và chứng khoán phái sinh. Tuy nhiên, khả năng phân tích biểu đồ và chỉ báo của MT5 (dù có MQL5) không phong phú và tiện dụng bằng TradingView.

Ngược lại, TradingView có hệ sinh thái chỉ báo khổng lồ, giao diện đẹp, nhưng lại không trực tiếp đặt lệnh lên MT5 của bạn.

Vậy nên, nối hai nền tảng này qua Webhook là “combo hoàn hảo”: phân tích bằng TradingView, thực thi bằng MT5. Bạn viết logic tín hiệu một lần trên Pine Script, và mọi broker hỗ trợ MT5 đều có thể nhận lệnh.

2. Kiến trúc tổng quan

Điểm mấu chốt: bot Python phải chạy trên cùng một máy với terminal MT5 (hoặc kết nối được tới nó), vì thư viện MetaTrader5 giao tiếp trực tiếp với terminal đang mở.

3. Chuẩn bị môi trường

Bạn cần:

  • Tài khoản TradingView gói Pro trở lên (Webhook Alert là tính năng trả phí).
  • MT5 đã cài và đăng nhập tài khoản (demo hoặc thật).
  • Python 3.9+ và các thư viện: MetaTrader5, flask.
  • Một nơi chạy bot (máy tính hoặc VPS).

Cài thư viện:

pip install MetaTrader5 flask

Nếu bạn muốn có một lộ trình cài đặt và thực hành được hướng dẫn tận tay thay vì tự mò, hãy xem khóa học Bootcamp TradingView Webhook Bot.

4. Viết tín hiệu Pine Script

Ví dụ đơn giản: tín hiệu mua khi giá cắt lên MA20, tín hiệu bán khi cắt xuống MA20.

//@version=5
indicator("TradingView to MT5 Signal", overlay=true)

fastMA = ta.sma(close, 20)
plot(fastMA, color=color.blue)

buySignal  = ta.crossover(close, fastMA)
sellSignal = ta.crossunder(close, fastMA)

plotshape(buySignal,  style=shape.triangleup,   location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red,   size=size.small)

Sau khi có tín hiệu, bạn cần gửi nội dung JSON qua Alert. Dùng alert() trong Pine Script để đóng gói thông tin:

msg = '{"symbol":"' + syminfo.ticker + '","side":"BUY","tf":"' + timeframe.period + '"}'
if buySignal
    alert(msg, alert.freq_once_per_bar_close)

Lưu ý: syminfo.ticker trả về mã sản phẩm dạng XAUUSD, EURUSD, v.v. Bạn nên chuẩn hóa để khớp với tên symbol trên MT5.

5. Cấu hình Webhook Alert trên TradingView

Trên TradingView:

  1. Bấm Alert (chuông) trên biểu đồ.
  2. Ở mục Condition, chọn chỉ báo của bạn và điều kiện (ví dụ “Buy Signal” = true).
  3. Ở mục Notifications, chọn Webhook URL.
  4. Nhập URL bot của bạn, ví dụ http://IP-VPS:5000/webhook.
  5. Trong ô Message, dán chuỗi JSON như {"symbol":"{{ticker}}","side":"BUY"} hoặc dùng alert() như trên.

Mẹo: TradingView có các biến placeholder như {{ticker}}, {{close}}, {{interval}} — rất tiện để truyền dữ liệu mà không cần nhúng cứng trong Pine Script.

6. Viết bot Python nhận Webhook

Dùng Flask để dựng một endpoint nhận tín hiệu:

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/webhook", methods=["POST"])
def webhook():
    data = request.get_json(silent=True) or {}
    print("Nhan tin hieu:", data)
    # xac thuc token
    if data.get("token") != "SECRET_TOKEN_CUA_BAN":
        return jsonify({"status": "denied"}), 403
    # goi ham dat lenh (phan sau)
    place_order(data)
    return jsonify({"status": "ok"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

Bảo mật: luôn kiểm tra một token bí mật trong payload để tránh kẻ lạ “bắn” Webhook vào bot của bạn. Đừng để endpoint mở hoàn toàn.

7. Kết nối Python với MT5

Thư viện MetaTrader5 cho phép Python nói chuyện với terminal MT5:

import MetaTrader5 as mt5

def connect():
    if not mt5.initialize():
        print("Khong ket noi duoc MT5, loi:", mt5.last_error())
        return False
    print("Da ket noi MT5")
    return True

Lưu ý: MT5 terminal phải đang chạy và đăng nhập tài khoản. Trên máy chủ, hãy để MT5 chạy nền (hoặc dùng chế độ terminal tự khởi động cùng Windows).

8. Đặt lệnh thật (và demo)

Hàm đặt lệnh mua đơn giản:

import MetaTrader5 as mt5

def place_order(data):
    symbol = data.get("symbol", "XAUUSD")
    side   = data.get("side", "BUY")
    volume = float(data.get("volume", 0.01))

    # chuan hoa symbol theo ten MT5
    if not symbol.endswith(("m", "a", "z")):
        pass  # tuy broker, co the can suffix

    point = mt5.symbol_info(symbol).point
    price = mt5.symbol_info_tick(symbol).ask if side == "BUY" else mt5.symbol_info_tick(symbol).bid

    request = {
        "action": mt5.TRADE_ACTION_DEAL,
        "symbol": symbol,
        "volume": volume,
        "type": mt5.ORDER_TYPE_BUY if side == "BUY" else mt5.ORDER_TYPE_SELL,
        "price": price,
        "deviation": 20,
        "magic": 55111,
        "comment": "TradingView Webhook",
        "type_time": mt5.ORDER_TIME_GTC,
        "type_filling": mt5.ORDER_FILLING_IOC,
    }
    result = mt5.order_send(request)
    print(result)

Đây là đoạn code nền tảng. Trong khóa học TradingView Webhook Bot, bạn sẽ học cách xử lý đầy đủ: ký hiệu symbol theo từng broker, khối lượng, kiểm tra margin, xử lý lỗi và đặt SL/TP tự động.

9. Quản lý lệnh: magic number, SL/TP

Magic number là “thẻ định danh” gắn lên mỗi lệnh để bot phân biệt lệnh của mình với lệnh đặt tay (hoặc của bot khác). Điều này rất quan trọng khi bạn chạy nhiều bot trên cùng một tài khoản.

SL/TP tự động: thay vì đặt lệnh rồi mới sửa, bạn có thể đặt SL/TP ngay trong lệnh bằng sl và tp trong request. Công thức phổ biến: SL cách giá vào một khoảng ATR, TP gấp 2–3 lần SL (tỷ lệ R:R).

10. Chạy thử và gỡ lỗi

Trước khi chạy tiền thật, hãy kiểm tra trên tài khoản demo:

  1. Mở biểu đồ trên TradingView, chờ tín hiệu nổ (hoặc dùng Replay để mô phỏng).
  2. Quan sát console Python nhận JSON.
  3. Kiểm tra MT5 có lệnh mới không (đúng symbol, đúng volume, đúng magic).
  4. Kiểm tra log Telegram nếu có.

Lỗi thường gặp: symbol sai tên (thiếu suffix), volume nhỏ hơn bước nhảy tối thiểu, không đủ margin, endpoint Webhook bị tường lửa chặn.

11. Đưa bot lên VPS

Khi bot đã chạy ổn trên máy cá nhân, hãy đưa lên VPS Windows để chạy 24/7:

  1. Thuê VPS, cài Python + MT5.
  2. Đăng nhập tài khoản MT5, bật “Allow Algo Trading”.
  3. Cài bot dưới dạng service (hoặc để tự khởi động cùng Windows).
  4. Mở cổng 5000 (hoặc dùng tunnel) để TradingView gọi tới.
  5. Thêm lớp giám sát: heartbeat + Telegram để biết bot còn sống.

Một hệ thống chạy tiền thật cần được giám sát đúng cách — đây cũng là phần được nhấn mạnh trong Bootcamp TradingView Webhook Bot của HNDL.

12. Câu hỏi thường gặp

TradingView Alert có gửi Webhook miễn phí không?

Không. Webhook Alert cần gói TradingView trả phí (Pro trở lên).

MT5 có cần mở khi bot chạy không?

Có. Thư viện MetaTrader5 giao tiếp với terminal đang mở, nên terminal phải luôn chạy.

Symbol trên TradingView và MT5 có khác nhau không?

Thường có. Ví dụ TradingView ghi XAUUSD, MT5 có thể ghi XAUUSD.m (tuỳ broker). Bạn cần chuẩn hóa tên symbol.

Có cần VPS không?

Nếu chạy giao dịch thật 24/7 thì nên có VPS để máy không bị tắt giữa chừng.

Tôi không biết code, học được không?

Được. Khóa Bootcamp TradingView Webhook Bot thiết kế cho người chưa từng code, dùng AI Code hỗ trợ viết bot.

13. Kết luận

Nối TradingView Alert vào lệnh MT5 bằng Webhook Bot là kỹ năng nền tảng để bạn tự động hóa giao dịch Forex/vàng một cách bài bản. Từ viết Pine Script, cấu hình Alert, đến viết bot Python và đặt lệnh qua thư viện MetaTrader5 — tất cả đều nằm trong tầm tay.

Muốn đi nhanh hơn và có người hướng dẫn tận tay? Tham gia Bootcamp TradingView Webhook Bot: 6 buổi | HNDL — nơi bạn tự tay nối tín hiệu TradingView thành lệnh thật trên MT5.

Bài viết liên quan về TradingView Webhook Bot

?s=120&d=mm&r=g

Hướng Nghiệp Dữ Liệu
33 Bài viết
15.4k Người theo dõi
120k+ Lượt đọc

DNT DIGITAL

🤖 AI CODE: Vibe Code NEEDED! 🚀 🏦 SSI • DNSE • MT5 • Bitget ⚡

Zalo 0934145100
Khóa đào tạo
Hỗ trợ

Được học lại miễn phí · Hỗ trợ trọn đời · Cập nhật miễn phí

Đội ngũ hỗ trợ

Đặng Trí Thanh
Đặng Trí Thanh
Giám đốc Công nghệ DNT Digital
Zalo 0934145100
Mộng Cầm
Mộng Cầm
Hỗ trợ khách hàng · Huấn luyện viên
Zalo 0927909257
Khánh Linh
Khánh Linh
Hỗ trợ khách hàng · Huấn luyện viên
Zalo 0927909582