Bot de trading - On part de la base

Amis lecteurs,

Avez-vous déjà observé une interface de marché sur un exchange.

Le carnet d’ordres clignote dans tous les sens.

L’historique se remplit toujours au même rythme.

Il n’y a pas d’humain derrière ces actions, uniquement des bots qui s’affrontent.

On pourrait écrire des encyclopédies sur les bots de trading, mais cette première partie est une introduction rapide en la matière.

Sans entrer dans un cours de programmation ou de trading, on va aborder les notions de base.

Le langage de programmation

Elément central du bot, le langage de programmation définit les règles de logique.

Il a sa structure, ses règles de grammaire et son vocabulaire comme un langage humain.

Le programmeur/développeur rédige une logique et une structure de données.

La machine exécute ensuite le programme.

Si une condition est remplie fais quelque chose, sinon fais autre chose.

Lance une boucle, si une condition est remplie arrête la boucle, sinon relance un cycle.

Aujourd’hui le plus simple et le plus accessible pour un débutant est Python.

D’ailleurs il est le plus utilisé dans le trading par les professionnels.

Il se télécharge sur le site officiel et s’installe sans problème.

$ python --version
Python 3.11.2

API - Application Programming Interface

L’Application Programming Interface est une interface qui permet de “brancher“ un programme à un autre programme pour échanger des données.

Tous les exchange proposent une API pour que les développeurs branchent leur programme au marché.

Le programme a accès au dernier prix, au carnet d’ordres, à l’historique et peut même créer un ordre.

Une API a ce qu’on appelle des “endpoints”, des points d’arrivée.

Notre programme interroge une URL bien précise, et l’exchange nous renvoie des données au format JSON.

Exemple: vous voulez récupérer des infos sur le marché bitcoin/monero

https://www.sevenseas.exchange/api/v1/markets/xmr-btc
{
    "symbol": "XMR-BTC",
    "lastPrice": 0.005475,
    "priceYesterday": 0.00542599,
    "high": 0.00574874,
    "low": 0.005381,
    "volume": 0.1841611228299145
}

L’exchange vous renvoie les infos qu’il a sur ce marché: le prix, le plus haut sur 24h, le plus bas sur 24h, le plus haut ordre d’achat (bid), le plus bas ordre de vente (ask), le volume…

Ces données sont ensuite intégrées à votre programme.

L’exchange Seven Seas va servir de bac à sable pour nos expérimentations.

C’est l’un des meilleurs en ce moment car il ne demande pas de KYC et permet de trader des monnaies anonymes (Monero, Haven délisté récemment de Kucoin, Conceal etc…).

Premier programme basique

Vous aurez besoin d’installer les outils suivants:

Connaitre quelques commandes de base est requis pour la suite (cd, mkdir…)

Ouvrez un terminal et lancer ces commandes:

mkdir bot_test

cd bot_test

poetry init

poetry add requests

Créez un fichier nommé main.py dans ce répertoire.

Copiez ce script dans le fichier main.py 

import requests
import time

api_url = 'https://www.sevenseas.exchange/api/v1'

def fetch_market_btc_xmr():
    response = requests.get(f'{api_url}/markets/xmr-btc')
    data = response.json()
    print(data)

while True:
    fetch_market_btc_xmr()
    number_seconds = 60
    time.sleep(number_seconds)

Dans le terminal lancer la commande suivante:

poetry run main.py

Vous aurez le résultat suivant:

{'symbol': 'XMR-BTC', 'lastPrice': 0.00552975, 'priceYesterday': 0.005405, 'high': 0.00574874, 'low': 0.005381, 'volume': 0.1835685729341446}

{'symbol': 'XMR-BTC', 'lastPrice': 0.00552975, 'priceYesterday': 0.005405, 'high': 0.00574874, 'low': 0.005381, 'volume': 0.1835685729341446}

Quelques explications

On charge la librairie requests qui fait des appels au réseau.

On définit une fonction fetch_market_btc_xmr() qui récupère les infos du marché btc_xmr

On initialise une boucle qui lance cette fonction et met en pause le script à chaque minute.

C’est tout pour cette première partie.

Je ne veux pas vous assommer d’informations (enfin si mais pas cette semaine).

Conclusion

Cette première partie était une petite initiation dans le monde merveilleux des bots.

Si le sujet vous intéresse vous avez énormément de recherches à faire par vous-même (mais je vais vous faire gagner un peu de temps).

Je vous recommande d’apprendre les notions de base en programmation.

Cet effort ne sera jamais du temps perdu.

Ce canal Telegram vous est ouvert.

Les anciens numéros sont disponibles à cette adresse.

À la semaine prochaine,
Cryptomancien

PS: ceci n’est pas un conseil d’investissement tout ça…