Contenu

  • Introduction

  • Conditions préalables

    • Tester les clés réseau

    • Téléchargez et installez Postman

  • Créer un environnement

  • Importer une collection

  • Exécution des demandes

  • Dernières pensées


Introduction

Comprendre et utiliser l'API de trading de crypto-monnaie peut ouvrir un monde de possibilités en matière d'entrée et de sortie de positions. Avec quelques connaissances de base en programmation, vous pouvez vous connecter au backend de la bourse pour automatiser vos stratégies de trading. En contournant le site Web, vous pouvez accéder beaucoup plus rapidement au moteur de correspondance pour les applications hautes performances.

Le but de cette série est de vous présenter l'API Binance REST et de vous apprendre à interagir avec elle. En fin de compte, vous devez avoir confiance dans votre capacité à interroger les marchés et vos positions, et à passer différents types d’ordres.

Dans cet article, nous utiliserons Postman pour communiquer avec l'échange. Ne vous inquiétez pas, nous ne mettrons pas d’argent réel en danger.


Conditions préalables

Tester les clés réseau

Nous allons utiliser un testnet pour nos besoins. Cela nous donnera des fonds qui n’ont aucune valeur réelle et avec lesquels nous pourrons expérimenter. Ils fonctionnent exactement comme de vraies pièces et jetons, donc une fois que vous vous êtes habitué à l'API, vous pouvez commencer à l'utiliser pour échanger de l'argent réel.


  1. Commencez par vous rendre sur le réseau Spot Test.

  2. Vous devez être connecté avec un compte GitHub pour y accéder. Créez-le si vous ne l'avez pas déjà fait.

  3. Cliquez sur « Authentifier » et connectez-vous avec GitHub.

  4. Dans la section "Clés API", vous verrez que vous n'avez aucune clé enregistrée. Cliquez sur Générer la clé HMAC_SHA256 pour générer une paire.

  5. Sur l’écran suivant, attribuez une étiquette aux touches. Nommez-les comme vous le souhaitez et cliquez sur "Générer".

  6. Deux clés vous seront présentées : la clé API et la clé secrète. Il est important de les écrire maintenant. Si vous ne le faites pas, vous devrez recommencer le processus de génération de clé. Nous vous recommandons de les enregistrer dans une application de prise de notes sur votre ordinateur pour pouvoir les copier facilement ultérieurement.

Remarque : L'étiquetage de vos clés est quelque chose que vous devez faire lorsque vous utilisez un échange en direct pour gérer différentes clés. Votre compte peut avoir plusieurs clés avec des autorisations différentes. Si vous utilisez plusieurs robots de trading, l'utilisation de clés individuelles avec des étiquettes descriptives facilite la gestion des autorisations ou la suppression de clés individuelles sans modifier tous vos robots.


Téléchargez et installez Postman

Postman est une plateforme de collaboration API. C'est un point de départ parfait pour nous : nous aurons accès aux collections de requêtes Binance pour tester sans écrire une seule ligne de code.

Le programme est disponible pour Mac, Windows et Linux. Accédez à la page Téléchargements et téléchargez le fichier .zip.

Après cela, recherchez-le dans l'explorateur et installez-le. Ouvrez l'application pour commencer. Veuillez noter que vous pouvez créer un compte pour vous connecter, mais ce n'est pas obligatoire. Si vous souhaitez ignorer cette étape, sélectionnez simplement l'option appropriée en bas de la fenêtre.


Créer un environnement

À ce stade, vous devriez avoir une interface similaire à la suivante.



Tout d’abord, vous devez créer un environnement. C'est simplement un moyen d'ajouter des variables à l'ensemble de requêtes avec lesquelles nous allons travailler. Pour ce faire, nous devons d'abord obtenir quelques informations du référentiel Binance GitHub. Allez ici et téléchargez le fichier .zip.



Le téléchargement ne prendra pas longtemps. Trouvez-le dans votre explorateur de fichiers et décompressez-le. Ensuite, nous pouvons retourner à Postman.



Cliquez sur l'icône d'engrenage dans le coin supérieur droit (comme indiqué ci-dessus). Vous verrez une fenêtre contextuelle « Gérer les environnements ».

  1. Sélectionnez « Importer » et accédez au dossier nouvellement décompressé (binance-postman-api).

  2. Entrez ensuite dans le dossier environnement.

  3. Vous verrez maintenant deux fichiers (un pour le réseau principal, un pour le réseau de test). Nous recherchons binance_com_spot_testnet_api.postman_environment.json. Assurez-vous de choisir la bonne car nos clés ne fonctionnent pas avec les autres.



Presque fini. Cliquez sur « API Binance Spot Testnet » et vous verrez les variables ci-dessous. Modifiez les deux paramètres surlignés en rouge en insérant les clés que vous avez enregistrées précédemment. Cliquez sur "Mettre à jour" et quittez la fenêtre contextuelle.



Sur cet écran, laissez les champs « horodatage » et « signature » vides. Ces deux valeurs seront automatiquement générées à chaque requête.

Il reste encore quelque chose à faire. À droite de l'icône d'engrenage sur laquelle nous avons cliqué pour configurer l'environnement plus tôt, vous verrez un menu déroulant qui indique actuellement « Aucun environnement ». Cliquez dessus et sélectionnez « API Binance Spot Testnet ».


Importer une collection

Nous allons maintenant importer une collection qui est un grand ensemble de requêtes qui font le gros du travail à notre place. Pour le télécharger sur notre environnement, suivez ces étapes :

  1. Cliquez sur "Importer" dans le coin supérieur gauche.

  2. Dans la fenêtre pop-up, sous l'onglet "Fichier", sélectionnez "Télécharger des fichiers".

  3. Nous recherchons à nouveau le dossier binance-postman-api. Trouvez-le et ouvrez-le.

  4. Cette fois, entrez "collections" dans le sous-répertoire.

  5. Voici à nouveau deux fichiers. Un pour travailler avec l'API Futures. Mais nous travaillons avec spot, vous devez donc sélectionner le fichier binance_spot_api_v1.postman_collection.json.

  6. Vous devriez maintenant voir un écran de confirmation identifiant l'importation au format de collection Postman. Sélectionnez "Importer".

Dans l'onglet Collections sur le côté gauche de la fenêtre, vous remarquerez maintenant que nous avons un dossier contenant plus de 100 requêtes. Toutes nos félicitations! D'accord. Dans la section suivante, nous examinerons les demandes que nous pouvons envoyer.


Exécution des demandes

Si vous développez les dossiers sous l'onglet Collections, vous verrez que nous avons des tonnes de requêtes différentes que nous pouvons effectuer. D’après le codage couleur, vous pouvez voir que nous pouvons utiliser trois types de méthodes :


  • GET : La méthode « GET » permet de récupérer les données du serveur. Nous l'utiliserons pour obtenir des informations sur le solde de votre compte, les prix des actifs, etc.

  • POST : Nous utilisons généralement la méthode « POST » pour créer des informations sur le serveur. Cela est nécessaire pour des choses comme passer des commandes, demander des retraits, etc.

  • DELETE : La méthode "DELETE" est une requête adressée au serveur pour supprimer des informations. Cela sera utile pour annuler des commandes.


Rechercher une liste de symboles et de règles de trading

C'est l'heure de notre première requête ! Nous allons obtenir les symboles qui peuvent être échangés en bourse et les règles de trading :

OBTENIR /exchangeInfo


Cette demande ne prend aucun paramètre supplémentaire : vous pouvez la copier et la coller dans la barre d'adresse et vous obtiendrez une réponse. Postman facilite l'affichage et la modification des requêtes dans lesquelles nous incluons plusieurs paramètres.

Pour télécharger cette demande, sélectionnez Marché > Informations sur l'échange. L'onglet suivant apparaîtra :



Nous n'avons rien d'autre à faire ici, alors cliquez sur "Envoyer". Vous obtiendrez la réponse :



Dans la section en haut en surbrillance, vous verrez des informations importantes :

  • état de la réponse (200 signifie que la demande est réussie, 400-499 signifie que nous avons un problème)

  • temps nécessaire pour recevoir une réponse (moins d’une seconde)

  • taille de la réponse (~ 22 Ko).


Le deuxième champ contient l'essentiel de la réponse. Il est joliment imprimé pour le rendre un peu plus agréable à regarder. Il contient des informations sur l'échange lui-même, ainsi que sur les paires que vous pouvez échanger et leurs montants minimum/maximum.

Il semble qu'il y ait beaucoup d'informations, mais le format facilite leur utilisation par programmation. Lors de l'écriture de scripts d'interaction, vous pouvez facilement sélectionner certaines propriétés de certains éléments de la réponse.


Vérifier le solde du compte

Vérifions quels actifs nous possédons et combien :

OBTENIR /compte

Cette demande se trouve sous « Commerce » > « Informations sur le compte ». Cliquez dessus et vous verrez une disposition similaire à la précédente. Cependant, vous remarquerez également que nous avons deux nouvelles variables : « timestamp » et « signature ». La signature est une mesure de sécurité. Puisque nous demandons désormais des informations confidentielles, cela prouvera que nous sommes le propriétaire du compte.

L'horodatage indique au serveur quand la demande a été envoyée. Étant donné que les réseaux peuvent être peu fiables ou en panne, le serveur peut recevoir notre demande beaucoup plus tard que prévu. Si trop de temps s'est écoulé, la demande sera rejetée. Vous pouvez spécifier la durée d'attente à l'aide du paramètre "recvWindow", dont la valeur par défaut est de 5 000 millisecondes.

Postman gère la création de ces deux champs pour nous. Cliquez sur "Envoyer" et vous recevrez une réponse. Sous Soldes, vous devriez voir six actifs : BNB, BTC, BUSD, ETH, LTC et TRX. Le solde sera divisé en gratuit et verrouillé. Nous n’avons encore rien bloqué, tous vos actifs devraient donc être libres.

Félicitations pour votre nouvelle richesse (inexistante) !


Comment connaître le prix actuel d'un symbole

Nous pouvons obtenir le prix actuel d’un actif de différentes manières. Le plus simple est peut-être avec une telle demande :

OBTENIR /api/v3/ticker/24hr

Comme vous l'avez peut-être deviné, cela nous donnera des informations sur les prix des actifs au cours des dernières 24 heures. Trouvez-le dans « Marché » > « Statistiques de changement de prix du ticker sur 24 heures ». La paire par défaut que nous voyons comme variable de symbole est BTCUSDT.

Vous pouvez l'envoyer dès maintenant pour voir le détail des informations sur les prix. Vous pouvez également modifier le symbole (en BNBBUSD, LTCUSDT, etc.), ou décocher la variable pour renvoyer les données de 40 paires.

Nous avons également un appel plus simple ("Marché" > "Symbol Price Ticker") qui renvoie le prix actuel auquel l'actif se négocie :

OBTENIR /api/v3/prix

Comme auparavant, vous pouvez modifier la variable du symbole ou la supprimer complètement et obtenir le dernier prix pour tous les symboles.


Vérification de la profondeur actuelle du carnet de commandes

La profondeur du carnet de commandes (également appelée profondeur du marché ou DOM) peut nous en dire beaucoup sur le marché. Nous allons passer un appel pour revenir des informations utiles :

OBTENIR api/v3/profondeur

Lorsque nous l'envoyons avec les valeurs par défaut ("Marché" > "Carnet d'ordres"), nous obtenons une réponse qui nous indique l'offre et demande BTCUSDT. Le serveur testnet ne produira pas autant de données que le serveur réel, vous trouverez donc ci-dessous une capture d'écran de ce que vous vous attendez à voir dans un environnement réel :



Dans la section mise en évidence ci-dessus, nous voyons le premier problème. Puisque nous examinons le grand livre du BTCUSDT, le chiffre le plus élevé est le prix que quelqu'un est prêt à payer pour votre BTC. Vous trouverez ci-dessous le montant qu’ils sont prêts à acheter. Cela suggère donc que cette commande demande 0,999 BTC à un taux de 9 704,65 USDT par BTC. Si nous devions continuer à faire défiler vers le bas, nous verrions le prix de l'offre diminuer, ce qui signifie que l'acheteur serait moins payé.

La meilleure offre sera naturellement la plus attractive si vous souhaitez réaliser du profit. Cependant, si vous essayez de vendre sur le marché, disons 3 BTC, vous ne pourrez vendre que 0,999 BTC au meilleur prix. Vous devrez accepter d’autres offres (moins chères) jusqu’à ce que votre commande soit entièrement exécutée.



Continuez à faire défiler et vous verrez la demande. Fonctionnellement, ils sont similaires aux offres, sauf qu’il s’agit d’ordres de vente de BTC contre USDT.


Passer une commande test

Nous allons maintenant passer une commande test.

POST api/v3/commande/test

Même si nous utilisons uniquement les fonds du testnet, cette demande n’aboutira pas réellement à une commande. Cela peut être utile pour tester les commandes avant de les envoyer. Trouvez-le sous « Trade » > « Test New Order (TRADE) ».



Comme vous pouvez le constater, encore plus de paramètres sont impliqués. Passons en revue les marqués :


  • symbole - nous avons déjà vu cela. C'est la paire que vous souhaitez échanger.

  • côté – ici vous indiquez si vous souhaitez ACHETER ou VENDRE. Pour la paire BTCUSDT, BUY indique que vous souhaitez acheter du BTC contre de l'USDT, tandis que SELL vendra du BTC contre de l'USDT.

  • type – le type de commande que vous souhaitez envoyer. Valeurs possibles (détails ici) :

    • LIMITE

    • MARCHÉ

    • STOP_PERTE

    • STOP_LOSS_LIMIT

    • TIRER PROFIT

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce – ce paramètre exprime la manière dont vous souhaitez que l'ordre soit exécuté :

    • GTC (Good Until Canceled) est peut-être le paramètre le plus populaire. GTC garantit que votre commande est valable jusqu'à son exécution ou jusqu'à ce que vous l'annuliez.

    • FOK (Exécuter ou Annuler) – FOK demande à la bourse d'exécuter l'ordre immédiatement. Si l’échange ne peut pas le faire, la commande sera immédiatement annulée.

    • IOC (Execute Immédiatement ou Annuler) – L’ordre doit être exécuté en tout ou en partie immédiatement, sinon il sera annulé. Contrairement au FOK, les ordres ne sont pas annulés s'ils peuvent être partiellement exécutés.

  • la quantité est simplement le montant de l’actif que vous souhaitez acheter ou vendre.

  • prix – le prix auquel vous souhaitez vendre. Pour la paire BTCUSDT, celle-ci est exprimée en USDT.

  • newClientOrderId – identifiant de commande. Ce n'est pas un champ obligatoire, mais vous pouvez lui attribuer un identifiant qui simplifiera la requête ultérieurement. Sinon, il est généré aléatoirement sur l’échange.

Bien! Créons maintenant une commande test. Nous allons utiliser les valeurs générées automatiquement : un ordre de vente limité de 0,1 BTC par USDT au prix de 9 000 $. Cliquez sur "Envoyer". Si tout a réussi, nous obtiendrons simplement {{}} en réponse.

Passer une vraie commande

Il est temps de passer une vraie fausse commande.

POST /api/v3/commande

Accédez à Commerce > Nouvelle commande. Vous êtes déjà familier avec les commandes tests, les paramètres ici ne vous surprendront donc pas. Laissons toutes les valeurs telles quelles, mais modifions le prix auquel nous vendons à 40 000 $. Modifiez la valeur du prix pour refléter cela. Cliquez ensuite sur "Envoyer".

En cas de succès, votre réponse contiendra des informations détaillées sur la commande.


Vérifier le statut d'une commande ouverte

Nous avons reçu la confirmation que la commande a été passée dans la section précédente, mais que se passe-t-il si nous voulons la vérifier plus tard ? Nous avons plusieurs demandes à notre disposition.

OBTENIR /api/v3/openOrders

Vous le trouverez sous « Trade » > « Commandes ouvertes actuelles (USER_DATA) ». BTCUSDT est sélectionné par défaut. Si vous appuyez sur "Envoyer", vous recevrez toutes vos commandes BTCUSDT ouvertes (jusqu'à présent, vous ne devriez voir que celle que nous avons définie plus tôt). Vous pouvez omettre le symbole, qui renverra à la place toutes vos commandes ouvertes.

OBTENIR /api/v3/allOrders

"Trade" > "All Orders (USER_DATA)" vous donne un aperçu de toutes les commandes, pas seulement de celles en cours. Ici, vous devez spécifier le symbole. "orderId", "startTime", "endTime" sont des paramètres facultatifs qui peuvent vous aider à affiner votre recherche. Nous allons les laisser ici, alors décochez les cases. Cliquez sur "Envoyer" et vous verrez la même réponse qu'avant. Si vous avez eu des commandes clôturées ou annulées, vous les verrez également ici.


Enfin, nous pouvons demander des commandes spécifiques en utilisant :

OBTENIR /api/v3/commande

Obtenez-le sous « Commerce » > « Ordre de requête (USER_DATA) ». Vous devrez spécifier soit "orderId" soit "origClientOrderId" (une balise facultative "newClientOrderId" qui peut être ajoutée aux commandes). Décochez "orderId". Pour "origClientOrderId", nous allons fournir la balise par défaut qui était utilisée auparavant - "my_order_id_1". Remplissez le champ et cliquez sur "Envoyer" pour recevoir une réponse.


Annulation de commande

Après un certain temps, nous pouvons décider que l'objectif de 40 000 $ est trop optimiste et nous souhaitons donc annuler la commande. Dans ce cas, nous utiliserions :

SUPPRIMER /api/v3/order

Sous « Trade » > « Cancel Order », une requête qui nous permettra de mettre en évidence les commandes à annuler. Décochez "orderId" et "newClientOrderId" et transmettez "my_order_id_1" comme valeur pour "origClientOrderId".

Lorsque vous envoyez cette demande, la commande sera retournée. Si vous faites défiler jusqu'à « statut », vous verrez qu'il est effectivement annulé. Pour confirmer cela, utilisez à nouveau le point de terminaison GET /api/v3/openOrders (avec une liste vide) ou GET /api/v3/order avec origClientOrderId .


Flou de la commande, qui est remplie instantanément

Notre ordre précédent n’a pas été exécuté car il s’agissait d’un ordre limité qui ne fonctionnera que lorsque le prix du BTC atteindra 40 000 $. Dans le cas d'un ordre au marché, nous disons essentiellement « acheter/vendre au prix auquel l'actif se négocie actuellement ». Cette commande sera remplie instantanément.

Pour cela, revenons à « Trade » > « New Order ». Nous allons démontrer le type de réponse (newOrderRespType), qui est un paramètre que nous pouvons configurer en fonction de la réponse que nous souhaitons recevoir du serveur. Il y a trois options ici : ACK, RESULT ou FULL - vous pouvez voir des exemples de chaque réponse ici. Nous allons utiliser un "ACK" qui nous donnera une simple confirmation que la commande a été reçue.

Ci-dessous, vous pouvez voir que nous allons envoyer un ordre de marché pour vendre du BNB contre du BUSD au prix actuel du marché.



Notez que la réponse nous donne un minimum d'informations :



Vous pouvez vérifier que la commande a été exécutée via le point de terminaison /api/v3/allOrders.


Vérifier vos offres

Enfin, examinons un point de terminaison pour vérifier vos transactions :

OBTENIR /api/v3/myTrades

La demande se trouve dans la section « Trade » > « Account Trade List (USER_DATA) ». Il vous permet de vérifier chaque transaction par un symbole spécifique. Si vous souhaitez voir toutes vos transactions pour le symbole par défaut (BTCUSDT), décochez simplement « startTime », « endTime » et « fromId ». La réponse renverra jusqu'à 500 transactions - modifiez simplement la limite si vous voulez en voir plus.


Débogage avec Postman

Dans Postman, vous pouvez également exposer la requête et la réponse HTTP brutes.



Ce menu ouvrira la console Postman, qui affiche les détails de chaque demande.



Dernières pensées

Le but de ce guide est de vous présenter l'API Binance sans écrire une seule ligne de code. Si vous avez effectué toutes les étapes nécessaires, vous devez maintenant comprendre comment nous pouvons demander et envoyer des informations.

Dans les prochaines parties de cette série, nous présenterons quelques concepts de codage de base qui nous permettent d'automatiser l'achat et la vente de crypto-monnaies et d'autres actifs numériques.

Avez-vous d'autres questions? Visitez notre forum croissant de la communauté des développeurs Binance ou consultez la documentation.