Intégration webhook TradingView
Dernière mise à jour: octobre 2026
Transforme automatiquement tes alertes TradingView en ordres réels. Lorsque ton alerte se déclenche, TradingView envoie un webhook à etrink, et notre EtrinkAgent exécute l'achat/la vente sur ton compte MT5 — 24h/24 et 7j/7, même lorsque ton ordinateur est éteint.
Comment ça marche
Alerte TradingView → webhook etrink (vérifie la clé, les limites de symbole et de volume) → file de commandes → EtrinkAgent sur ton terminal MT5 → ton broker. Chaque signal est enregistré dans ton panneau.
Configuration pas à pas
- Dans ton panneau, ouvre Webhook, choisis le compte à associer et clique sur + Nouvelle clé.
- Copie l'URL du webhook affichée une seule fois (garde-la secrète — elle permet de passer des ordres) :
https://api.etrink.com/hooks/etrk_xxxxxxxxxxxxxxxx- Dans TradingView, crée une alerte. Active Webhook URL et colle l'URL ci-dessus.
- Colle le JSON ci-dessous dans le champ Message de l'alerte :
{
"action": "buy",
"symbol": "EURUSD",
"volume": 0.01,
"sl": 0,
"tp": 0,
"id": "{{time}}"
}- Enregistre. Lorsque l'alerte se déclenche, l'ordre est exécuté sur ton compte associé.
Format du message
| Champ | Obligatoire | Description |
|---|---|---|
action | oui | buy · sell · close. close ne fait que clôturer — il n'ouvre jamais de nouvel ordre. |
symbol | oui | Symbole du broker (par ex. EURUSD, XAUUSD) |
volume | non | Taille du lot. Requis pour buy/sell ; soumis à ta limite de volume par compte. |
sl / tp | non | Prix du stop-loss / take-profit (0 = aucun) |
magic | non | Numéro magic MT5 (entier ≥ 0) de l'ordre — utilises-en un par stratégie. Avec close, seules les positions portant ce magic sont clôturées ; sans lui, toutes les positions du symbole sont clôturées. |
closeOpposite | non | true = avant d'ouvrir, clôturer le sens opposé sur le même symbole (un buy clôture les sells, un sell clôture les buys) ; uniquement les positions de même magic si magic est défini. Si le sens opposé ne peut pas être clôturé, le nouvel ordre n'est pas ouvert. |
allowDuplicate | non | Par défaut true. false = ne pas ouvrir de nouvel ordre tant qu'une position dans le même sens (avec le même magic, s'il est défini) est déjà ouverte sur le symbole. Le signal apparaît comme ignoré dans ton panneau — ce n'est pas une erreur. Avec closeOpposite, le sens opposé est d'abord clôturé, puis cette vérification est effectuée. |
comment | non | Commentaire écrit sur l'ordre ouvert dans MT5. 31 caractères au maximum sont utilisés ; les lettres turques deviennent latines (ç → c), les guillemets et emojis sont supprimés. |
id | non | Clé d'idempotence — le même id n'est jamais exécuté deux fois |
test | non | true = valider uniquement, aucun ordre réel |
Des orthographes alternatives sont également acceptées : close_opposite, closeopposite, magicNumber, magic_number, allow_duplicate — ainsi que des valeurs texte comme "true", "false" ou "1001".
Exemples
Vente (sell)
{ "action": "sell", "symbol": "XAUUSD", "volume": 0.05 }Clôturer une position ouverte
{ "action": "close", "symbol": "EURUSD" }Clôturer uniquement les positions d'une stratégie (magic)
{ "action": "close", "symbol": "XAUUSD", "magic": 1001 }Valeurs dynamiques (variables TradingView)
TradingView remplace {{ticker}}, {{strategy.order.action}}, {{close}} et d'autres au moment de l'envoi :
{ "action": "{{strategy.order.action}}", "symbol": "{{ticker}}", "volume": 0.01 }Inversion de stratégie (une seule alerte pour long et short)
Une seule alerte de stratégie suit ton graphique sur MT5 : quand la stratégie passe long, les sells du magic 1001 sont clôturés et un buy est ouvert ; quand elle passe short, c'est l'inverse. Une deuxième position dans le même sens n'est jamais ouverte.
{
"action": "{{strategy.order.action}}",
"symbol": "{{ticker}}",
"volume": 0.01,
"magic": 1001,
"closeOpposite": true,
"allowDuplicate": false,
"comment": "TV strateji A",
"id": "{{timenow}}"
}Exemple Pine Script
Utilise l'appel alert() pour que le message (ton JSON) soit envoyé au webhook lorsque les conditions sont remplies :
//@version=5
strategy("etrink signal", overlay=true)
fast = ta.sma(close, 10)
slow = ta.sma(close, 30)
if ta.crossover(fast, slow)
strategy.entry("Long", strategy.long)
alert('{"action":"buy","symbol":"EURUSD","volume":0.01}',
alert.freq_once_per_bar_close)
if ta.crossunder(fast, slow)
strategy.close("Long")
alert('{"action":"close","symbol":"EURUSD"}',
alert.freq_once_per_bar_close)Tester en toute sécurité
Ajoute "test": true à n'importe quel message (ou utilise le bouton Signal de test du panneau). Toutes les vérifications s'exécutent, l'événement est enregistré comme test, mais aucun ordre réel n'est passé.
Dépannage
- « symbol not allowed » (symbole non autorisé) — le symbole n'est pas dans ta liste autorisée, ou son nom diffère chez ton broker (par ex.
EURUSD.m). - « no running instance » (aucune instance en cours) — le compte associé est arrêté ; il redémarrera automatiquement, puis renvoie le signal.
- Volume refusé — au-dessus de ta limite par compte ; réduis le
volumeou augmente la limite. - Signal « ignoré » —
allowDuplicate: falseet une position dans le même sens était déjà ouverte ; comportement attendu. - Chaque appel apparaît sur la page Signaux de ton panneau avec son statut, son résultat (ticket ou erreur) et le JSON brut — vérifie d'abord là.
Besoin d'aide ? [email protected]