Pine Script Cho Webhook Bot: Viết Tín Hiệu Mua Bán Gửi Đến Bot

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

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

  1. Pine Script là gì và vì sao quan trọng?
  2. Cú pháp Pine Script cơ bản
  3. Chỉ báo vs Chiến lược (indicator vs strategy)
  4. Viết điều kiện mua/bán
  5. Dùng alert() để gửi tín hiệu
  6. Đóng gói dữ liệu JSON
  7. Ví dụ đầy đủ: MA crossover gửi Webhook
  8. Mẹo tránh tín hiệu nhiễu
  9. Backtest tín hiệu trên TradingView
  10. Câu hỏi thường gặp
  11. 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

?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