Quickstart TradingView
Il tuo primo alert TradingView in 10 minuti
Copia l'URL webhook del tuo account TheConnector, incollala in TradingView, invia un segnale di test e verifica lo stato nella dashboard.
Dettagli tecnici
Stati e scadenza restano espliciti.
Webhook ingress, ACK, Delivered, BrokerRejected, Expired, ttl_ms, no replay, symbol mapping e routing sono utili quando il primo test è chiaro.
La chiave è nel percorso. Account/platform solo con routing condiviso.
Non usare ttl_ms: WebhookIngress non lo legge oggi. Se perde la finestra, scade.
Comando rejected/expired/offline appare in Transactions.
Generatore
Messaggio accettato da WebhookIngress
Messaggio alert
Incolla questo JSON in Message. Webhook URL usa l'URL account.
Validatore dry-run
Valida sintassi senza webhook
Contratto attuale
Campi letti oggi da WebhookIngress
action
Obbligatorio. Accetta anche side, command, type, msgtype.
symbol
Obbligatorio per comandi trading. Accetta anche pair, ticker, instrument, market, asset.
risk
Rischio numerico inviato al robot. Usa volume/lot/lots/fixedVolume per lotti esatti.
sl / tp
I nomi attuali sono sl e tp, con alias stoploss/stop_loss e takeprofit/take_profit.
price
Richiesto solo per pendenti: buystop, buylimit, sellstop, selllimit.
source
Etichetta opzionale, utile per identificare TradingView o Pine Script in diagnosi.
id / streamId
Opzionale ma consigliato per diagnosi. Il server ne genera uno se manca.
account / platform
Opzionale usando l'URL webhook dell'account dal dashboard.
Non mescolare chiave e account.
Usa once per bar close e poi Transactions.
Pine Script
Esempi del parser attuale
MT4 / MT5
//@version=5
indicator("TC first alert", overlay=true)
longSignal = ta.crossover(ta.sma(close, 9), ta.sma(close, 21))
if longSignal
message = "{\"action\":\"buy\",\"symbol\":\"" + syminfo.ticker + "\",\"risk\":1,\"sl\":20,\"tp\":40,\"source\":\"TradingView\",\"id\":\"" + syminfo.ticker + "-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)
Lotti esatti
//@version=5
indicator("TC fixed lots", overlay=true)
shortSignal = ta.crossunder(ta.ema(close, 12), ta.ema(close, 26))
if shortSignal
message = "{\"action\":\"sell\",\"symbol\":\"" + syminfo.ticker + "\",\"volume\":\"0.10\",\"sl\":25,\"tp\":50,\"source\":\"TradingView\",\"id\":\"fixed-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)
Ordine pendente cTrader
//@version=5
indicator("TC pending", overlay=true)
breakout = close > ta.highest(high, 20)[1]
if breakout
message = "{\"action\":\"buystop\",\"symbol\":\"" + syminfo.ticker + "\",\"price\":" + str.tostring(high, format.mintick) + ",\"risk\":1,\"sl\":20,\"tp\":45,\"source\":\"TradingView\",\"id\":\"pending-" + str.tostring(time) + "\"}"
alert(message, alert.freq_once_per_bar_close)