Pour connecter une stratégie TradingView au Signal Trading de Phemex, collez le modèle JSON ci-dessous dans le champ Message de votre alerte TradingView, renseignez votre signalToken fourni par Phemex, puis envoyez l'alerte à l’URL de webhook de Phemex. Phemex répliquera alors automatiquement vos signaux d’achat/vente. Pour un guide détaillé étape par étape, veuillez consulter cet article > Comment utiliser les bots de trading par signaux sur Phemex ? (Web)
Format d'Alerte
Copiez ce modèle JSON dans le champ Message de l’alerte TradingView. Les variables entre accolades sont celles de la stratégie TradingView et seront automatiquement renseignées lors de l’exécution.
{ "id": "{{strategy.order.id}}", "symbol": "{{ticker}}", "action": "{{strategy.order.action}}", "qty": "{{strategy.order.contracts}}", "price": "{{strategy.order.price}}", "type": "Limit", "marketPosition": "{{strategy.market_position}}", "prevMarketPosition": "{{strategy.prev_market_position}}", "marketPositionSize": "{{strategy.market_position_size}}", "prevMarketPositionSize": "{{strategy.prev_market_position_size}}", "signalToken": "POdKsisSLkUxWXXIcjlx-eh_4UDuqfgYXL2KKX5wbOgazrhgKhdNhLoUb8OQK_xv0RnLdIclDFOOfqL6sfXwzkBJTN6n9v-U4qgwWK5YCtMP38IG1UJ91dsn2cw=", "timestamp": "{{timenow}}"}
Référence des Paramètres
| Paramètre | Type | Valeur | Description |
|---|---|---|---|
| id | Obligatoire | {{strategy.order.id}} depuis TradingView | id - Identifiant de l’ordre. Retourne l’ID de l’ordre exécuté, c’est la chaîne transmise en premier argument lors de l’appel de la fonction générant l’ordre : strategy.entry, strategy.exit ou strategy.order. |
| symbol | Obligatoire | {{ticker}} depuis TradingView | Nom du symbole dans TradingView, identique à celui utilisé sur Phemex. |
| action | Obligatoire | {{strategy.order.action}} depuis TradingView | Action - "buy" ou "sell". Retourne "buy" (achat) pour ouvrir une position longue / fermer une position courte ; "sell" (vente) pour ouvrir une position courte / fermer une position longue. |
| qty | Optionnel | {{strategy.order.contracts}} depuis TradingView | Quantité de l’ordre, valide si la condition d’entrée correspond à celle de TradingView, ex : passer un ordre de 0.001 BTCUSDT (qty=0.001). |
| price | Obligatoire | {{strategy.order.price}} depuis TradingView | Prix du Limit Order. La stratégie transmettra systématiquement des ordres au type "Limit". |
| type | Optionnel | Par défaut "Limit" dans le signal. Peut être modifié en "Market" si nécessaire. | Pour un ordre limite, utilisez "Limit" ; pour un ordre au marché, "Market". |
| marketPosition | Optionnel | {{strategy.market_position}} depuis TradingView | marketPosition - Direction attendue de la position au moment de l’exécution : "long" (acheteur), "flat" (à l’écart du marché), "short" (vendeur). |
| prevMarketPosition | Optionnel | {{strategy.prev_market_position}} depuis TradingView | prevMarketPosition - Direction précédente de la position avant exécution de l’ordre, sous forme de chaîne : "long", "flat" ou "short". |
| marketPositionSize | Optionnel | {{strategy.market_position_size}} depuis TradingView | marketPositionSize - Taille attendue de la position lors de l’exécution de l’ordre. |
| prevMarketPositionSize | Optionnel | {{strategy.prev_market_position_size}} depuis TradingView | prevMarketPositionSize - Taille précédente de la position avant exécution. |
| signalToken | Obligatoire | Fourni par Phemex lors de la création du signal | Code signal - Authentifie la requête. Ce token est généré lors de la création d’un signal sur Phemex et doit être copié dans le message d’alerte TradingView. |
| timestamp | Obligatoire | {{timenow}} depuis TradingView | Date et heure de passage de l’ordre. |
Exemples
Exemple 1 : Ouverture position longue → Clôture position longue (tout fermer)
// Ouvrir une position longue sur BTCUSDT, prix d’entrée : 40 000, quantité : 0.001.{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }// Clôturer la position longue sur BTCUSDT, prix de clôture : 41 000, quantité : 0.001.{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Limit", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }
Exemple 2 : Long → Short (Inversion en 1 étape)
// Ouvrir une position longue sur BTCUSDT, prix d’entrée : 40 000, quantité : 0.001.{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }// Ouvrir une position short sur BTCUSDT, prix : 41 000, quantité : 0.002.// Si qty > posQty, un retournement aura lieu : clôture totale du long 0.001 puis ouverture d’un short 0.001.{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.002, "price": 41000, "type": "Limit", "marketPosition": "short", "prevMarketPosition": "long", "marketPositionSize": 0.001, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }
Exemple 3 : Ouverture Long → Clôture partielle → Clôture totale
// Ouvrir une position longue sur BTCUSDT, prix d’entrée : 40 000, quantité : 0.002.{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.002, "price": 40000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.002, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }// Clôture partielle de la position longue sur BTCUSDT, prix : 41 000, quantité : 0.001.{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Limit", "marketPosition": "long", "prevMarketPosition": "long", "marketPositionSize": 0.001, "prevMarketPositionSize": 0.002, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }// Clôture totale de la position longue sur BTCUSDT, prix : 42 000, quantité : 0.001.{ "id": "id_9b4b19b3d114", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 42000, "type": "Limit", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T12:51:58Z" }
Exemple 4 : Entrée long au marché → Clôture long au marché
// Ouvrir une position longue sur BTCUSDT, prix d’entrée : 40 000, taille : 0.001{ "id": "id_9b4b19b3d112", "symbol": "BTCUSDT", "action": "buy", "qty": 0.001, "price": 40000, "type": "Market", "marketPosition": "long", "prevMarketPosition": "flat", "marketPositionSize": 0.001, "prevMarketPositionSize": 0, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T10:51:58Z" }// Clôturer la position longue sur BTCUSDT, prix sortie : 41 000, taille : 0.001{ "id": "id_9b4b19b3d113", "symbol": "BTCUSDT", "action": "sell", "qty": 0.001, "price": 41000, "type": "Market", "marketPosition": "flat", "prevMarketPosition": "long", "marketPositionSize": 0, "prevMarketPositionSize": 0.001, "signalToken": "kGAOBKheClXD7bVZHe-hEYHxF1rfTwlPPyko3DSWT1Q==", "timestamp": "2024-01-17T11:51:58Z" }

Submit Ticket