Trading API : Comment créer un Trade par programme ?

Pour vous et les copieurs de vos Trades, gratuitement

Le Trading API permet de créer un Trade à partir de son propre programme informatique. Nous verrons dans ce tutoriel comment créer un Trade sur les principales plateformes d’échange de crypto-monnaie comme Binance Futures, Binance Spot, Huobi, Crypto.com, Kraken, Kucoin, Bittrex, Bitfinex, OKX ou Ascendex.

Grâce à notre partenariat avec les principales plateformes d’échange, c’est totalement gratuit. Nous sommes en effet un broker/courtier agréé. Ainsi, elles nous reversent automatiquement une partie des frais de Trading. Cela ne change rien pour vous! Sur Binance Spot et Binance Futures, il y a une condition : il faut utiliser un compte Binance créé après mars 2020 et sans lien de parrainage.

Si vous voulez répliquer vos Trades sur les comptes de vos abonnés, c’est tout à fait possible même avec cette méthode de Trading API. Nous verrons comment créer votre groupe de Copy Trading. Nous avons d’autres méthodes que celle du Trading API pour créer les Trades comme notre terminal de Smart Trading adapté au Trading Manuel.

Pour cette méthode de Trading API, vous pouvez coder dans n’importe quel langage informatique.


Trading API : paramétrage de votre compte

1) Créez un compte sur Wall of Traders.

2) Connectez-vous en cliquant sur “Rester connecté(e)” :

Trading API : créer un compte

3) Passez en mode Développeur : clic droit n’importe où sur la page puis Inspecter, ou appuyez sur F12 :

Trading API : mode développeur

Ensuite, cliquez sur Traders dans le Menu à gauche, cela permet de rafraîchir les données. Puis dans les DevTools à droite : Cliquez sur « Network », puis sur « Groups », et descendez jusqu’à « authorization: Bearer ……… » :

Trading API : paramétrage

Copiez les caractères après « Bearer  » ; dans mon exemple de eyJhbG….. à ….. 66qAkz4. Sauvegardez cette valeur quelque part. Nous l’utiliserons dans {Token} dans le code.

4) Créez une API sur l’échange de votre choix, par exemple sur Binance. Sauvegardez la Clé API et la Secrète API.

5) Puis sur votre compte Wall Of Traders, ajoutez la clé API et la Secrète API de cet échange.

6) Modifiez ensuite cet échange en cliquant sur le crayon :

Modifier un échange sur Wall Of Traders

Dans l’URL vous verrez https://walloftraders.com/exchanges/12345 où 12345 est le {ExchangeId}. Copiez ce numéro et sauvegardez-le. Il sera utilisé dans {ExchangeId} dans le code.

7) Sur la page des Traders, cliquez en haut à droite sur « CRÉER UN TRADER« . Quand vous validerez le formulaire, vous serez redirigé vers une page. Dans l’URL vous verrez https://walloftraders.com/manageFollowers/56789 où 56789 est le {GroupId}. Copiez ce numéro et sauvegardez-le. Il sera utilisé dans {GroupId} dans le code.

La préparation est terminée! Il ne vous reste plus qu’à coder en utilisant le code ci-dessous.


Trading API : comment créer un Trade

À vous de jouer en copiant-collant le code ci-dessous et en l’adaptant à votre langage de programmation :

POST https://api2.walloftraders.com/api/v1/Order

Header:

Authorization: 'Bearer {Token}',

Content-Type: 'application/json',

Body:

{

    "isBuy": true, //true: mode Achat/Long - false: mode Vente/Short

    "accountId": {ExchangeId},

    "pair": "BTC-USDT",

    "groupId": {GroupId},

    "leverage": 1, //Ajoutez cette ligne uniquement si l'échange sur lequel vous tradez utilise le levier. Par exemple ajoutez-la pour Binance Futures mais retirez-la pour Binance Spot.

    "pourcentage": 5, //Pourcentage de capital pour le Trade. Entre 0.01 et 100.

    "startPrice": 19000, //Prix d'entrée limite. Mettez 0 pour faire une entrée au marché.

    "targets": [ //Les somme des "pourcentage" ne doit pas être supérieure à 100.

        {

            "pourcentage": 50, //Part en % à clôturer pour ce Take Profit. Par exemple, mettez 100 pour un seul Take Profit, ou 50 pour clôturer la moitié.

            "orderType": 0, //0: ordre limite - 1: ordre au marché.

            "price": null, //Prix ​​du Take Profit, si "price" != null, la prochaine ligne "profit" n'est pas lue.

            "profit": 2, //Si "price" == null, le prix cible sera égal à startPrice*(1+-profit/100).

            "trailing": null, //Trailing pourcentage (ligne optionnelle).

        }

    ],

    "stopPrice": 18000, //Mettez null si vous ne voulez pas mettre de Stop Loss.

    "stopProfit": -2, //Si stopPrice == null, alors on calcule automatiquement le prix du Stop = startPrice-stopProfit/100 (ligne optionnelle)

    "orderId": 987654, //Pour mettre à jour le Trade, insérez l'orderId ici (ligne optionnelle)

//Autres fonctionnalités optionnelles

    "note": "Blabla", //Texte libre

    "dontDoOrder": false, //Ne crée pas le Trade pour moi, mais le crée pour les copieurs. Uniquement si GroupId défini.

    "dontDoStart": false, //Ne crée pas l'entrée mais crée les TP et SL.

    "timeOutStart": null,

    "timeOutStopLoss": null,

    "trailingStart": null,

    "startTriggerPrice": null,

    "startTradingViewGuid": null,

    "trailingStopLoss": null,

    "orderTypeStop": 0,
    
    "MoveSL": 0, //SL se déplace : si 0 au prix d'entrée quand TP1 est atteint, si 1 au TP1 quand TP2 est atteint, si 2 à tous (prix d'entrée et TPn) quand TPn+1 est atteint.

}

Pour supprimer un Trade, c’est-à-dire annuler les entrées en attente, et supprimer les TP et SL, mais ne pas clôturer le Trade :

api/v1/Order/${orderId}, {
      method: 'DELETE',
    }

Pour clôturer un trade, c’est-à-dire supprimer les TP et SL et aussi revendre les cryptos achetées (ou les racheter en cas de vente/short) :

api/v1/Order/PanicSell?orderId=${orderId}&pourcentage=${pourcentage},
      {
        method: 'POST',
      },

Où ${pourcentage} doit être égal à 100 si vous voulez clôturer l’intégralité de la position, mais peut par exemple être égal à 50 pour ne clôturer que la moitié.


Trading API : exemple de programme en Python

import logging

import typing
logger = logging.getLogger()
import time
import hmac
from urllib.parse import urlencode
import hashlib
import requests


import json
from datetime import datetime
import time
import requests
import pandas as pd
import logging





import json
from datetime import datetime
import time
import requests
import pandas as pd
import logging

import logging
import datetime
import typing
logger = logging.getLogger()
import time
import hmac
from urllib.parse import urlencode
import hashlib
import requests
import json
import random

import json
from datetime import datetime
import time
import requests
import pandas as pd
import logging



def place_order_buy( q) :

    while True:
        url = 'https://api2.walloftraders.com/api/v1/Order'
        payload={
                "isBuy": True,
                "accountId": 12345,
                "pair": "BTC-USDT",
                "groupId": 12345,
                "leverage": 100,
                "pourcentage": q,
                "startPrice": 0,
                "targets": [],                
                }
        headers = {'Authorization': 'Bearer xxx',
       'Content-Type': 'application/json'}

        order_status = requests.post(url,json=payload,headers=headers)
        if order_status is not None:
            break
    return order_status

def place_order_sell( q) :

    while True:
        url = 'https://api2.walloftraders.com/api/v1/Order'
        payload={
                "isBuy": False,
                "accountId": 12345,
                "pair": "BTC-USDT",
                "groupId": 12345,
                "leverage": 100,
                "MoveSL": 0,
                "pourcentage": q,
                "startPrice": 0,
                "targets": [],
                }
        headers = {'Authorization': 'Bearer xxx',
       'Content-Type': 'application/json'}
        order_status = requests.post(url,json=payload,headers=headers)
        if order_status is not None:        
            break
    return order_status

def place_order_buy2( q, tp, sl) :

    while True:
        url = 'https://api2.walloftraders.com/api/v1/Order'
        payload={
                "isBuy": True,
                "accountId": 12345,
                "pair": "BTC-USDT",
                "groupId": 12345,
                "leverage": 100,
                "pourcentage": q,
                "startPrice": 0,
                "targets": [
                    {
                        "pourcentage":100,
                        "orderType":0,
                        "price": tp,                        
                    }
                ],
                "stopPrice": sl,
                }
        headers = {'Authorization': 'Bearer xxx',
       'Content-Type': 'application/json'}

        order_status = requests.post(url,json=payload,headers=headers)
        if order_status is not None:
            break
    return order_status

def place_order_sell2( q, tp, sl) :

    while True:
        url = 'https://api2.walloftraders.com/api/v1/Order'
        payload={
                "isBuy": False,
                "accountId": 12345,
                "pair": "BTC-USDT",
                "groupId": 12345,
                "leverage": 100,
                "MoveSL": 0,
                "pourcentage": q,
                "startPrice": 0,
                "targets": [
                    {
                        "pourcentage":100,
                        "orderType":0,
                        "price": tp,                        
                    }
                ],
                "stopPrice": sl,
                }
        headers = {'Authorization': 'Bearer xxx',
       'Content-Type': 'application/json'}
        order_status = requests.post(url,json=payload,headers=headers)
        if order_status is not None:        
            break
    return order_status

def close_order_ID( ID) :

    while True:
        url = 'https://api2.walloftraders.com/api/v1/Order/PanicSell?orderID='+str(ID)+'&pourcentage=100'

        headers = {'Authorization': 'Bearer xxx',
        'Content-Type': 'application/json'}
        payload={
                "accountId": 12345,
                "pair": "BTC-USDT",
                "groupId": 12345,
                "leverage": 100,
                }
        order_status = requests.post(url,json=payload,headers=headers)
        if order_status is not None:
           # print(order_status)
            break
        #if order_status is not None:
        #    print('ordin deschis')
    return order_status

J’espère que cet article vous a plus ! Si vous avez la moindre question, vous pouvez nous parler directement sur Telegram.

Cet article n’est pas un conseil d’investissement. Faites vos propres recherches avant d’investir sur le marché des crypto monnaies.

Laisser un commentaire