Table des matières
- Introduction
- Prérequis
- Création de l'environnement
- Importation de la collection
- Créer des requêtes
- Conclusion
Introduction
L'objectif de cette série est de vous présenter l'API REST de Binance et de vous apprendre à interagir avec elle. En fin de compte, vous devez avoir confiance en votre capacité à rechercher des informations sur les marchés et votre position et à placer une grande variété d'ordres.
Prérequis
Clés testnet
Nous allons utiliser le testnet pour ce tutorial. Cela nous permettra d'utiliser des fonds sans valeur marchande. Ils fonctionnent exactement de la même manière que des monnaies et tokens réels, donc une fois que vous serez à l'aise avec l'API, vous pourrez commencer à l'utiliser pour trader des fonds réels.
- Commencez par vous diriger vers le testnet au comptant.
- Pour y accéder, vous devez vous connecter avec un compte GitHub. Créez-en un si vous n'en avez pas encore.
- Cliquez sur Se connecter et connectez-vous via GitHub.
- Sous clés API, vous serez informé que vous n'avez pas de clé enregistrée. Cliquez sur Générer clé HMAC_SHA256 pour créer une paire.
- Sur l'écran suivant, donnez un nom aux clés. Appelez-les comme vous le souhaitez et cliquez sur Générer.
- Deux clés vous sont générées : la clé API et la clé secrète. Il est important que vous les enregistriez maintenant. Si vous ne le faites pas, vous devrez recommencer le processus de création des clés. Nous vous recommandons de les stocker sur l'application de notes de votre machine pour pouvoir les copier-coller facilement plus tard.
Téléchargement et installation de Postman
Postman est une plateforme de collaboration API. C'est un point de départ parfait pour nous ; nous aurons accès à des collections de requêtes Binance que nous testerons sans avoir besoin d'écrire une seule ligne de code.
Une fois que c'est fait, localisez-le dans votre explorateur de fichiers et décompressez-le. Lancez l'application et c'est parti ! Notez que vous pouvez créer un compte pour vous connecter, mais ce n'est pas nécessaire. Si vous voulez sauter cette étape, il suffit de sélectionner l'option correspondante en bas de la fenêtre.
Création de l'environnement
À ce stade, vous devriez avoir une interface qui ressemble à ce qui suit.
Le téléchargement ne devrait pas prendre beaucoup de temps. Trouvez-le dans votre explorateur de fichiers et décompressez-le. Ensuite, nous pourrons retourner sur Postman.
- Sélectionnez Importer et accédez au dossier que vous venez d'extraire (binance-postman-api).
- Saisissez-le, puis ouvrez le dossier des environnements.
- Vous verrez maintenant deux fichiers (un pour mainnet et un pour testnet). Celui que nous recherchons est binance_com_spot_testnet_api.postman_environment.json. Assurez-vous d'utiliser le bon, car nos clés ne fonctionneront pas avec l'autre.
Sur cet écran, laissez les champs horodatage et signature vides. Ces deux valeurs seront créées automatiquement à chaque requête.
Importation de la collection
Nous allons maintenant importer la collection, il s'agit d'un vaste assortiment de requêtes qui font le gros du travail pour nous lorsque nous passons des ordres. Pour la charger dans notre environnement :
- Cliquez sur Importer dans le coin supérieur gauche.
- Dans la fenêtre contextuelle, sous l'onglet Fichier, sélectionnez Télécharger des fichiers.
- Nous recherchons à nouveau le dossier binance-postman-api. Trouvez-le et ouvrez-le.
- Cette fois, accédez au dossier collections.
- Il y a encore deux fichiers ici. L'un d'entre eux est destiné à l'API Futures. Mais nous souhaitons trader au comptant, donc vous devrez sélectionner le fichier binance_spot_api_v1.postman_collection.json.
- Vous devriez maintenant voir un écran de confirmation qui identifie l'importation comme étant au format Postman collection. Sélectionnez importer.
Sous l'onglet Collections à gauche de la fenêtre, vous remarquerez maintenant que nous avons un dossier contenant plus de 100 requêtes. Félicitations ! Tout est prêt. Dans la prochaine section, nous examinerons les types de requêtes que nous pouvons créer.
Créer des requêtes
Si vous développez les dossiers sous l'onglet Collections, vous verrez que nous avons un tas de requêtes différentes que nous pouvons créer et envoyer. Grâce au code couleur, vous pouvez noter qu'il existe trois types de méthodes que nous pouvons utiliser :
- GET : La méthode GET est utilisée pour récupérer des éléments sur un serveur. Nous l'utiliserons pour interroger le solde de votre compte, les prix des actifs, etc.
- POST : Nous utiliserons généralement la méthode POST pour créer des informations sur un serveur. Cela est nécessaire pour effectuer des ordres, demander des retraits, etc.
- DELETE : la méthode DELETE envoie au serveur une requête pour supprimer des informations. Celle-ci sera pratique pour annuler des ordres.
Rechercher la liste des symboles et les règles de trading
C'est le moment de créer notre première requête ! Nous allons obtenir les symboles que nous pouvons trader sur l'exchange et les règles de trading :
GET /exchangeInfo
Cette requête ne prend aucun paramètre supplémentaire. Vous pouvez la copier et la coller dans votre barre d'adresse, vous recevrez ensuite une réponse. Cependant, pour les requêtes où nous incluons plusieurs paramètres, Postman permet de les voir et de les modifier facilement.
Dans la partie supérieure surlignée, vous verrez des informations importantes :
- l'état de la réponse (200 signifie que nous avons réussi, 400-499 signifie que nous avons rencontré un problème)
le temps nécessaire pour recevoir la réponse (moins d'une seconde)
la taille de la réponse (~ 22 Ko).
Dans la deuxième case se trouve l'essentiel de la réponse. Elle a été mise en forme pour être plus lisible. Elle contient des informations sur l'exchange lui-même, ainsi que les paires que vous pouvez trader et leurs montants minimum/maximum.
Il semble y avoir beaucoup d'informations, mais le format permet de travailler très facilement avec un programme. Lorsque vous écrirez des scripts pour interagir avec ces données, vous pourrez facilement relever les propriétés spécifiques de certains éléments dans la réponse.
Vérifier le solde des comptes
Voyons quels sont les actifs que nous possédons et en quelle quantité :
GET /account
Félicitations pour votre nouvelle fortune (non existante) !
Obtenir le prix actuel d'un actif
Nous pouvons obtenir le prix actuel d'un actif de différentes manières. Le plus simple est peut-être la requête suivante :
GET /api/v3/ticker/24hr
GET /api/v3/price
Comme avec la précédente, vous pouvez modifier la variable de symbole ou la supprimer complètement et obtenir le prix le plus récent pour tous les symboles.
Vérifier la profondeur actuelle du carnet d'ordres
La profondeur du carnet d'ordres (également appelée profondeur de marché, ou DOM) peut nous en dire beaucoup sur le marché. Nous allons faire une requête qui retournera des informations utiles :
GET api/v3/depth
Lorsque nous envoyons ceci avec les valeurs par défaut (Marché > Carnet d'ordres), nous recevons une réponse qui nous donne des informations sur l'offre et la demande de BTCUSDT. Le serveur de testnet ne fournira pas autant de données que le serveur réel. Vous trouverez ci-dessous une capture d'écran de ce que vous pouvez vous attendre à voir dans un environnement réel :
Dans la section en surbrillance ci-dessus, nous pouvons voir la première offre. Puisque nous regardons le carnet pour BTCUSDT, le nombre supérieur est le prix que quelqu'un est prêt à payer pour votre BTC. Vous trouverez ci-dessous le montant que les acheteurs sont prêts à payer. Cela nous dit, par conséquent, que cet ordre demande 0,999 BTC à un taux de 9704,65 USDT par BTC. Si nous continuions à faire défiler la page vers le bas, le prix de la demande diminuerait, représentant les acheteurs qui seraient prêts à payer moins cher.
L'offre la plus élevée sera naturellement la plus intéressante si vous cherchez à vendre au meilleur prix. Cela dit, si vous essayez par exemple de vendre au marché 3 BTC, vous ne pourrez vendre que 0,999 BTC à ce prix. Vous devrez accepter les offres suivantes (moins chères) jusqu'à ce que l'ensemble de votre ordre soit rempli.
Passer un ordre de test
Nous allons maintenant passer un ordre test.
POST api/v3/order/test
Vous pouvez voir que nous avons beaucoup plus de paramètres à configurer. Passons en revue ceux qui sont cochés :
- symbole : nous avons déjà vu celui-ci. Il s'agit de la paire que vous souhaitez trader.
- side : ici, vous indiquez si vous voulez ACHETER ou VENDRE. Avec la paire BTCUSDT, BUY indique que vous voulez acheter des BTC pour USDT, tandis que SELL permet de vendre des BTC pour USDT.
- type : le type d'ordre que vous voulez envoyer. Valeurs possibles (détails ici) :
- LIMIT
- MARKET
- STOP_LOSS
- STOP_LOSS_LIMIT
- TAKE_PROFIT
- TAKE_PROFIT_LIMIT
- LIMIT_MAKER
- timeInForce: ce paramètre définit comment vous souhaitez que l'ordre s'exécute :
- GTC (bon jusqu'à annulation) : peut-être la configuration la plus populaire, GTC s'assurera que votre ordre est valide jusqu'à ce qu'il soit traité ou jusqu'à ce que vous l'annuliez.
- FOK (fill or kill) : FOK demande à l'exchange d'exécuter un ordre en une seule fois. Si l'exchange ne peut pas le faire, l'ordre est immédiatement annulé.
- IOC (immédiat ou annulation) : la totalité ou une partie de l'ordre doit être exécutée immédiatement ou l'ordre sera annulé. Contrairement à l'ordre FOK, les ordres ne sont pas annulés s'ils peuvent être partiellement exécutés.
- quantity : il s'agit tout simplement la quantité de l'actif que vous souhaitez acheter ou vendre.
- price : le prix auquel vous voulez vendre. Pour la paire BTCUSDT, il est exprimé en USDT.
- newClientOrderId : identifiant de l'ordre. Ce champ n'est pas obligatoire, mais vous pouvez le définir sur un identifiant qui facilitera les requêtes ultérieures. S'il vous ne le renseignez pas, il sera défini automatiquement par l'exchange.
Passer un ordre réel
Il est temps de passer un faux ordre authentique.
POST /api/v3/order
Votre réponse renvoie un ensemble de détails sur l'ordre si la requête est correcte.
Vérifier le statut d'un ordre ouvert
Nous avons obtenu la confirmation que l'ordre a été passé dans la section précédente, mais que faire si nous voulons vérifier son statut à nouveau ? Nous avons plusieurs requêtes à notre disposition.
GET /api/v3/openOrders
GET /api/v3/allOrders
Enfin, nous pouvons interroger des ordres spécifiques avec :
GET /api/v3/order
Annuler un ordre
Après un certain temps, nous pouvons décider que le prix cible de 40 000 $ est un peu trop optimiste, c'est pourquoi nous voulons l'annuler. Dans ce cas, nous utiliserions :
DELETE /api/v3/order
Passer un ordre qui s'exécute instantanément
Vous pouvez voir ci-dessous que nous sommes sur le point de soumettre un ordre au marché pour vendre du BNB pour du BUSD au cours actuel du marché.
Notez que la réponse nous donne très peu d'informations :
Consulter vos trades
Examinons enfin le point de terminaison pour consulter vos trades :
GET /api/v3/myTrades
Débogage avec Postman
Dans Postman, il est possible de consulter la requête et la réponse HTTP brutes.
Ce menu ouvre la console Postman, qui affiche les détails de chaque requête.
Conclusion
Le but de ce guide était de vous présenter l'API Binance sans avoir à écrire une seule ligne de code. Si vous avez suivi, vous devriez maintenant être en mesure de demander et envoyer des informations.