Chỉ báo của bạn trên TradingView đã hiển thị các tín hiệu — nhưng bạn không thể ngồi nhìn biểu đồ 24 giờ. Đây là lúc alertconditionwebhook phát huy tác dụng: Pine kích hoạt cảnh báo, và TradingView gửi một thông điệp (JSON) đến một địa chỉ của bạn, có thể kích hoạt một bot. Hướng dẫn này cho thấy cú pháp đúng trong Pine Script v5, cách dựng payload của webhook và những lưu ý thực tế của người làm tự động hóa. Quan trọng: trading cực kỳ rủi ro và webhook không đảm bảo lợi nhuận — hãy kiểm thử toàn bộ quy trình trên tài khoản demo.

Có tín hiệu rồi nhưng thiếu khâu thực thi? Hãy xem cách một bot bằng Python nhận webhook và giao dịch với quản lý rủi ro — kiểm thử trên tài khoản demo.

Xem bot bằng Python →

alertcondition và alert(): dùng cái nào?

Trong Pine v5 có hai hướng. alertcondition() tạo một “điều kiện” mà bạn chọn thủ công khi tạo cảnh báo trên TradingView. Còn hàm alert() kích hoạt động trong quá trình thực thi và cho phép dựng thông điệp theo thời gian thực. Với webhook có payload động (giá, tài sản), alert() thường linh hoạt hơn; alertcondition() rất tốt cho các tín hiệu cố định và đơn giản.

Cú pháp của alertcondition

alertcondition(condition, title, message)

condition — biểu thức boolean (ví dụ: một điểm cắt nhau).
title — tên hiển thị trong danh sách cảnh báo.
message — văn bản được gửi (có thể là JSON của webhook).

Ví dụ: tín hiệu cắt nhau

//@version=5 indicator(“Alertas EMA – IA Trader Pro”, overlay=true) emaFast = ta.ema(close, 9) emaSlow = ta.ema(close, 21) buy = ta.crossover(emaFast, emaSlow) sell = ta.crossunder(emaFast, emaSlow) plot(emaFast, color=color.green) plot(emaSlow, color=color.red) alertcondition(buy, “Compra”, ‘{“acao”:”BUY”,”ativo”:”{{ticker}}”}’) alertcondition(sell, “Venda”, ‘{“acao”:”SELL”,”ativo”:”{{ticker}}”}’)
Placeholder của TradingView: bên trong thông điệp bạn có thể dùng các biến như {{ticker}}, {{close}}, {{time}}{{interval}} — TradingView sẽ thay chúng bằng giá trị thực tại thời điểm kích hoạt.

Thông điệp động với alert()

Nếu bạn muốn dựng JSON theo thời gian thực (ví dụ: đưa vào giá đã tính), hãy dùng alert() bên trong điều kiện:

if buy msg = ‘{“acao”:”BUY”,”preco”:’ + str.tostring(close) + ‘}’ alert(msg, alert.freq_once_per_bar_close)

Tham số thứ hai điều khiển tần suất: alert.freq_once_per_bar_close chỉ kích hoạt khi nến đóng — được khuyến nghị để tránh các tín hiệu “repaint” trong lúc nến đang chạy.

Cấu hình webhook

Trên TradingView, khi tạo cảnh báo: hãy đánh dấu tùy chọn Webhook URL và dán địa chỉ máy chủ của bạn (ví dụ: một endpoint nhận POST). Thông điệp của cảnh báo trở thành phần thân (body) của yêu cầu. Máy chủ của bạn đọc JSON, xác thực rồi thực thi lệnh qua API của sàn.

Lưu ý bảo mật: bất kỳ ai biết được URL của bạn đều có thể gửi yêu cầu. Hãy đưa một token bí mật vào JSON và xác thực ở máy chủ; dùng HTTPS; và đừng bao giờ để lộ khóa của sàn trong Pine. Webhook chỉ nên mang ý định (BUY/SELL), không bao giờ mang thông tin xác thực.

Những giới hạn cần nói thật

Webhook rất mạnh, nhưng có cạm bẫy: tính năng này phụ thuộc vào gói TradingView của bạn; cảnh báo có thể trễ vài giây (tệ cho scalping rất nhanh); không phải sàn nhị phân nào cũng chấp nhận thực thi từ bên ngoài; và “tự động hóa” không sửa được một chiến lược tồi — nó chỉ thực thi nhanh hơn cái vốn đã thua lỗ. Webhook tốt + chiến lược không có lợi thế = mất tiền nhanh hơn.

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

Có phải trả phí để dùng webhook không?
Có, việc gửi cảnh báo qua webhook phụ thuộc vào các gói trả phí của TradingView. Hãy xác nhận trong gói hiện tại của bạn.

alertcondition hay alert()?
Dùng alertcondition cho các tín hiệu cố định đơn giản; dùng alert() khi cần dựng thông điệp một cách động.

Làm sao tránh tín hiệu bị repaint?
Kích hoạt khi nến đóng (alert.freq_once_per_bar_close) và tránh các điều kiện thay đổi trong lúc nến đang chạy.

TradingView có tự thực thi lệnh không?
Không. Nó chỉ gửi thông điệp. Người thực thi là máy chủ/bot của bạn nhận webhook.

Lưu ý: trading là hoạt động rủi ro cao và đa số nhà giao dịch cá nhân thua lỗ. Nội dung này mang tính giáo dục và kỹ thuật, không cấu thành khuyến nghị đầu tư, chào mời hay tư vấn tài chính. Tự động hóa không dự đoán tương lai cũng không đảm bảo kết quả; kết quả quá khứ không đảm bảo kết quả tương lai. Hãy luôn kiểm thử trên tài khoản demo trước khi mạo hiểm vốn thật và đừng bao giờ đầu tư nhiều hơn số tiền bạn có thể mất.