Documentazione · Webhook

Payload webhook TradingView

Campi esatti letti da WebhookIngress quando un alert TradingView arriva a TheConnector.

Video YouTube (dominio senza cookie), caricato solo quando avvii la riproduzione.
Tutorial senza voce — è tutto scritto sullo schermo.

Obiettivo

Questa pagina documenta il contratto pubblico WebhookIngress per gli alert TradingView. Non è il payload degli ordini manuali dalla dashboard.

Percorso di accesso

  • Nell'area clienti: Account > aprire un conto di trading > copiare la chiave di accesso.
  • In TradingView: Alert > Notifications > incollare https://webhook.theconnector.fr/YOUR_ACCESS_KEY in Webhook URL.
  • Nel campo Message di TradingView, incollare il messaggio: JSON o una riga, come preferisce.
Schermata impostazioni account
Apra i dettagli dell'account e copi codice account o chiave di accesso dalla dashboard reale.

Due formati, lo stesso risultato

WebhookIngress legge due formati di messaggio e li tratta esattamente allo stesso modo: un oggetto JSON oppure una sola riga di testo. Usi quello che preferisce. Su una riga vengono prima l'azione e il simbolo, poi gli altri campi nella forma nome=valore, separati da virgole.

JSON minimo

json
{
  "action": "buy",
  "symbol": "EURUSD",
  "risk": 1,
  "sl": 0.2,
  "tp": 0.4,
  "priceMode": "percent"
}

priceMode indica l'unità di sl, tp e price nell'alert stesso: price, pips o percent. Qui lo stop è allo 0,2% dall'ingresso e il target allo 0,4%, qualunque sia la modalità prezzo del conto; senza priceMode, vale la modalità prezzo del conto.

Campi letti da WebhookIngress

  • action è obbligatorio. Alias, in JSON come su una riga: side, type, command, msgtype. type indica il comando, non un tipo di ordine: buy con type=limit dà due comandi diversi, e l'alert viene rifiutato — un ordine pendente ha il suo comando, buylimit, selllimit, buystop o sellstop, con il prezzo di ingresso in price.
  • symbol è obbligatorio per i comandi trading. Alias: pair, ticker, instrument, market, asset.
  • risk viene passato come rischio numerico. Per lotti esatti usa volume, lot, lots, fixedVolume o size.
  • sl e tp sono i nomi attuali per stop loss / take profit. Alias: stoploss, stop_loss, takeprofit, take_profit.
  • price serve solo per ordini pendenti: buystop, buylimit, sellstop, selllimit.
  • expiration (alias expiry) dà a un ordine pendente una durata, in minuti: il broker lo cancella se non è scattato entro quel tempo, anche con il robot spento. Esempio: "expiration": 60. Viene ignorato sugli ordini a mercato. Richiede il robot 0.0.30 o successivo: con un robot più vecchio l'avviso viene rifiutato invece di lasciare l'ordine pendente a tempo indeterminato. Se il broker non accetta una scadenza su quel simbolo, l'ordine viene rifiutato, mai piazzato senza.
  • priceMode fissa l'unità di sl, tp e price per questo alert: price, pips o percent. Senza, vale la modalità prezzo del conto.
  • ticket, orderId, order_id, positionId o position_id servono solo quando si punta a un ordine o posizione nota.
  • account / accountCode e platform sono opzionali con l'URL account; servono solo in setup di routing condiviso.
  • streamId o id può essere inviato per il tracciamento. Il server lo conserva nel proprio id, preceduto da TV- (17 caratteri al massimo, trattini cambiati in _), seguito da _ e da 8 caratteri. Due alert inviati con lo stesso id sono quindi due alert distinti: il secondo non viene mai trattato come un duplicato. Se manca, il server crea un id.
  • tag (alias comment) dà il nome alla strategia a cui appartiene l'avviso. In un ingresso viene scritto nel commento della posizione presso il broker; in una chiusura limita la chiusura alle posizioni che portano quel nome, così più strategie possono condividere un conto e un simbolo. Viene reso minuscolo e tagliato a 12 caratteri, ed è rispettato dal robot 0.0.21 in poi — sotto quella versione una chiusura con nome viene rifiutata invece di essere eseguita sulla posizione di un'altra strategia. Se invia un suo streamId, sostituisce quello generato e il nome non raggiunge mai il commento della posizione: ometta streamId quando usa i nomi.
  • clientRequestedAtUtc, requestedAtUtc o requestedAt possono essere inviati come timestamp UTC informativo.

Lo stesso messaggio su una riga

Lo stesso ordine di sopra, scritto su una sola riga:

text
buy,EURUSD,risk=1,sl=0.2,tp=0.4,priceMode=percent

Cosa non inviare

Non faccia affidamento su ttl_ms: il parser WebhookIngress attuale non lo legge. vol_lots viene letto come volume. Ogni prezzo mantiene l'unità in cui è scritto: un suffisso fissa l'unità di quel solo valore (sl_pips, sl_price, sl_pct, tp_pips, tp_price, tp_pct, e entry_pips, entry_price, entry_pct per l'ingresso di un ordine pendente); sl, tp e price senza suffisso prendono il priceMode (o unit) scritto nell'alert, altrimenti la modalità prezzo dell'account. Il robot applica una sola unità a tutto l'ordine: un alert i cui prezzi chiedono due unità viene quindi rifiutato, mai inviato senza il suo stop loss o take profit — sl_pips con tp_price, oppure sl senza suffisso accanto a tp_pips (anche su un account impostato in pip; aggiunga priceMode=pips). Metta un suffisso su tutti i prezzi, o su nessuno. Anche un alert che scrive due volte lo stesso campo con due valori diversi viene rifiutato (sl=10 e poi sl=20, oppure "type":"sell" con "action":"buy"); lo stesso valore due volte conta una volta sola.

Avvisi scritti per WebhookTrade

Un avviso nel formato di WebhookTrade viene letto così com'è per symbol, action (buy_limit, sell_stop…), price, stop_loss, take_profit, size (lotti) ed expiration (minuti); comment dà il nome alla strategia, come tag; username, api_key, broker e account_type vengono ignorati. Delle azioni di chiusura, close_all viene letto come closeall; al posto di close_buy, close_sell e close_pending, invia closelong, closeshort, oppure cancellong e cancelshort. Gli altri parametri di stop, obiettivo, dimensione, trailing e break-even — sl_percentage, tp_percentage, sl_distance, tp_distance, sl_distance_price, tp_distance_price, stop_amount, profit_amount, size_percentage, risk_percentage, size_multiplier, ts_…, breakeven_… — fanno rifiutare l'avviso, con un messaggio che li nomina: eseguito senza di loro, l'ordine partirebbe senza il suo stop o con un'altra dimensione. Scrivili con sl / tp e priceMode, volume o risk, e betrigger / trailtrig / traildist.

Ha già degli alert? Li tenga

Non deve riscrivere i suoi alert. Un messaggio su una riga funziona così com'è, anche se inizia con un ID di licenza: in ogni alert di TradingView sostituisca soltanto l'URL del webhook con il suo, quello che termina con la sua chiave di accesso. Il valore posto prima del comando viene allora ignorato, e i nomi dei parametri come sl_pips, tp_price o vol_lots vengono tradotti automaticamente. Un'eccezione: un alert che mescola unità di prezzo (sl_pips con tp_price, per esempio) ora viene rifiutato: scriva tutti i prezzi nella stessa unità.

Un caso specifico del broker? Contatta il supporto