Les fluctuations des cryptomonnaies offrent diverses opportunités à ceux qui veulent trader, c’est-à-dire acheter et vendre des monnaies dans l’objectif de tirer profit de la différence entre les cours actuels et futurs. Et lorsque l’on parle du marché des dérivés, où l’on peut opérer avec effet de levier, il existe des possibilités de gains chaque jour et il est presque unanime parmi les investisseurs que c’est la seule méthode pour quelqu’un disposant d’un capital limité de réaliser des gains importants grâce au trading dès le début.
Pour opérer des contrats à terme sur Bitcoin et d’autres cryptomonnaies, il faut disposer d’un compte sur une plateforme d’échange. Parmi les acteurs mondiaux, l’un des plus agressifs en matière de frais et de portefeuille de devises est Binance, considérée comme la plus grande bourse de cryptomonnaies au monde en volume de transactions. Mais ne vous inquiétez pas : ici, nous allons n’utiliser qu’un solde de test que la plateforme elle-même fournit pour vous apprendre comment créer des scripts/robots/bots crypto afin de réaliser la surveillance automatique du marché, en plus de l’envoi d’ordres d’ouverture et de fermeture de positions sur les contrats à terme perpétuels USD-M lorsque vos conditions sont atteintes, le tout par programmation dans un environnement de développement sans risques.
Il est important que vous disposiez déjà des connaissances nécessaires pour opérer sur le marché à terme avant de vouloir créer un bot pour ce marché, ce que vous pouvez obtenir par vous-même ou via des vidéos sur YouTube. Idéalement, il est bien de déjà avoir créé un bot pour le marché spot, car les étapes sont assez similaires, ce que j’explique dans ce tutoriel. Il est également crucial de comprendre que Binance n’a pas l’autorisation d’opérer des dérivés au Brésil, qui sont régulés par la CVM. Par conséquent, officiellement, les résidents brésiliens du pays NE PEUVENT PAS opérer les Futures. Et bien que vous puissiez facilement changer votre pays dans le menu supérieur de Binance pour accéder aux Futures, il n’est pas recommandé de le faire. Si vous le faites et qu’il arrivait quelque chose à votre compte, c’est votre entière responsabilité, d’accord ?
Si vous préférez, vous pouvez regarder la vidéo ci-dessous au lieu de lire le tutoriel.
Avertissement : les gains passés ne garantissent pas les gains futurs. Les cryptomonnaies représentent des investissements risqués et vous pouvez donc perdre beaucoup d’argent même si vous pensez savoir comment opérer sur ce marché. JE NE SUIS PAS responsable et ne serai jamais responsable de vos pertes, je me contente d’enseigner comment créer des programmes informatiques, je ne donne pas de conseils en investissement, d’accord ?
#1 – Compte, clés API et environnement
Pour mener à bien ce tutoriel, vous devez avoir un compte Binance (cliquez sur le lien), la plus grande bourse du monde et dont je suis client depuis plusieurs années. Ils disposent d’API REST et de flux très complets que nous utiliserons pour surveiller et opérer sur le marché des futures de cryptomonnaies. Si vous préférez, vous pouvez suivre les étapes de la vidéo ci-dessous pour apprendre à créer les clés.
Créez votre compte et suivez tout le processus de validation, selfie inclus, et tout le reste. Une fois votre compte entièrement approuvé, activez tous les mécanismes de sécurité (dans les paramètres de votre compte) tels qu’un mot de passe robuste, l’authentification à deux facteurs (2FA), etc. Tous ces éléments ne sont pas obligatoires pour réaliser ce tutoriel, mais je vous conseille de les activer car ces échanges sont la cible des hackers en permanence et vous ne voudriez pas faciliter les choses, n’est-ce pas ?
Après avoir activé les dispositifs de sécurité, vous devrez accéder à la section Futures du site et, lors de votre première connexion, répondre à un questionnaire simple qui vous aidera à connaître les bonnes réponses en cas d’erreur. Avec votre accès Futures activé, vous pourrez créer votre clé API (ApiKey). Il vous suffit d’aller dans la zone API Management de votre profil, de nommer la clé API et de définir les autorisations que cette clé aura, ce que je recommande de laisser sur les paramètres par défaut tout en ajoutant l’option Futures.
Assurez-vous d’écrire et de garder en sécurité l’Api Key et le Secret Key qui vous seront fournis, car nous en aurons besoin si vous voulez opérer via des robots en production.
Maintenant, pour opérer dans un environnement de développement, c’est encore plus simple. Accédez au Compte Démo de Futures et connectez-vous avec votre compte Binance. Vous aurez accès à une copie de la plateforme Binance Futures avec 5000 dollars fictifs pour vous amuser. Vous pouvez trader librement ici sans risques réels, sur un marché simulé. Dans la zone des paramètres de votre compte, vous trouverez une section Gestion API, qui vous donnera accès à vos clés de test/développement. Ce sont elles que nous utiliserons pendant le tutoriel, et l’autre paire ne sera utilisée que lorsque vous serez prêt à opérer en production.
Une fois le compte ouvert, avec les autorisations Futures et les clés en main, il est temps d’installer sur votre machine Node.js, la technologie que nous utiliserons pour construire le bot. Pour ce faire, rendez-vous sur le site officiel, téléchargez la version LTS et installez-la jusqu’au bout.
#2 – Créer le projet Node.js
Créez un dossier sur votre ordinateur nommé binance-futures et, à l’intérieur, déposez un fichier index.js vide et, via la console, exécutez un ‘npm init -y’ dans ce dossier afin de réaliser les configurations initiales d’un projet Node.js.
Nous allons installer quelques paquets via NPM pour préparer notre projet. Voici les commandes d’installation :
npm i dotenv axios ws
Le module dotenv sert à charger les variables d’environnement dans votre application Node.js. Nous utiliserons ces variables d’environnement pour définir les configurations de notre bot. Créez un fichier “.env” à la racine de votre projet avec le contenu suivant, représentant les configurations dont nous allons avoir besoin :
API_URL=
STREAM_URL=
API_KEY=
SECRET_KEY=
Voici une explication rapide de la façon dont vous devez remplir chaque variable après le signe égal :
API_KEY : votre clé API de futures, créée sur Binance ;
SECRET_KEY : votre secret API de futures, créé sur Binance ;
API_URL : l’adresse de base de l’API Binance que vous allez utiliser, vous pouvez mettre https://fapi.binance.com/fapi si vous travaillez en production ou https://demo-fapi.binance.com/fapi si vous travaillez en environnement de test ;
STREAM_URL : l’adresse de base des streams de Binance que vous allez utiliser, vous pouvez mettre
wss://fstream.binance.com/market/ws (prod) ou wss://fstream.binancefuture.com/market/ws (demo)
Gardez à l’esprit que les informations API_KEY et SECRET_KEY sont secrètes et que vous ne devez les partager avec personne, sinon quiconque les découvre pourra acheter et vendre des cryptomonnaies en votre nom, en utilisant votre argent.
Si vous prévoyez de versionner votre projet ou même de partager votre code avec d’autres personnes via Git, mettez un .gitignore à la racine de votre projet en incluant le dossier node_modules (par défaut) et le fichier .env, qui est conservé localement uniquement dans votre projet.
Pour charger ces configurations dans votre application, modifiez votre fichier package.json afin que le script de démarrage charge le .env et je vais aussi ajuster le type du projet pour utiliser la syntaxe moderne du JS :
Notez qu’il vous appartient de comprendre les meilleurs réglages pour vos objectifs financiers, votre situation financière, l’état du marché des cryptomonnaies au moment où vous opérez, etc. Je me concentrerai ici sur la construction du robot qui surveille, ouvre et ferme des positions sur le marché à terme, pas sur votre configuration.
#3 – Surveillance du marché
Commençons par la première activité, qui est la plus simple et qui constitue la base du robot : surveiller le marché. Il existe plusieurs façons de procéder, mais celle que je considère comme la meilleure passe par les flux de données. Les flux de données, ou flux d’information, sont des canaux que Binance met à disposition pour brancher votre bot et recevoir en temps réel le type d’information que vous souhaitez. La documentation complète et à jour de l’API et des flux des futures de Binance peut être consultée ici.
Pour se connecter aux flux, nous utilisons une technologie appelée WebSocket, native à JavaScript, que nous allons exploiter via la bibliothèque ws que nous avons installée précédemment. Ouvrez votre fichier index.js, importez la classe WebSocket du paquet ws et utilisez-la pour vous connecter au stream de Ticker selon l’URL indiquée dans la documentation. Cette connexion vous permet d’« écouter » un événement onmessage du WebSocket qui vous transmet, à chaque fois, diverses données du couple de devises que vous souhaitez surveiller (BTCUSDT dans l’exemple), comme son prix actuel.
L’événement onmessage déclenche une fonction à chaque fois que Binance vous envoie une mise à jour. Dans cette fonction, vous pouvez faire ce que vous voulez et, dans cet exemple, je nettoie le terminal sur la première ligne (par souci d’organisation) puis je convertis l’event.data, qui est initialement une chaîne, en un objet JSON et ne récupère que deux informations : la paire de devises (propriété s) et le prix actuel (propriété c).
Essayez d’exécuter ce projet après avoir enregistré le fichier et lancez la commande npm start pour voir en temps réel l’arrivée du prix.
Pour finaliser la surveillance, vous pouvez ajouter dans la fonction de l’événement onmessage votre logique de négociation, avec des entrées et sorties basées sur l’information dont nous disposons, à savoir le prix. Un exemple purement didactique ci-dessous, où nous avons une logique pour ouvrir notre position (indiquez un prix qui vous semble cohérent) et une autre logique pour la fermer; rappelez-vous que sur le marché à terme, vous pouvez ouvrir des positions acheteur ou vendeur, donc les prix n’ont pas obligatoirement à suivre la logique du plus élevé au plus bas, cela peut être l’inverse selon votre stratégie.
const price = parseFloat(obj.c);
if (price < 100000)
console.log('Ouvrir position !');
else if (price > 110000)
console.log('Fermer position !');
Il peut aussi être utile de disposer d’un mécanisme de contrôle pour éviter d’acheter de façon répétée ou de vendre de façon répétée. Cela peut être facilement géré en déclarant une variable en dehors de la fonction onmessage et en la modifiant au sein des conditions des if, comme ci-dessous.
let isOpened = false;
ws.onmessage = (event) => {
...
const price = parseFloat(obj.p);
if (price < 100000 && !isOpened) {
console.log('Ouvrir position !');
isOpened = true;
}
else if (price > 110000 && isOpened) {
console.log('Fermer position !');
isOpened = false;
}
}
En utilisant ces valeurs et en les comparant à vos objectifs d’achat ou de vente, le robot peut vous avertir, par exemple par e-mail (ou aussi par SMS, WhatsApp ou Telegram) qu’il est temps d’acheter ou de vendre. Bien sûr, dans un scénario idéal et plus complet, le robot pourrait effectuer ces opérations lui-même, ce qui est tout à fait possible à développer.
Auteur
Fabien Delpont
Fabien Delpont, développeur et créateur du site Python Doctor.