Temps de lecture : … min

Webhooks TradingView vers l'API de votre broker

Écrivez une stratégie Pine Script avec Claude ou ChatGPT, validez-la dans le Strategy Tester de TradingView, puis redirigez ses alertes via un webhook vers un runtime cloud qui appelle directement l'API REST de votre broker. Sans terminal MetaTrader ni VPS Windows.

Les alertes TradingView peuvent envoyer une requête POST avec un corps JSON à n'importe quelle URL HTTPS que vous contrôlez. TradingHost héberge cette URL sous forme de conteneur toujours actif, analyse la charge utile et transmet l'ordre au broker. Conçu pour être indépendant du broker : les courtiers forex, CFD, actions, futures et plateformes d'échange crypto fonctionnent tous de la même manière, tant que le broker propose une API REST ou websocket.

Latence estimée : l'alerte côté serveur de TradingView se déclenche environ 1 à 3 secondes après la clôture de la bougie, puis le point de terminaison REST de votre broker ajoute son propre accusé de réception d'ordre (généralement 100 à 500 ms). Le temps de trajet aller-retour de bout en bout est de quelques secondes, pas de quelques millisecondes. Ce workflow convient aux stratégies de swing trading, de position et d'intrajournalier lent ; il n'est pas adapté au scalping, à l'arbitrage de latence ou à l'exécution en moins d'une minute.

Section 01 · Fonctionnement global

Quatre éléments, une seule boucle

L'ensemble du workflow repose sur quatre outils effectuant chacun une tâche précise. TradingView décide quand trader. GitHub stocke le code du récepteur. TradingHost exécute ce code dans le cloud et héberge l'URL du webhook. Le broker exécute l'ordre. Une fois que vous avez identifié le rôle de chaque outil, le reste de ce guide n'est qu'une formalité.

  • Votre graphique et source de signaux

    TradingView

    Héberge votre stratégie Pine Script, exécute le Strategy Tester et déclenche des alertes lorsque les conditions d'entrée ou de sortie sont remplies. Les alertes peuvent envoyer un POST JSON à une URL de webhook.

  • Le code de votre récepteur

    GitHub

    Stocke le petit service récepteur qui analyse la charge utile de TradingView et appelle l'API REST du broker. Contrôlé par version, et privé si vous le souhaitez.

  • Votre runtime cloud

    TradingHost

    Récupère le code du récepteur depuis GitHub, construit un conteneur et expose une URL de webhook HTTPS stable vers laquelle TradingView peut envoyer des requêtes POST. Toujours actif. Pas besoin de laisser un ordinateur allumé.

  • Votre plateforme d'exécution

    API du broker

    Reçoit l'ordre de votre conteneur TradingHost via l'API REST du broker. Indépendant du broker : tout courtier ou plateforme d'échange disposant d'une API REST ou websocket documentée fonctionne de la même manière.

De zéro à un signal en direct

  1. Écrivez une stratégie Pine Script sur TradingView, en binôme avec Claude ou ChatGPT pour rédiger le code.
  2. Backtestez la stratégie dans le Strategy Tester de TradingView avant d'envisager de la lancer en réel.
  3. Forkez un modèle de récepteur de webhook TradingHost sur votre compte GitHub et personnalisez-le pour votre broker.
  4. Connectez un runtime TradingHost au dépôt et choisissez une région ; le runtime expose alors une URL de webhook publique.
  5. Créez une alerte TradingView sur la stratégie, collez l'URL du webhook et configurez le corps du message en JSON avec les placeholders strategy.order.
  6. Lorsque l'alerte se déclenche, TradingView envoie une requête POST à TradingHost, votre conteneur analyse la charge utile et votre appel d'API broker passe l'ordre.

Temps de trajet aller-retour : l'alerte côté serveur de TradingView se déclenche 1 à 3 secondes après la clôture d'une bougie, et le point de terminaison REST du broker accuse généralement réception de l'ordre en 100 à 500 ms. Au total, comptez quelques secondes, pas des millisecondes. C'est parfait pour les stratégies de swing trading et d'intrajournalier lent ; ce n'est pas adapté au scalping ou à l'arbitrage de latence.

Section 02 · En un coup d'œil

En un coup d'œil

Workflow
Alerte Pine Script TradingView vers récepteur de webhook cloud vers API REST du broker
Version de Pine Script
Pine Script v6 (version actuelle du langage TradingView)
Transport des alertes
Requête HTTPS POST vers une URL de webhook fournie par l'utilisateur
Ports autorisés
TradingView livre uniquement sur les ports 80 et 443 ; les autres ports sont rejetés
Délai de réponse
Le récepteur doit répondre dans les trois secondes, sinon la requête est annulée
Format du payload
Corps du message d’alerte ; envoyé en tant qu’application/json lorsque le corps est un JSON valide
Placeholders de la stratégie
{{strategy.order.action}}, {{strategy.order.contracts}}, {{ticker}}, {{close}} et similaires
Abonnement requis
TradingView Plus, Premium ou Ultimate (les abonnements Essential et gratuit n’incluent pas les webhooks)
Exigences du compte
L’authentification à deux facteurs doit être activée sur le compte TradingView
Runtime du récepteur
Service conteneurisé actif 24h/24 sur TradingHost, déployé depuis GitHub
Langages
Tout langage capable d’exécuter un petit serveur HTTP dans un conteneur (Python, Node, Go, Rust, etc.)
Brokers pris en charge
Indépendant du broker : tout broker ou exchange disposant d’une API REST ou WebSocket documentée (forex, CFD, actions, futures, crypto)
Exemple de broker
L’API REST v20 d’OANDA est utilisée comme une illustration simple et rapide de l’appel du récepteur vers le broker ; cette page n’est pas spécifique à OANDA
Rôle de TradingHost
Runtime, déploiement, logs, bilans de santé (health checks), sélection de la région, identifiants de broker chiffrés
Rôle de TradingView
Graphiques, exécution de Pine Script, génération d’alertes, envoi de webhooks
Affiliation
TradingHost est indépendant et n’est pas affilié à TradingView, PineConnector, OANDA ou tout autre service mentionné

Section 03 · Rédiger du Pine Script avec l’IA

Programmez la stratégie en binôme avec Claude ou ChatGPT

Pine Script est un langage léger et bien documenté, et la génération actuelle de grands modèles de langage a assimilé la documentation publique de Pine Script v6 de TradingView. Décrivez votre stratégie en langage naturel dans Claude ou ChatGPT (ou dans Cursor avec l’un de ces modèles) : ce qu’il faut surveiller, ce qui déclenche un achat (long), ce qui déclenche une vente (short), comment dimensionner l’ordre et quand sortir. Copiez-collez le code généré dans le Pine Editor de TradingView et laissez l’éditeur signaler les éventuelles erreurs de syntaxe.

Deux points essentiels à préciser au modèle. Premièrement, demandez-lui un script de stratégie Pine Script (il doit déclarer strategy() au lieu de indicator()), car seules les stratégies exposent les placeholders {{strategy.order.action}} et {{strategy.order.contracts}} dont vous aurez besoin dans le corps du webhook. Deuxièmement, demandez au modèle de déclencher ses entrées avec strategy.entry() et ses sorties avec strategy.close(), et d’écrire les notifications ponctuelles avec la fonction alert() plutôt qu’avec alertcondition() ; la fonction moderne alert() expose les mêmes placeholders de stratégie et accepte un argument freq qui contrôle si l’alerte se déclenche à chaque tick, une fois par barre ou une fois à la clôture de la barre.

Lisez chaque ligne de code générée par le modèle. Le code de trading ne pardonne pas les bugs subtils liés au dimensionnement des ordres, à l’état des positions et au comportement intra-barre. Demandez au modèle d’expliquer tout calcul complexe avant de l’accepter. Si vous souhaitez un flux de travail AI-IDE plus poussé (Pine combiné à un récepteur Python ou Go, le tout dans un seul éditeur), la page du workflow Cursor détaille cette approche.

Section 04 · Backtester avant de passer en réel

Exécutez le Strategy Tester avant de connecter le webhook

Le Strategy Tester de TradingView exécute votre stratégie Pine Script sur l’historique disponible du graphique, en affichant le profit net, le profit factor, le drawdown, le taux de réussite et la liste complète des transactions simulées. Les onglets Résumé des performances, Liste des transactions et Propriétés vous donnent suffisamment d’éléments pour décider si la stratégie mérite d’être connectée à un broker réel.

Effectuez cette étape avant de créer une alerte TradingView avec une URL de webhook. Un webhook actif sur une stratégie non validée est le moyen le plus coûteux de découvrir un bug.

Section 05 · Alertes et webhooks

Configurer l’alerte TradingView et l’URL du webhook

Ouvrez la boîte de dialogue Créer une alerte sur votre graphique, sélectionnez la stratégie comme condition, puis passez à l’onglet Notifications et cochez URL de webhook. Collez l’endpoint de webhook TradingHost comme URL. Le corps que vous saisissez dans le champ Message correspond à ce que TradingView enverra via une requête POST à cette URL lors du déclenchement de l’alerte.

Rédigez le message au format JSON. TradingView détecte automatiquement le JSON valide et définit le Content-Type de la requête sur application/json, ce que votre récepteur attend. Le corps minimal d’une alerte de stratégie contient le ticker, le sens (issu de {{strategy.order.action}}), la taille (issue de {{strategy.order.contracts}}) et un secret partagé que votre récepteur vérifie avant de transmettre quoi que ce soit au broker.

Règles de transport documentées par TradingView

Méthode
HTTP POST. Le corps du message d’alerte est envoyé comme corps de la requête.
Ports
Ports 80 et 443 uniquement. Les URL de webhook contenant tout autre port explicite sont rejetées.
Content-Type
application/json lorsque le corps du message d’alerte est un JSON valide. Sinon, texte brut.
Délai d’attente (Timeout)
Trois secondes. Si le récepteur ne répond pas dans ce délai, la requête est annulée.
IP sources
TradingView publie les adresses IP de ses webhooks sortants sur l’écran de configuration des alertes. Ajoutez-les à la liste blanche de votre pare-feu ou de votre récepteur de webhooks.
Compte
Les alertes par webhook nécessitent l’authentification à deux facteurs sur le compte TradingView.
Niveau d’abonnement
Les alertes par webhook sont réservées aux abonnements Plus, Premium et Ultimate. Les offres Essential et gratuites n’incluent pas ce mode de transmission.

Variables de message d’alerte

{{ticker}}
Symbole affiché sur le graphique au moment de l’alerte.
{{exchange}}
Code de la plateforme d’échange, le cas échéant.
{{close}}
Prix de clôture de la bougie qui a déclenché l’alerte.
{{volume}}
Volume de la bougie qui a déclenché l’alerte.
{{time}}
Heure d’ouverture de la bougie en UTC.
{{strategy.order.action}}
Renvoie « buy » ou « sell » pour l’ordre de la stratégie déclenchée. Réservé aux alertes de stratégie.
{{strategy.order.contracts}}
Nombre de contrats ou d’unités dans l’ordre exécuté. Réservé aux alertes de stratégie.
{{strategy.order.price}}
Prix d’exécution signalé par la stratégie. Réservé aux alertes de stratégie.
{{strategy.order.id}}
Identifiant attribué à l’ordre par la stratégie. Réservé aux alertes de stratégie.
{{strategy.order.comment}}
Chaîne de commentaire facultative associée à l’ordre par la stratégie.

Une subtilité de Pine Script mérite d’être soulignée : les scripts d’indicateurs peuvent déclencher des alertes avec alertcondition() ou alert(), mais seuls les scripts de stratégie exposent les variables {{strategy.*}}. Si vous souhaitez que le corps du webhook contienne le sens et la taille de la transaction, le script doit déclarer strategy(), et non indicator().

Section 06 · Réception sur TradingHost

Hébergez l’URL du webhook sur un runtime, pas sur votre ordinateur portable

L’URL du webhook appelée par TradingView doit être en ligne dès que le marché est ouvert. Un ordinateur portable n’est pas adapté ; un ordinateur de bureau avec une connexion internet instable non plus ; et un VPS Windows générique fonctionne, mais seulement si vous pensez à appliquer les mises à jour et à laisser le terminal concerné ouvert.

TradingHost vous fournit un conteneur Linux basé sur Kubernetes qui s’exécute à partir d’un dépôt GitHub et expose un point de terminaison HTTPS stable. Votre code de réception peut être écrit comme vous le souhaitez (un gestionnaire Python FastAPI, une route Node Express, un serveur Go net/http), tant qu’il communique en HTTP sur le port 443 et répond dans le délai de trois secondes imposé par TradingView. Lorsque vous poussez du code sur GitHub, TradingHost reconstruit le conteneur et le redéploie ; l’URL du webhook reste inchangée.

Les identifiants de l’API du broker sont stockés sous forme de secrets chiffrés sur le runtime, et non dans votre dépôt GitHub. Le secret partagé que vous insérez dans le corps du message TradingView y est également conservé. Votre récepteur valide ce secret partagé à chaque requête entrante, puis lit les identifiants du broker depuis l’environnement et appelle l’API du broker.

Les journaux (logs) sont diffusés en continu afin que vous puissiez suivre l’ordre des opérations : envoi par TradingView, analyse de la charge utile (payload), soumission de l’ordre, confirmation du broker. En cas d’échec, la ligne de log indique précisément où l’erreur s’est produite.

Section 07 · Exécution chez le broker

N’importe quel broker doté d’une API ; la structure du récepteur reste la même

TradingHost est indépendant des brokers (broker-agnostic). Le conteneur TradingHost ne se soucie pas du broker qui se trouve derrière l’endpoint REST qu’il appelle ; la même structure de récepteur fonctionne que la destination soit un broker forex, actions, contrats à terme (futures) ou une plateforme d’échange crypto. Seuls diffèrent le protocole d’authentification, la symbologie des instruments et les types d’ordres proposés par le broker. Tout le reste demeure identique.

Familles de brokers prises en charge par ce workflow

Forex et CFD
Brokers disposant d’API REST de type v20 ou similaire (OANDA, IG, Switch Markets et d’autres sur /brokers/forex-and-cfd/).
Actions et futures
Brokers disposant de passerelles REST ou FIX (Interactive Brokers et d’autres sur /brokers/stocks-and-futures/).
Plateformes d’échange crypto
Plateformes au comptant (spot) et de dérivés accessibles via REST et websocket (Binance, Bybit, OKX, Coinbase, Kraken et plus de 60 autres sur /brokers/crypto/, principalement via CCXT).
Tout autre type
Tout broker disposant d’une interface d’ordres HTTP documentée. Le modèle de récepteur ci-dessous reste inchangé.

Rôle du récepteur à chaque webhook entrant

  1. Valider le secret partagé contenu dans le corps de l'alerte TradingView avant de transmettre quoi que ce soit.
  2. Associer le ticker TradingView au code d'instrument du broker (la plupart des brokers utilisent une symbologie légèrement différente).
  3. Construire la demande d'ordre avec le sens (achat/vente) encodé dans le signe de la taille, un type d'ordre au marché et la validité temporelle (time-in-force) recommandée par le broker.
  4. Envoyer la requête avec l'en-tête d'authentification du broker (jeton Bearer, charge utile signée par HMAC, OAuth, selon le broker).
  5. Enregistrer la réponse dans les journaux, remonter les erreurs et renvoyer rapidement un statut 200 OK à TradingView dans la limite du délai d'expiration de trois secondes.

Une brève illustration : OANDA v20

OANDA constitue un exemple pratique simple à mettre en œuvre, car sa référence REST v20 est entièrement documentée sur developer.oanda.com et les comptes de démonstration gratuits s'ouvrent facilement. Le principe : un jeton d'accès personnel Bearer dans l'en-tête Authorization, une requête POST vers /v3/accounts/{accountID}/orders avec le corps d'un ordre au marché, adressée à api-fxtrade.oanda.com pour le réel ou api-fxpractice.oanda.com pour la démo. Ce n'est qu'un broker parmi d'autres ; le code du récepteur pour Interactive Brokers, Binance, OKX ou Switch Markets suit la même logique avec le protocole d'authentification et le point de terminaison propres à chaque intermédiaire. Les pages /brokers/ détaillent les spécificités de chaque broker.

Section 07.5 · Sécurité opérationnelle

Les pièges qui coûtent cher en conditions réelles

La transmission des alertes TradingView fonctionne selon le principe du « best-effort ». Les webhooks peuvent être perdus, répétés ou retardés. Les API des brokers peuvent renvoyer des tentatives de reconnexion qui ressemblent à un nouvel ordre. Les bugs de Pine Script peuvent générer des tailles de position bien au-delà du risque prévu par la stratégie. C'est au niveau du récepteur qu'il faut installer la ceinture de sécurité. Voici six garde-fous : chacun correspond à une portion de code du récepteur conçue pour éviter un mode de défaillance impossible à corriger une fois la stratégie lancée.

  1. 01 · Indisponibilité du récepteur

    Que se passe-t-il si le récepteur était hors ligne lors du déclenchement d'une alerte ?

    Par défaut, TradingView ne met pas en file d'attente et ne réessaie pas d'envoyer les webhooks ayant échoué. Si le récepteur renvoie une réponse autre qu'un code 2xx, ou s'il met plus de trois secondes à répondre, l'alerte est abandonnée. La stratégie continue de déclencher des alertes sur les bougies suivantes, mais le signal manqué est définitivement perdu. Garde-fou : simplifiez au maximum le récepteur pour qu'il réponde toujours dans le délai imparti, enregistrez chaque charge utile reçue sur le disque avant tout traitement afin qu'un ordre manqué apparaisse dans les journaux d'exécution, et surveillez la disponibilité du runtime pour savoir si le récepteur était injoignable au moment du signal.

  2. 02 · Alertes en doublon

    TradingView peut déclencher la même alerte plusieurs fois

    Les valeurs Pine Script se mettent à jour à chaque tick au sein d'une bougie en cours. Un appel à alertcondition ou alert configuré sur « À chaque tick » peut se déclencher plusieurs fois pour un même signal logique. Même avec l'option « Une fois par clôture de barre », les tentatives de renvoi de TradingView peuvent parfois transmettre deux fois de suite la même charge utile. Garde-fou : incluez un identifiant stable dans le corps de l'alerte (l'heure de la bougie, l'ID d'ordre généré par la stratégie ou un hash de la charge utile) et rejetez toute charge utile entrante dont l'identifiant a déjà été traité par le récepteur au cours des dernières minutes. Conservez cette clé de dédoublonnement en mémoire ou dans un petit stockage clé-valeur au sein du runtime.

  3. 03 · Idempotence des ordres

    Concevoir chaque appel au broker pour qu'une tentative de renvoi ne crée pas de position en doublon

    La plupart des API REST des brokers acceptent une clé d'idempotence, c'est-à-dire un ID d'ordre fourni par le client que le broker utilise pour dédoubler une même soumission lors des tentatives de renvoi. Configurez cette clé sur chaque ordre placé par le récepteur. Utilisez le même identifiant que pour le dédoublonnement des alertes (l'heure de la bougie ou l'ID d'ordre généré par la stratégie) afin que le récepteur, TradingView et le broker s'accordent sur l'identité de chaque ordre logique. Sans cela, une tentative de renvoi provoquée par une micro-coupure réseau peut exécuter l'ordre deux fois.

  4. 04 · Limite de taille de position

    Plafonner la taille acceptée depuis {{strategy.order.contracts}}

    L'espace réservé strategy.order.contracts de Pine Script indique la taille que la stratégie pense négocier. Un bug dans la logique de la stratégie, une taille de position mal configurée ou une boucle infinie peuvent générer une valeur de contrats bien supérieure à la capacité du compte. Garde-fou : définissez en dur une taille maximale dans le récepteur, indépendamment de la stratégie, et rejetez tout ordre dont la valeur de contrats dépasse cette limite. Le récepteur est le dernier rempart entre un bug Pine et un appel de marge.

  5. 05 · Isolation des identifiants

    Une clé API restreinte par stratégie, jamais de clé maîtresse

    Si une clé API de broker est compromise en raison d'un environnement mal configuré, d'une fuite dans les journaux ou d'un artefact de build, l'impact se limite aux droits de cette clé. Utilisez une clé API distincte par stratégie avec uniquement les autorisations nécessaires (accès au trading oui, retraits non), stockez-la dans le gestionnaire de secrets de TradingHost plutôt que dans le code, et renouvelez les clés après tout incident.

  6. 06 · Simulation avant le réel

    Tester le flux sur un compte de démonstration pendant une semaine avant d'engager du capital

    La plupart des brokers proposent un environnement de démo (paper trading) ou de sandbox qui accepte les mêmes appels API que le compte réel. Dirigez d'abord le récepteur vers la sandbox, laissez tourner la stratégie pendant une semaine avec de vraies alertes TradingView et vérifiez que chaque signal s'est traduit par l'ordre fictif attendu. Le trading réel n'est pas le bon endroit pour découvrir que {{strategy.order.action}} encodé en « buy » au lieu de « long » bloque votre validation d'énumération.

Section 08 · Comparatif PineConnector + MT4/MT5

Pourquoi acheminer un webhook via un runtime cloud plutôt qu'un EA MetaTrader

Le chemin le plus courant pour lier une alerte TradingView à un ordre réel passe par PineConnector, une passerelle tierce qui transmet les alertes à un Expert Advisor (EA) au sein d'un terminal MetaTrader 4 ou MetaTrader 5. L'EA soumet l'ordre via MetaTrader, ce qui impose de laisser le terminal tourner en continu sur une machine Windows. TradingHost supprime entièrement cette étape intermédiaire : le webhook arrive sur un conteneur, le conteneur appelle directement l'API REST du broker, éliminant ainsi le terminal MetaTrader et l'Expert Advisor MQL. GitHub sert de source de vérité, et un conteneur Linux s'exécute dans une région managée plutôt que sur un bureau Windows qu'il faut maintenir actif.

Comparatif direct

CritèrePineConnector + MT4/MT5TradingHost
Chemin d'exécutionWebhook TradingView vers l'EA PineConnector s'exécutant dans un terminal MetaTrader 4 ou MetaTrader 5, qui transmet ensuite l'ordre au broker via MetaTrader.Webhook TradingView vers un conteneur cloud TradingHost, qui appelle ensuite directement l'API REST du broker. Aucun terminal MetaTrader dans le parcours.
Plateforme requiseMetaTrader 4 ou MetaTrader 5 doit être installé, connecté et actif avec l'option AutoTrading activée.Aucun terminal de trading requis. Le code de la stratégie s'exécute dans un conteneur Linux géré par TradingHost.
Machine d'hébergementUne machine Windows maintenue en ligne 24h/24, 7j/7. PineConnector le précise dans sa documentation et indique explicitement que le VPS MetaQuotes n'est pas compatible ; il est recommandé d'utiliser PineConnector Cloud ou un VPS Windows compatible.Le runtime Kubernetes managé de TradingHost dans la région de votre choix (EU ou US-East). Sans bureau Windows ni VPS.
Brokers pris en chargeTout broker proposant un compte MetaTrader 4 ou MetaTrader 5, exécuté via le terminal MetaTrader.Tout courtier disposant d’une API REST ou WebSocket documentée et compatible avec TradingHost, y compris OANDA, IG, Switch Markets, Interactive Brokers, Binance, Bybit, OKX, Coinbase, Kraken et d’autres.
LangageMQL4 ou MQL5 (le langage de script de MetaTrader) au sein de l’EA. Toute personnalisation nécessite de modifier l’EA.N’importe quel langage s’exécutant dans un conteneur : Python, Node, Go, Rust, etc.
Source de véritéLa licence PineConnector et l’EA exécuté dans MetaTrader. La configuration réside sur la machine.Un dépôt GitHub. Push pour déployer ; les logs, les rollbacks et l’historique sont versionnés.
Stockage des identifiantsLes identifiants du courtier sont stockés dans le terminal MetaTrader sur le VPS Windows.Secrets chiffrés associés à l’environnement d’exécution (runtime), jamais dans le dépôt GitHub ni dans le code de la stratégie.
Périmètre opérationnelGérer un VPS Windows, le terminal MetaTrader, la licence de l’EA PineConnector, la connexion au courtier et les alertes TradingView.Gérer un dépôt GitHub, un runtime TradingHost, les identifiants du courtier et les alertes TradingView. Aucun système d’exploitation de bureau à administrer.

Choisissez PineConnector si vous souhaitez spécifiquement continuer à utiliser MetaTrader, si votre courtier ne propose que MT, ou si vous ne voulez pas écrire de code du tout. Choisissez TradingHost si vous préférez accéder directement à l’API REST du courtier sans intermédiaire MetaTrader, si vous souhaitez écrire vos stratégies dans un langage de programmation généraliste, si vous voulez utiliser GitHub comme source de vérité et si vous souhaitez vous affranchir du VPS Windows.

Section 10 · FAQ

Foire aux questions

Oui. TradingView réserve les alertes par webhook aux abonnements Plus, Premium et Ultimate. Les offres Essential et gratuites n’incluent pas l’option de notification par URL de webhook.

TradingView envoie une requête HTTP POST à l’URL de webhook configurée. Le corps de la requête contient le texte saisi dans le champ Message de l’alerte. Si ce corps est un JSON valide, TradingView définit le Content-Type sur application/json ; sinon, la requête est envoyée en texte brut.

TradingView ne documente aucune politique de renvoi ni garantie formelle de distribution. Les règles de transport documentées sont les suivantes : ports 80 and 443 uniquement, et un délai de réponse de trois secondes avant l’annulation de la requête. Considérez la distribution des webhooks comme un service au mieux (best-effort) et concevez votre récepteur pour qu’il soit idempotent.

C’est possible. TradingView publie la liste des adresses IP sources d’où proviennent les webhooks directement sur l’écran de configuration des alertes. Certains récepteurs rejettent toute requête externe à cette liste pour ajouter une couche de sécurité supplémentaire au secret partagé dans le corps du message.

Pine Script v6, la version actuelle du langage. TradingView a indiqué que les futures mises à jour seraient appliquées exclusivement à la v6.

Seuls les scripts de stratégie exposent les variables de substitution {{strategy.order.action}}, {{strategy.order.contracts}}, {{strategy.order.price}} et autres paramètres similaires à utiliser dans le corps JSON. Les scripts d’indicateurs peuvent déclencher des alertes via alert() ou alertcondition(), mais leurs messages d’alerte ne peuvent pas faire référence aux variables strategy.*.

alertcondition() est la primitive d’origine et fonctionne uniquement dans les indicateurs ; sa fréquence est choisie par l’utilisateur dans la boîte de dialogue Créer une alerte. alert() est la fonction la plus récente, elle fonctionne dans les indicateurs et les stratégies, peut être placée dans une portée locale et prend un argument freq (alert.freq_all, alert.freq_once_per_bar, alert.freq_once_per_bar_close) directement dans le code.

Pour le trading en réel, privilégiez une fois à la fermeture de la barre. Pendant la construction d’une barre en temps réel, les valeurs Pine peuvent s’actualiser à chaque tick et différer au moment de la clôture, ce qui risque de déclencher une entrée qui disparaîtra ensuite une fois la barre finalisée. L’option une fois à la fermeture de la barre ne se déclenche que lorsque la barre est confirmée.

PineConnector redirige les webhooks TradingView vers un Expert Advisor MetaTrader 4 ou MetaTrader 5 s’exécutant dans un terminal MetaTrader. La documentation de PineConnector précise que le terminal doit fonctionner en continu, que le VPS MetaQuotes n’est pas compatible et qu’un VPS Windows est requis pour l’hébergement. TradingHost remplace la partie MetaTrader par un conteneur Linux qui appelle directement l’API REST du courtier. Consultez le comparatif VPS Windows pour comprendre la différence d’environnement d’exécution.

Tout courtier disposant d’une interface d’ordres REST ou WebSocket documentée. TradingHost est indépendant des courtiers : courtiers Forex et CFD (OANDA, IG, Switch Markets, etc.), courtiers en actions et contrats à terme (Interactive Brokers, etc.) et plateformes d’échange de cryptomonnaies (Binance, Bybit, OKX, Coinbase, Kraken, etc.). Consultez l’index des courtiers pour voir les plateformes prises en charge.

Seules les parties spécifiques au courtier changent : l’en-tête d’authentification (jeton Bearer, charge utile signée par HMAC, OAuth), la symbologie des instruments et le vocabulaire des types d’ordres. La structure globale (valider le secret, associer le ticker, construire l’ordre, envoyer, journaliser) reste identique. Pour les plateformes crypto, CCXT masque la majeure partie de ces différences.

Sous forme de secrets chiffrés associés au runtime TradingHost, et non dans le dépôt GitHub. Votre récepteur les lit depuis l’environnement au moment de la requête. Consultez la page sur les secrets de la plateforme pour en savoir plus sur la gestion des identifiants.

TradingView, votre courtier et TradingHost sont facturés séparément. Les abonnements pour le runtime TradingHost sont détaillés sur la page des tarifs. Vous n’avez plus à payer pour un VPS Windows, une offre d’hébergement MetaTrader ni une licence distincte de passerelle de webhooks.