Bài viết gần đây
-
Bảo Mật Webhook Bot Trading: API Key, VPS Và 7 Lỗi Nguy Hiểm
Tháng 10 6, 2026 -
TradingView Webhook Bot Vs EA MT5 (MQL5): Nên Chọn Cái Nào?
Tháng 10 6, 2026 -
Xây Bot Webhook TradingView Bằng Python + Flask (Source Code Mẫu)
Tháng 10 6, 2026 -
Pine Script Cho Webhook Bot: Viết Tín Hiệu Mua Bán Gửi Đến Bot
Tháng 10 6, 2026
Pine Script Cho Webhook Bot: Viết Tín Hiệu Mua Bán Gửi Đến Bot
Pine Script Cho Webhook Bot: Viết Tín Hiệu Mua Bán Gửi Đến Bot
Pine Script là ngôn ngữ lập trình riêng của TradingView, và cũng là “bộ não” của mọi bot Webhook: nó quyết định khi nào tín hiệu mua/bán xuất hiện. Nếu viết Pine Script tốt, bot của bạn sẽ nhận tín hiệu đúng lúc, đúng sản phẩm, không nhiễu.
Bài viết này hướng dẫn bạn viết Pine Script cho Webhook Bot: từ cú pháp cơ bản, tạo tín hiệu, đến dùng hàm alert() để gửi JSON qua Webhook. Đây cũng là phần kiến thức nền tảng trong Bootcamp TradingView Webhook Bot.
Mục lục
- Pine Script là gì và vì sao quan trọng?
- Cú pháp Pine Script cơ bản
- Chỉ báo vs Chiến lược (indicator vs strategy)
- Viết điều kiện mua/bán
- Dùng alert() để gửi tín hiệu
- Đóng gói dữ liệu JSON
- Ví dụ đầy đủ: MA crossover gửi Webhook
- Mẹo tránh tín hiệu nhiễu
- Backtest tín hiệu trên TradingView
- Câu hỏi thường gặp
- Kết luận
1. Pine Script là gì và vì sao quan trọng?
Pine Script là ngôn ngữ kịch bản chạy trên nền tảng TradingView. Nó cho phép bạn:
- Vẽ chỉ báo, đường xu hướng, vùng giá.
- Định nghĩa điều kiện mua/bán.
- Phát cảnh báo (Alert) — bao gồm cả gửi Webhook.
Với bot Webhook, Pine Script đóng vai trò lớp tín hiệu: toàn bộ logic “khi nào vào lệnh” nằm ở đây, còn bot chỉ làm nhiệm vụ thực thi.
2. Cú pháp Pine Script cơ bản
Một đoạn Pine Script tối giản:
//@version=5
indicator("My Indicator", overlay=true)
ma = ta.sma(close, 20)
plot(ma, color=color.blue)
//@version=5: khai báo phiên bản Pine.indicator(...): khai báo đây là chỉ báo (overlay=true vẽ lên biểu đồ giá).ta.sma(close, 20): đường trung bình động 20 nến.plot(...): vẽ lên biểu đồ.
3. Chỉ báo vs Chiến lược (indicator vs strategy)
- indicator: chỉ để phân tích và phát Alert — dùng cho bot Webhook.
- strategy: có thể backtest và mô phỏng lệnh ngay trên TradingView — dùng để kiểm chứng ý tưởng trước.
Với bot Webhook, bạn thường dùng indicator (kết hợp alert()) vì lệnh thật do bot ngoài thực hiện. Nhưng dùng strategy để backtest trước là một cách hay.
4. Viết điều kiện mua/bán
Ví dụ chiến lược MA crossover:
fast = ta.sma(close, 9)
slow = ta.sma(close, 21)
buySignal = ta.crossover(fast, slow)
sellSignal = ta.crossunder(fast, slow)
ta.crossover(a, b): true khi a cắt lên trên b.ta.crossunder(a, b): true khi a cắt xuống dưới b.
Bạn có thể kết hợp nhiều điều kiện: RSI quá mua/quá bán, volume tăng, v.v.
5. Dùng alert() để gửi tín hiệu
Hàm alert() trong Pine Script cho phép gửi thông báo kèm nội dung tùy chỉnh:
if buySignal
alert("Mua " + syminfo.ticker + " tai " + str.tostring(close), alert.freq_once_per_bar_close)
alert.freq_once_per_bar_close: chỉ gửi một lần mỗi nến đóng — tránh spam.
6. Đóng gói dữ liệu JSON
Bot đọc JSON, nên bạn cần đóng gói tín hiệu dạng JSON. Ví dụ:
msg = '{"symbol":"' + syminfo.ticker + '","side":"BUY","price":' + str.tostring(close) + '}'
if buySignal
alert(msg, alert.freq_once_per_bar_close)
Lưu ý dấu ngoặc kép bên trong chuỗi — Pine dùng " nên chuỗi JSON cần cẩn thận. Cách an toàn là đặt toàn bộ message trong Alert (phần Message của hộp thoại) thay vì nhúng trong code.
7. Ví dụ đầy đủ: MA crossover gửi Webhook
//@version=5
indicator("MA Crossover Webhook", overlay=true)
fast = ta.sma(close, 9)
slow = ta.sma(close, 21)
plot(fast, color=color.blue)
plot(slow, color=color.orange)
buy = ta.crossover(fast, slow)
sell = ta.crossunder(fast, slow)
plotshape(buy, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
buyMsg = '{"symbol":"' + syminfo.ticker + '","side":"BUY"}'
sellMsg = '{"symbol":"' + syminfo.ticker + '","side":"SELL"}'
if buy
alert(buyMsg, alert.freq_once_per_bar_close)
if sell
alert(sellMsg, alert.freq_once_per_bar_close)
Sau đó, trong hộp thoại Alert, bạn chọn điều kiện “Buy” hoặc “Sell” và chọn Webhook URL.
8. Mẹo tránh tín hiệu nhiễu
- Dùng
alert.freq_once_per_bar_closeđể không báo nhiều lần trong một nến. - Thêm bộ lọc: chỉ vào lệnh khi RSI trong vùng hợp lý, hoặc khi volume vượt trung bình.
- Tránh dùng tín hiệu trên khung thời gian quá nhỏ nếu bot không đủ nhanh.
- Test kỹ trên Replay trước khi nối vào bot thật.
9. Backtest tín hiệu trên TradingView
Trước khi gửi tín hiệu cho bot, hãy dùng strategy để backtest ý tưởng ngay trên TradingView:
//@version=5
strategy("MA Cross Backtest", overlay=true)
fast = ta.sma(close, 9)
slow = ta.sma(close, 21)
if ta.crossover(fast, slow)
strategy.entry("Long", strategy.long)
if ta.crossunder(fast, slow)
strategy.close("Long")
Bảng Strategy Tester sẽ cho bạn biết lợi nhuận, drawdown, số lệnh… để đánh giá chiến lược có đáng chạy không.
10. Câu hỏi thường gặp
Pine Script có khó học không?
Không quá khó nếu bạn hiểu logic giao dịch. Cú pháp đơn giản, có tài liệu và cộng đồng lớn.
Có thể dùng Pine Script mà không biết code không?
Bạn có thể nhờ AI Code sinh Pine Script từ mô tả chiến lược, nhưng vẫn cần hiểu cơ bản để chỉnh sửa.
Tín hiệu gửi đi có bị trễ không?
Webhook gửi gần như tức thì. Độ trễ chủ yếu ở mạng và bot xử lý.
Học Pine Script + bot bài bản ở đâu?
Khóa Bootcamp TradingView Webhook Bot dạy Pine Script cơ bản, tạo Alert JSON và nối tín hiệu thành lệnh thật trên MT5, Binance, chứng khoán VN.
11. Kết luận
Pine Script chính là nơi chiến lược của bạn “sống”. Viết tín hiệu mua/bán rõ ràng, đóng gói thành JSON và gửi qua alert() — đó là bước đầu tiên và quan trọng nhất để có một bot TradingView Webhook hoạt động chính xác.
Tiếp tục hành trình với khóa học Bootcamp TradingView Webhook Bot: 6 buổi | HNDL.
Bài viết liên quan về TradingView Webhook Bot
- TradingView Webhook Bot là gì?
- Nối TradingView Alert vào lệnh MT5
- TradingView Webhook Binance: giao dịch crypto
- Bot TradingView cho chứng khoán Việt Nam
- Cách tạo Webhook trong TradingView
- Xây bot Webhook bằng Python + Flask
- Webhook Bot vs EA MT5 (MQL5)
- Bảo mật Webhook Bot giao dịch
- Backtest chiến lược trước khi chạy bot