Webhook 自動下單#
TradingView 的警報系統支援 Webhook,當訊號觸發時自動向指定 URL 發送 HTTP POST 請求。搭配中介伺服器,即可實現 Pine Script 策略的全自動下單。
整體架構#
TradingView 圖表
↓ 策略訊號觸發
Pine Script alert()
↓ HTTP POST + JSON
中介伺服器(Webhook 接收端)
↓ 解析訊息、呼叫 API
券商下單 API
↓
實際成交TradingView 本身不直接與券商連線,你需要自架或使用第三方的 Webhook 中介服務來橋接兩者。
Pine Script 端:設計 Webhook 訊息#
Webhook 訊息通常使用 JSON 格式,由 alert() 或 strategy.entry 的 alert_message 參數發送:
//@version=6
strategy("Webhook 自動下單示範", overlay=true,
default_qty_type=strategy.fixed,
default_qty_value=1)
ma5 = ta.sma(close, 5)
ma20 = ta.sma(close, 20)
// 黃金交叉做多
if ta.crossover(ma5, ma20)
strategy.entry("Long", strategy.long,
alert_message='{"action":"buy","symbol":"{{ticker}}","qty":1,"price":{{close}},"time":"{{timenow}}"}')
// 死亡交叉平倉
if ta.crossunder(ma5, ma20)
strategy.close("Long",
alert_message='{"action":"sell","symbol":"{{ticker}}","qty":1,"price":{{close}},"time":"{{timenow}}"}')TradingView 會自動將 {{ticker}}、{{close}}、{{timenow}} 等佔位符替換為實際數值後,再發送 POST 請求。
設定 Webhook 警報#
- 將策略腳本套用到圖表
- 點選右上角 鬧鐘圖示 → 新增警報
- 條件設為該策略的「任何 strategy() 函式呼叫」
- 觸發設定:每次觸發條件時
- 通知方式:勾選 Webhook URL
- 輸入你的中介伺服器 URL(例如
https://your-server.com/webhook) - 點選 儲存
注意:Webhook 功能需要 TradingView Essential 以上方案(免費方案不支援)。
中介伺服器範例(Python)#
以下是一個使用 Python + Flask 接收 Webhook 的最簡範例:
| |
安全性注意事項#
自動下單系統直接涉及真實資金,以下安全措施不可忽略:
1. 驗證來源#
TradingView 的 Webhook 不包含簽名驗證,任何人都能向你的伺服器發送請求。建議在訊息中加入 密鑰 (Token):
// Pine Script 端加入密鑰
alert_message='{"token":"YOUR_SECRET_TOKEN","action":"buy","symbol":"{{ticker}}"}' | |
2. 使用 HTTPS#
伺服器必須使用 HTTPS,TradingView 不接受 HTTP 的 Webhook URL。
3. 設定下單上限#
在伺服器端限制單次最大下單數量,防止異常訊號造成大量下單。
4. 記錄所有訊號#
保留完整的訊號日誌,方便事後檢查異常。
台灣券商串接#
目前提供 API 的台灣券商(各券商條件不同,請自行確認最新狀況):
| 券商 | API 類型 | 備註 |
|---|---|---|
| 永豐金證券 | FuBon API / SinoPac API | 需開通程式交易帳戶 |
| 富邦證券 | 富邦 API | 需申請 API 授權 |
| 元大證券 | 元大 API | 需洽業務申請 |
| 第一金證券 | 第一金 API | 需申請 |
各券商的 API 申請條件和費用持續變動,建議直接聯繫各券商確認最新規定。
常見問題#
Q:Webhook 可靠嗎?會漏訊號嗎?
TradingView 的 Webhook 並非 100% 保證送達,在網路不穩或伺服器忙碌時可能有延遲或遺失。建議:
- 在伺服器端記錄每筆訊號的時間戳,定期與持倉狀態比對
- 實作重試機制
- 不要完全依賴 Webhook 做單,保持人工監控
Q:可以在免費方案使用 Webhook 嗎?
不行。Webhook 功能需要 Essential 以上付費方案。
Q:Pine Script 策略和指標都能用 Webhook 嗎?
都可以。策略用 alert_message 參數,指標用 alertcondition() 或 alert() 函式,在設定警報時填入 Webhook URL 即可。