一個警示到底是什麼
一個 Pine 警示是一個掛在腳本上的條件。當那個條件在最新一根 K 線上成立時,TradingView 會送出一個通知——email、簡訊、推播或 webhook。對一個策略來說,內建的警示類型是「Order fills only」與「Order fills and ...」,它們在每一次模擬下單時觸發。
自訂警示模式
longSignal = ta.crossover(fast, slow)
alertcondition(longSignal, title="Long signal", message="SMA cross long on {{ticker}} at {{close}}")
alertcondition 吃一個條件(序列 bool)、一個標題,以及一個訊息模板。{{ticker}} 與 {{close}} 這類佔位符會在觸發時被代入。
策略警示
對策略來說,用內建的警示類型「Order fills only」——Pine 會為每一次成交送出一包描述該次成交的 JSON。多數自動化平台(3Commas、Pineconnector、自訂券商)都吃這個 JSON。
webhook 目的地
TradingView 付費方案讓你把警示導到一個 webhook URL。你把警示內容 POST 到你自己的伺服器,由它轉譯成券商 API 呼叫。這就是一個 Pine 策略如何透過一家沒有原生 TradingView 整合的券商下出實單。
JSON 訊息模板
strategy.entry("Long", strategy.long, when=longSignal)
strategy.exit("X", "Long", stop=close - stopDist, limit=close + stopDist * 2)
if strategy.position_size > 0 and strategy.position_size[1] == 0
alert('{"action":"buy","ticker":"' + syminfo.ticker + '","qty":' + str.tostring(contracts) + ',"sl":' + str.tostring(close - stopDist) + ',"tp":' + str.tostring(close + stopDist * 2) + '}', alert.freq_once_per_bar_close)
alert() 函式讓你在特定的 K 線事件上送出一個自訂 JSON 訊息。用 alert.freq_once_per_bar_close 來做到「只在 K 線收盤且條件仍然成立時觸發」——這可以避免 K 線內的洗盤。
從訊號到成交
Pine 不會下實單。這條鏈是:Pine 觸發警示 → webhook → 你的伺服器 → 券商 API → 實單成交。每一跳都是一個可能壞掉的地方,所以先在紙上測試。
該從這裡帶走什麼
策略是簡單的部分。困難的是接線。先用紙上交易跑那些警示訊息、驗證整條鏈,然後用你券商允許的最小規模上線。