Démarrage TradingView
Votre première alerte TradingView en 10 minutes
Copiez l'URL webhook de votre compte TheConnector, collez-la dans TradingView, envoyez un signal de test, puis vérifiez son statut dans le tableau de bord.
Détails techniques
Les statuts et l'expiration restent explicites.
Webhook ingress, ACK, Delivered, BrokerRejected, Expired, ttl_ms, no replay, symbol mapping et routage sont utiles une fois le premier test compris.
La clé d'accès est le segment d'URL. Le compte et la plateforme peuvent être résolus depuis cette clé ; ajoutez account/platform dans le JSON seulement pour un routage partagé.
Ne mettez pas ttl_ms dans l'alerte : WebhookIngress actuel ne le parse pas. Si le dispatch temps réel rate la fenêtre, la commande expire et n'est pas rejouée.
Une commande rejetée, expirée ou offline est visible dans Transactions avec la raison.
Générateur
Message TradingView accepté par WebhookIngress
Collez ce JSON exact dans le champ Message de TradingView. Le champ Webhook URL reçoit l'URL du compte copiée depuis le dashboard.
Validateur dry-run
Valider la syntaxe sans envoyer de webhook
Contrat actuel
Champs lus aujourd'hui par WebhookIngress
action
Obligatoire. Également accepté : side, command, type, msgtype.
symbol
Obligatoire pour les commandes trading. Également accepté : pair, ticker, instrument, market, asset.
risk
Risque numérique transmis au robot. Utilisez volume/lot/lots/fixedVolume pour des lots exacts.
sl / tp
Les noms actuels sont sl et tp, avec alias stoploss/stop_loss et takeprofit/take_profit.
price
Obligatoire uniquement pour les ordres pending : buystop, buylimit, sellstop, selllimit.
source
Libellé optionnel, utile pour identifier TradingView ou Pine Script dans le diagnostic.
id / streamId
Optionnel, mais recommandé pour le diagnostic. Le serveur en génère un s'il est absent.
account / platform
Optionnel avec l'URL webhook du compte copiée depuis le dashboard.
Gardez la clé d'accès et le compte ensemble. Les mélanger est la cause de rejet la plus courante.
Utilisez once per bar close pour un premier test, puis inspectez la timeline Transactions.
Pine Script
Exemples conformes au parser actuel
//@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)
//@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)
//@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)