Tạo Alert TradingView gửi Webhook JSON: hướng dẫn từng bước 2026
Phần lớn người mới mất vài ngày loay hoay ở đúng một chỗ: tạo được Alert nhưng webhook không hoạt động, hoặc webhook chạy nhưng nội dung gửi sang hỏng khiến bot không đọc được. Trong khi đó, nếu làm đúng thứ tự, việc này chỉ mất khoảng 20 phút.
Bài viết này là hướng dẫn chi tiết từng bước — từ việc hiểu Alert trong TradingView hoạt động ra sao, chọn đúng loại alert, viết nội dung JSON có biến động, bật đúng tuỳ chọn chống spam, cho tới kiểm thử bằng webhook.site và xử lý 8 lỗi thường gặp nhất. Cuối bài có bộ mẫu JSON dùng ngay cho MT5, Binance/Bybit và chứng khoán Việt Nam.
Nếu bạn chưa nắm bức tranh tổng thể (Webhook là gì, bot nằm ở đâu trong luồng), đọc trước: TradingView Webhook là gì?
Trả lời nhanh
Để tạo Alert TradingView gửi Webhook JSON, bạn làm 5 việc: (1) mở hộp thoại Alert (chuột phải trên chart → Add alert), (2) chọn điều kiện kích hoạt (chỉ báo, đường vẽ, hoặc lệnh của strategy), (3) dán Webhook URL của endpoint nhận tín hiệu, (4) viết nội dung Message là một chuỗi JSON dùng các biến như {{ticker}}, {{close}}, {{interval}}, (5) chọn Once Per Bar Close để alert chỉ bắn một lần khi nến đã đóng.
Điều kiện tiên quyết quan trọng nhất: gói TradingView của bạn phải hỗ trợ webhook. Nếu trong hộp thoại Alert không có ô Webhook URL, gói hiện tại chưa hỗ trợ — bạn cần nâng cấp gói.
Sai sót phổ biến nhất không phải ở bước tạo alert, mà ở nội dung Message: thiếu dấu ngoặc, thừa dấu phẩy, hoặc dùng biến không tồn tại khiến JSON hỏng và bot không parse được.
Alert trong TradingView là gì và có mấy loại?
Alert là một quy tắc bạn đặt trên chart: "khi điều kiện X xảy ra thì làm Y" — Y có thể là hiện thông báo, gửi email, gửi app, hoặc gọi webhook.
Có bốn nhóm alert bạn cần phân biệt, vì cách chúng sinh dữ liệu khác nhau:
| Loại alert | Đặt ở đâu | Dùng khi nào |
|---|---|---|
| Alert trên chỉ báo | Nút đồng hồ/chuông trên chỉ báo, hoặc Add alert → Condition = tên chỉ báo | Bạn có chỉ báo riêng hoặc chỉ báo công khai và muốn báo khi nó đổi trạng thái |
| Alert trên đường vẽ | Chuột phải vào đường trendline/ngang → Add alert on… | Muốn báo khi giá chạm vùng hỗ trợ/kháng cự bạn tự vẽ |
| Alert trên giá | Add alert → Condition = Symbol/Price | Báo khi giá vượt ngưỡng cụ thể (đơn giản, ít dùng cho bot) |
| Alert trên strategy | Tab Strategy Tester → Alerts | Bạn dùng strategy() trong Pine Script và muốn alert khi strategy vào/ra lệnh |
Với bot giao dịch tự động, hai loại dùng nhiều nhất là alert trên chỉ báo và alert trên strategy. Alert trên chỉ báo cho bạn linh hoạt tối đa; alert trên strategy có sẵn các biến như {{strategy.order.action}} nên payload thường sạch hơn.
Một điểm cần nhớ: Alert không phải bot. Alert chỉ phát thông báo. Nó không biết khối lượng tài khoản bạn là bao nhiêu, không biết bạn đang có vị thế nào, và không tự sửa lỗi khi lệnh bị sàn từ chối. Toàn bộ phần đó nằm ở phía nhận webhook.
Điều kiện để webhook hoạt động
Trước khi mất thời gian cấu hình, hãy xác nhận 4 điều kiện sau. Thiếu một điều là cả quy trình đổ:
1. Gói TradingView có hỗ trợ webhook. Trong hộp thoại Alert, mục Notifications phải có ô Webhook URL. Nếu chỉ thấy Email/App/Popup, gói hiện tại chưa hỗ trợ.
2. Endpoint phải công khai và dùng HTTPS. TradingView cần gọi được URL đó từ internet. http://localhost:5000 không bao giờ hoạt động khi alert chạy thật. Với môi trường phát triển, hãy dùng một dịch vụ tunnel (ngrok, cloudflared) để có URL HTTPS tạm.
3. Endpoint phải trả lời nhanh. Nếu bot của bạn xử lý mất 30 giây mới trả về, phía TradingView sẽ coi như thất bại và ghi log lỗi. Hãy trả về 200 ngay, rồi đẩy tác vụ nặng vào hàng đợi xử lý sau.
4. URL phải ổn định. Đổi domain, đổi đường dẫn, hết hạn chứng chỉ SSL — tất cả đều làm alert ngừng gửi trong im lặng. Đây là lý do bạn cần giám sát "nhịp tim": nếu 24 giờ không có alert nào trong khi thị trường đang chạy, có gì đó đã sai.
Chuẩn bị trước khi bấm tạo Alert
Danh sách ngắn để bạn không phải quay lại sửa:
- Một endpoint test — vào
webhook.sitelấy URL tạm. Đây là bước quan trọng nhất mà 90% người mới bỏ qua: bạn phải nhìn thấy đúng nội dung JSON mình thiết kế trước khi nối vào bot thật. - Danh sách trường dữ liệu bot cần — tối thiểu: mã giao dịch, hướng lệnh, giá, khung thời gian, thời điểm. Nếu bot cần SL/TP, thêm hai trường đó.
- Tên chiến lược — một chuỗi ngắn (ví dụ
hull-rsi-v2). Khi chạy nhiều chiến lược trên cùng tài khoản, đây là trường giúp bạn biết lệnh nào của chiến lược nào. - Bảng khung thời gian bạn sẽ chạy: 5m, 15m, 1H, 4H hay 1D. Khung càng nhỏ, càng phải chú ý chống spam alert.
- Kế hoạch xử lý trùng tín hiệu — bot sẽ khoá theo khoá nào:
(symbol, action, time)là lựa chọn tốt nhất.
Nếu bạn dùng chỉ báo có sẵn (không tự viết Pine), vẫn cần kiểm tra: chỉ báo đó có plot() hoặc alertcondition() hay không. Chỉ báo không có hai thứ này thì không thể đặt alert trên nó — bạn phải dùng alert giá/đường vẽ thay thế.
Các bước tạo Alert gửi Webhook
Bước 1 — Mở hộp thoại Alert. Trên chart, bấm chuột phải → Add alert, hoặc dùng nút đồng hồ báo thức ở thanh công cụ. Cách nhanh nhất là tổ hợp phím tắt nếu bạn đã quen.
Bước 2 — Chọn Condition. Ở khung Condition, chọn nguồn tín hiệu:
- Chọn symbol và khung thời gian sẽ áp dụng alert. Alert gắn với một khung thời gian cụ thể — alert tạo trên khung 15m sẽ không tự chạy trên khung 1H.
- Chọn chỉ báo (
Hull MA,RSI, hoặc chỉ báo riêng của bạn), rồi chọn trigger: cắt lên, cắt xuống, hoặc bất kỳ thay đổi nào.
Bước 3 — Dán Webhook URL. Mở mục Notifications, tích chọn Webhook URL và dán địa chỉ endpoint. Bao gồm cả token nếu bạn dùng token trong URL, ví dụ https://bot.tenmien.com/tv-signal?token=abc123.
Bước 4 — Viết Message là JSON. Đây là phần quyết định. Ví dụ tối thiểu:
{"symbol":"{{ticker}}","action":"buy","price":{{close}},"tf":"{{interval}}","strategy":"hull-rsi","time":"{{time}}"}Và bản đầy đủ hơn có SL/TP, dùng plot trong chỉ báo:
{"symbol":"{{ticker}}","action":"buy","price":{{close}},"sl":{{plot_0}},"tp":{{plot_1}},"tf":"{{interval}}","strategy":"hull-rsi","time":"{{time}}"}Ba lưu ý khi viết Message:
- Số thì không bọc trong dấu ngoặc kép (
{{close}}chứ không phải"{{close}}") — nếu bọc, bot của bạn sẽ phải tự chuyển chuỗi thành số và dễ sinh lỗi. - Chuỗi thì phải có dấu ngoặc kép (
"{{ticker}}"). - Viết trên một dòng, không xuống dòng tuỳ tiện. Nhiều lỗi "JSON không hợp lệ" đến từ việc TradingView chèn ký tự xuống dòng khi bạn gõ message nhiều dòng.
Bước 5 — Chọn chế độ kích hoạt. Ở mục Options (hoặc Trigger), chọn:
- Once Per Bar Close — lựa chọn đúng cho hầu hết bot. Alert chỉ bắn sau khi nến đã đóng, dữ liệu ổn định, không bắn lại giữa nến.
- Once Per Bar — bắn ngay khi điều kiện đúng trong nến đang chạy. Nhanh hơn nhưng có thể bắn nhiều lần trong cùng một nến nếu điều kiện dao động.
- Only Once — alert tự tắt sau lần bắn đầu tiên. Dùng khi test.
- Once Per Minute — chế độ chống spam cho alert không gắn nến.
Bước 6 — Đặt tên và lưu. Đặt tên có quy ước, ví dụ BTCUSDT-15m-hull-rsi-buy. Khi bạn có 20 alert, tên lộn xộn sẽ khiến việc kiểm tra trở thành ác mộng. Nếu chỉ báo có tuỳ chọn, bật "Notify on app" song song để bạn cũng nhận thông báo trên điện thoại — hữu ích khi cần đối chiếu bot có bỏ sót tín hiệu hay không.
Bước 7 — Kiểm thử ngay. Dùng nút Test trong hộp thoại alert nếu có (khi webhook URL đang là webhook.site, bạn sẽ thấy request hiện ra). Nếu không có nút test, hãy tạm đặt điều kiện dễ kích hoạt (ví dụ "giá cắt lên chính nó") để alert bắn ngay trong vài nến.
Thiết kế nội dung JSON: bảng biến và 3 mẫu thực dụng
Các biến hay dùng
| Biến | Giá trị | Kiểu trong JSON |
|---|---|---|
{{ticker}} | Mã giao dịch, ví dụ BTCUSDT, XAUUSD, SSI | Chuỗi |
{{exchange}} | Sàn/nguồn dữ liệu | Chuỗi |
{{close}} {{open}} {{high}} {{low}} | Giá của nến vừa đóng | Số |
{{volume}} | Khối lượng nến | Số |
{{interval}} | Khung thời gian: 5, 15, 60, 1D | Chuỗi |
{{time}} | Thời điểm alert | Chuỗi thời gian |
{{plot_0}}, {{plot_1}} | Giá trị plot thứ 0, 1 của chỉ báo bạn chọn | Số |
{{strategy.order.action}} | buy / sell (chỉ có khi alert trên strategy) | Chuỗi |
{{strategy.position_size}} | Khối lượng vị thế hiện tại | Số |
Quy tắc vàng: chỉ gửi những gì bot thực sự cần. Payload càng dài càng dễ lỗi và càng dễ bị cắt.
Mẫu 1 — Tín hiệu vào lệnh crypto (Binance/Bybit)
{"symbol":"{{ticker}}","action":"buy","price":{{close}},"sl":{{plot_0}},"tp":{{plot_1}},"tf":"{{interval}}","strategy":"tv-hull-rsi","ts":"{{timenow}}"}Mẫu 2 — Tín hiệu cho MT5 (Forex, khối lượng theo lot)
{"symbol":"{{ticker}}","action":"sell","price":{{close}},"sl":{{plot_0}},"tp":{{plot_1}},"lots":0.10,"tf":"{{interval}}","strategy":"mt5-hedge","ts":"{{timenow}}"}Mẫu 3 — Tín hiệu cho chứng khoán Việt Nam (khối lượng theo số lượng cổ phiếu)
{"symbol":"{{ticker}}","action":"buy","price":{{close}},"qty":100,"tf":"1D","strategy":"vn-stock-trend","ts":"{{timenow}}"}Với chứng khoán Việt Nam, lưu ý đặc thù T+2,5 (thời gian tiền và cổ phiếu về tài khoản) và phiên giao dịch có giới hạn giá trần/sàn. Bot không nên gửi lệnh ngoài phiên, và nên kiểm tra giá tín hiệu có nằm trong biên độ cho phép hay không trước khi đặt.
Chống spam alert: ba lớp bảo vệ
Spam alert là vấn đề nghiêm trọng hơn bạn tưởng: một alert sai cấu hình có thể bắn hàng trăm tín hiệu, bot vào hàng trăm lệnh, tài khoản cháy trong vài phút.
Lớp 1 — Ở phía TradingView:
- Luôn dùng Once Per Bar Close cho bot theo nến.
- Đặt Expiration cho alert nếu chiến lược chỉ có hiệu lực trong một giai đoạn.
- Không đặt nhiều alert trùng điều kiện trên cùng một symbol/khung.
Lớp 2 — Ở phía bot:
- Chống trùng theo khoá
(symbol, action, time): cùng một tín hiệu không xử lý hai lần. - Giới hạn tần suất: tối đa N tín hiệu mỗi phút cho mỗi symbol.
- Giới hạn vị thế đồng thời: nếu đã có vị thế mở trên symbol đó, bỏ qua tín hiệu mới (hoặc xử lý theo quy tắc cộng/đảo vị thế bạn định nghĩa trước).
Lớp 3 — Ở phía tài khoản:
- Trần lỗ trong ngày: chạm ngưỡng thì bot tự dừng và cảnh báo.
- Trần số lệnh mỗi ngày: phòng khi thuật toán sinh tín hiệu liên tục do lỗi chỉ báo.
- Nút dừng khẩn cấp: một endpoint
POST /stopđể bạn tắt bot từ xa, và cách đóng toàn bộ vị thế bằng một lệnh.
Ba lớp này bù trừ cho nhau. Nếu chỉ có một lớp, rủi ro vẫn còn lớn; nếu có đủ ba, ngay cả một lỗi cấu hình alert cũng chỉ gây thiệt hại giới hạn.
Kiểm thử alert: quy trình 4 bước
Bước 1 — Nhìn thấy payload. Dùng webhook.site hoặc một endpoint log đơn giản. Mục tiêu duy nhất: xác nhận nội dung JSON đúng như thiết kế, các biến đã được thay bằng giá trị thật, không có {{...}} nào còn sót.
Bước 2 — Kiểm tra JSON có parse được không. Nhiều người chỉ liếc mắt thấy "trông đúng" rồi bỏ qua. Hãy copy nội dung nhận được, dán vào một công cụ kiểm tra JSON, hoặc chạy JSON.parse trong console trình duyệt. Bước này mất 10 giây và phát hiện phần lớn lỗi.
Bước 3 — Cho bot thật xử lý nhưng chưa gửi lệnh. Thêm một cờ DRY_RUN = true trong bot: mọi thứ chạy như thật nhưng hàm gọi API sàn bị vô hiệu, chỉ ghi log ra "lẽ ra tôi sẽ đặt lệnh X". Đây là cách an toàn nhất để kiểm tra logic tính khối lượng, SL/TP, chống trùng.
Bước 4 — Chạy trên tài khoản demo ít nhất 3 ngày. Trước khi chạy tiền thật, hãy để bot chạy demo qua cả phiên Á, phiên Âu và phiên Mỹ. Nhiều lỗi chỉ xuất hiện khi thanh khoản thay đổi hoặc khi sàn bảo trì.
Sau bốn bước này, chuyển sang tiền thật với khối lượng nhỏ nhất có thể và tăng dần. Đừng bắt đầu bằng khối lượng đầy đủ chỉ vì demo đã chạy tốt.
8 lỗi thường gặp và cách sửa
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
| Không có ô Webhook URL | Gói TradingView chưa hỗ trợ webhook | Kiểm tra gói, nâng cấp nếu cần |
| Alert không gửi dù đã bật webhook | Endpoint chết, HTTPS lỗi, hoặc URL sai | Test endpoint bằng trình duyệt/Postman trước |
| Bot báo lỗi parse JSON | Message thiếu/thừa dấu, xuống dòng, biến không tồn tại | Viết message một dòng, kiểm tra bằng công cụ validate JSON |
| Biến không được thay | Sai cú pháp placeholder hoặc dùng biến không hợp lệ với loại alert đó | Đối chiếu bảng biến, ưu tiên biến có trong alert strategy |
| Alert bắn nhiều lần trong một nến | Dùng Once Per Bar thay vì Once Per Bar Close | Đổi sang Once Per Bar Close |
| Bot vào 2–3 lệnh cho cùng một tín hiệu | Không có chống trùng ở phía bot | Thêm khoá (symbol, action, time) |
| Chỉnh sửa alert làm mất webhook | Một số trường hợp phải nhập lại URL sau khi sửa điều kiện | Mở lại alert kiểm tra lại ô Webhook URL |
| Alert chỉ chạy khi mở trình duyệt | Hiểu nhầm: alert chạy phía server TradingView, không phụ thuộc máy bạn | Kiểm tra lại điều kiện và trạng thái alert (có thể đã hết hạn) |
Một lưu ý quan trọng về hành vi: alert chạy trên server của TradingView, không phải trên máy bạn. Bạn tắt máy, alert vẫn bắn. Ngược lại, nếu bot của bạn chết thì tín hiệu vẫn được gửi đi nhưng không ai xử lý — và TradingView không gửi lại.
Bảo mật khi dùng webhook trong URL
Khi bạn dán webhook URL có token vào TradingView, URL đó được lưu trong cấu hình alert. Ba rủi ro bạn cần quản lý:
Rủi ro 1 — Lộ token. Token nằm trong URL có thể xuất hiện trong log của proxy, log của server, hoặc ảnh chụp màn hình bạn chia sẻ khi hỏi bài. Biện pháp: dùng token dài, đổi định kỳ, và không dùng chung token cho nhiều mục đích.
Rủi ro 2 — Người khác bắn lệnh giả. Nếu biết URL, người khác có thể gửi payload tự chế để bot mở lệnh. Biện pháp mạnh nhất là xác thực chữ ký HMAC trên body, kèm whitelist IP của TradingView nếu hạ tầng của bạn hỗ trợ.
Rủi ro 3 — Payload giả mạo giá. Kể cả khi request hợp lệ, hãy kiểm tra tính hợp lý: giá trong tín hiệu không được lệch quá X% so với giá thị trường hiện tại; khối lượng tính ra không vượt trần bạn đặt. Đây là "van an toàn cuối" chống lại cả lỗi chỉ báo lẫn tấn công.
Một chi tiết nhỏ nhưng hữu ích: đặt tên endpoint khó đoán (/tv-signal-9f3a2c) thay vì /webhook. Ngăn dò quét tự động tuy không thay thế được xác thực, nhưng giảm đáng kể lượng request rác.
Từ alert tới lệnh thật: ba thứ alert không làm được
Sau khi alert đã chạy trơn tru, nhiều người tưởng mình đã có bot. Không hẳn. Alert không làm được ba việc, và đó chính là phần việc của bot:
1. Tính khối lượng lệnh. Alert không biết tài khoản bạn có bao nhiêu tiền, mức rủi ro mỗi lệnh bạn chọn là bao nhiêu. Bot phải tính khối lượng từ % rủi ro × số dư / khoảng cách SL.
2. Đặt và quản lý SL/TP thật. Alert có thể gửi giá SL/TP, nhưng đặt được lệnh bảo vệ hay không là ở API sàn. Và nếu đặt SL thất bại (lỗi mạng, sai khoảng cách tối thiểu của sàn), bot phải phát hiện và xử lý ngay — đây là kịch bản nguy hiểm nhất trong toàn hệ thống.
3. Đối soát và tự phục hồi. Bot phải định kỳ so vị thế thật ở sàn với sổ log của mình. Chênh lệch có thể xảy ra khi lệnh khớp một phần, khi bạn đóng tay, hoặc khi bot restart giữa chừng.
Nếu bạn chỉ làm phần alert mà bỏ ba phần này, hệ thống có thể chạy tốt trong nhiều ngày rồi đổ vỡ đúng vào lúc thị trường biến động mạnh nhất — khi đó slippage lớn, API sàn chậm và mọi lỗi nhỏ đều bị khuếch đại.
Checklist tạo alert chuẩn cho bot
Trước khi bấm lưu alert cuối cùng, đối chiếu danh sách này:
- ✅ Gói TradingView có ô Webhook URL.
- ✅ Webhook URL dùng HTTPS, endpoint trả lời nhanh.
- ✅ Message là JSON hợp lệ, viết một dòng, số không bọc ngoặc kép.
- ✅ Có đủ trường:
symbol,action,price,tf,strategy,time. - ✅ Có
sl/tpnếu bot dùng để đặt lệnh bảo vệ. - ✅ Chọn Once Per Bar Close (bot theo nến).
- ✅ Đã test qua webhook.site và thấy biến được thay đúng.
- ✅ Bot có chống trùng tín hiệu và giới hạn vị thế đồng thời.
- ✅ Có trần lỗ trong ngày và nút dừng khẩn cấp.
- ✅ Đã chạy DRY_RUN và demo ít nhất 3 ngày.
Làm đủ 10 điểm này, bạn có một alert "sạch" — phần khó còn lại chỉ là kết nối API sàn và vận hành.
Quản lý alert khi chạy nhiều symbol
Khi bạn chạy từ 10 symbol trở lên, cách tổ chức alert quan trọng không kém nội dung alert.
Cách 1 — Một alert cho mỗi symbol (phổ biến nhất). Ưu: cô lập lỗi, dễ bật/tắt từng mã. Nhược: số lượng alert tăng theo số symbol, khó quản lý khi lên vài chục mã.
Cách 2 — Dùng watchlist + một chỉ báo quét nhiều mã. Ưu: ít alert. Nhược: payload phải chứa {{ticker}} chính xác, và một số loại alert không hỗ trợ quét watchlist tuỳ gói.
Cách 3 — Alert trên strategy chạy trên một danh mục. Ưu: có sẵn {{strategy.order.action}}. Nhược: phụ thuộc giới hạn của Strategy Tester về số symbol và khung thời gian chạy đồng thời.
Dù chọn cách nào, hãy đặt tên theo quy ước cố định: <SYMBOL>-<TF>-<strategy>-<buy|sell>. Khi có sự cố, bạn nhìn tên là biết ngay alert nào đang gửi payload sai, thay vì phải mở từng cái để đọc.
Một mẹo vận hành hữu ích: giữ một alert "canary" — một alert đơn giản trên symbol thanh khoản cao, chạy khung nhỏ, chỉ để xác nhận đường ống webhook còn thông. Nếu canary im lặng quá lâu, bạn biết vấn đề nằm ở hạ tầng chứ không phải ở chiến lược.
Nhật ký alert: cách biết alert có bỏ sót tín hiệu
Webhook là kênh một chiều, nên nếu bot bỏ sót tín hiệu bạn sẽ không nhận được cảnh báo nào. Muốn phát hiện "im lặng bất thường", hãy dựng ba lớp đối chiếu:
- Đếm theo ngày. Bot ghi lại số tín hiệu nhận được mỗi ngày cho mỗi chiến lược. Bình thường con số này dao động trong một khoảng; nếu về 0 trong khi thị trường vẫn chạy, đó là dấu hiệu đường ống đứt.
- So với thông báo trên app. Bật thông báo app song song với webhook. Thỉnh thoảng đối chiếu: app báo 5 tín hiệu mà bot chỉ nhận 4 thì có một tín hiệu đã mất — và bạn có cơ hội tìm nguyên nhân trước khi mất lệnh lớn.
- Heartbeat. Bot gửi một thông báo "còn sống" mỗi giờ. Nếu 2 giờ không có heartbeat, hệ thống giám sát sẽ báo động. Cách này phát hiện cả trường hợp bot chết và trường hợp VPS bị treo.
Ba lớp này rẻ, dễ làm, và là khác biệt lớn giữa người chạy bot nghiêm túc với người chạy bot "thử cho vui". Rủi ro lớn nhất của auto trading không phải lệnh sai, mà là hệ thống dừng hoạt động mà bạn không biết.
Tổng kết
Tạo Alert TradingView gửi Webhook JSON không khó: đi đúng 5 bước, viết đúng một chuỗi JSON, chọn đúng chế độ Once Per Bar Close. Cái khó nằm ở phần sau — biến webhook thành lệnh thật một cách an toàn.
Ba nguyên tắc nên mang theo:
- Test bằng webhook.site trước, đừng đoán.
- Chống spam ba lớp: TradingView, bot, tài khoản.
- DRY_RUN trước, demo sau, tiền thật với khối lượng nhỏ nhất.
Nếu bạn muốn làm trọn chuỗi TradingView → Webhook → Bot → API sàn với người hướng dẫn từng buổi, Bootcamp TradingView Webhook Bot gồm 6 buổi online (20:00–22:00 Thứ 2, khai giảng 19/10/2026), học phí 990.000đ, tặng kèm 12 tháng phần mềm giám sát VPS. Bạn sẽ tự tay dựng webhook và đưa bot vào lệnh thật trên MT5, Binance/Bybit hoặc chứng khoán Việt Nam — kể cả khi chưa từng viết code.
Đọc tiếp trong cụm bài:
- TradingView Webhook là gì? Hướng dẫn A–Z
- Khóa Lập trình Bot Auto Trading không cần biết code
Câu hỏi thường gặp
Làm sao biết gói TradingView của tôi có hỗ trợ webhook?
Mở hộp thoại Alert và xem mục Notifications. Nếu có ô Webhook URL thì gói của bạn hỗ trợ. Nếu chỉ có Email, App, Popup, Show chart, Sound thì gói hiện tại chưa hỗ trợ webhook và bạn cần nâng cấp.
Alert có chạy khi tôi tắt máy tính không?
Có. Alert chạy trên server của TradingView, không phụ thuộc vào máy hay trình duyệt của bạn. Tuy nhiên nếu bot phía nhận tín hiệu bị chết, alert vẫn được gửi nhưng không ai xử lý — TradingView sẽ không gửi lại.
Nên chọn "Once Per Bar" hay "Once Per Bar Close"?
Dùng Once Per Bar Close cho hầu hết bot theo nến: alert chỉ bắn sau khi nến đã đóng nên dữ liệu ổn định và không bắn lặp giữa nến. Once Per Bar chỉ nên dùng khi bạn cần phản ứng ngay trong nến và bot đã có lớp chống trùng tin cậy.
Webhook URL có cần HTTPS không?
Có. Endpoint phải truy cập được từ internet và dùng HTTPS. http://localhost:5000 sẽ không hoạt động khi alert chạy thật; khi phát triển, hãy dùng dịch vụ tunnel để có URL HTTPS tạm.
Vì sao alert của tôi báo lỗi khi gửi webhook?
Bốn nguyên nhân phổ biến: endpoint không phản hồi (bot chết hoặc firewall chặn), chứng chỉ SSL hết hạn, URL sai hoặc thiếu token, và bot trả về quá chậm nên bị coi là thất bại. Kiểm tra theo đúng thứ tự này.
Biến {{plot_0}} không hoạt động, tôi sai ở đâu?
{{plot_0}}, {{plot_1}} chỉ có khi alert được tạo trên một chỉ báo có plot() và bạn chọn đúng chỉ báo đó làm Condition. Nếu bạn tạo alert trên giá hoặc trên đường vẽ, các biến plot không tồn tại và sẽ không được thay giá trị.
Có thể gửi nhiều tín hiệu khác nhau từ một alert không?
Không. Mỗi alert bắn một nội dung duy nhất. Muốn gửi payload khác nhau cho mua và bán, bạn cần hai alert (một cho điều kiện mua, một cho điều kiện bán) — hoặc dùng một biến trong message để phân biệt hướng lệnh.
Có cách nào để bot không vào lệnh trùng khi alert bắn lại?
Có. Ở phía bot, khoá chống trùng theo (symbol, action, time) — cùng một tín hiệu chỉ xử lý một lần. Kết hợp thêm giới hạn số vị thế đồng thời và giới hạn tín hiệu mỗi phút cho mỗi symbol.
Weekly Digest — Nhận Bản Tin Hàng Tuần
Nhận các bài viết phân tích kỹ thuật chuyên sâu, thuật toán giao dịch tự động (Trading Bot) và các giải pháp công nghệ mới nhất từ Hướng Nghiệp Dữ Liệu.
