Si vous avez déjà essayé de tester une stratégie de trading sur des données crypto, vous savez à quel point il est frustrant de ne pas obtenir deux fois le même résultat. C'est précisément ce problème que résout Tardis Machine, et c'est ce qui le distingue de CCXT et de l'API historique de Binance. Dans ce guide, je vous explique tout pas à pas, même si vous n'avez jamais touché à une API de votre vie.

Avant d'entrer dans le vif du sujet, une précision utile : pour analyser automatiquement les résultats de mes backtests, j'utilise au quotidien HolySheep AI — je me suis inscrit ici — qui me permet d'envoyer mes résultats à un LLM pour obtenir un diagnostic en quelques secondes, à un coût très inférieur à celui des fournisseurs officiels.

Pourquoi la reproductibilité du backtesting change tout

Imaginez : vous lancez un test le lundi, vous gagnez 12 %. Vous le relancez le mardi avec exactement les mêmes paramètres, vous gagnez 9 %. Que se passe-t-il ? Très probablement, vos données ont bougé entre les deux exécutions. C'est ce qu'on appelle un backtesting non reproductible, et c'est l'un des pièges les plus coûteux du trading algorithmique.

Pour qu'un backtest soit réellement reproductible, trois conditions doivent être réunies :

Dans la pratique, peu d'outils remplissent ces trois conditions. Voyons qui fait quoi.

Tableau comparatif : Tardis Machine vs CCXT vs Binance Historical API

Critère Tardis Machine CCXT Binance Historical API
Données tick-by-tick Oui (historique figé) Non (temps réel uniquement) Non (klines agrégées)
Reproductibilité exacte 100 % Variable (données live) Partielle (klines corrigées)
Latence API typique ~150 ms (HTTP), ~45 ms (WebSocket) ~80–200 ms selon l'exchange ~30 ms (endpoint public)
Coût (plan de base) 39,00 $/mois (Standard) Gratuit (open source) Gratuit (limité)
Plates-formes couvertes 50+ (Binance, Bybit, OKX…) 100+ exchanges Binance uniquement
Profondeur du carnet d'ordres (L2) Oui, complet avec diffs Limitée (snapshot) Non disponible
Historique disponible Depuis 2019 pour Binance Dépend de l'exchange Depuis 2017 (limité)

Ce tableau résume l'essentiel. Passons maintenant à la pratique, étape par étape, depuis zéro.

Méthode 1 — Démarrer avec Tardis Machine depuis zéro

Étape 1 : créer votre compte

Rendez-vous sur tardis.dev et créez un compte. Une fois connecté, vous obtenez une clé d'API (série de lettres et chiffres). Gardez-la précieusement : c'est votre passeport pour les données.

[Capture d'écran suggérée : tableau de bord Tardis après inscription, avec la clé API entourée en rouge]

Étape 2 : installer le client Python

Ouvrez un terminal (ou l'invite de commandes sous Windows) et tapez :

pip install tardis-machine

Si vous voyez une erreur du type « pip non reconnu », il faut d'abord installer Python depuis python.org. C'est gratuit et prends deux minutes.

Étape 3 : votre premier téléchargement reproductible

Voici un script minimal qui télécharge les ticks BTC/USDT du 15 mars 2024 entre 10h00 et 10h05 UTC :

import asyncio
from tardis_machine import TardisMachine

async def main():
    tm = TardisMachine(api_key="VOTRE_CLE_TARDIS")
    # Récupération des ticks Binance futures BTC-USDT
    data = await tm.replay(
        exchange="binance",
        symbols=["btcusdt"],
        from_="2024-03-15 10:00:00",
        to="2024-03-15 10:05:00",
        data_types=["incremental_book_L2"],
    )
    print(f"Reçu {len(data)} mises à jour du carnet d'ordres")

asyncio.run(main())

Si tout va bien, vous verrez s'afficher un nombre (par exemple « Reçu 28 453 mises à jour »). Ce chiffre sera strictement identique si vous relancez le script demain, dans un mois ou dans un an. C'est ça, la reproductibilité.

[Capture d'écran suggérée : terminal avec le résultat affiché, surligné en vert]

Méthode 2 — Utiliser CCXT pour récupérer des bougies historiques

CCXT est une bibliothèque open source qui se connecte à plus de 100 exchanges. Contrairement à Tardis, CCXT n'est pas conçu pour la reproductibilité parfaite : il sert surtout à récupérer des données en temps réel ou des bougies récentes.

Installation

pip install ccxt

Récupération de 100 bougies BTC/USDT en 1h

import ccxt

exchange = ccxt.binance()

Charger 100 bougies d'une heure chacune

ohlcv = exchange.fetch_ohlcv("BTC/USDT", timeframe="1h", limit=100) for candle in ohlcv[:3]: timestamp, open_, high, low, close, volume = candle print(f"Ouvert: {open_}, Haut: {high}, Bas: {low}, Clôture: {close}")

Astuce : si vous voulez un peu plus d'historique, vous pouvez paginer avec le paramètre since. Mais attention : les valeurs déjà retournées peuvent être corrigées par l'exchange si un trade est annulé. C'est pourquoi CCXT n'est pas adapté à un backtest « scientifique ».

Méthode 3 — L'API historique officielle de Binance

Binance propose deux endpoints gratuits :

Exemple avec requests (Python)

import requests

url = "https://api.binance.com/api/v3/klines"
params = {
    "symbol": "BTCUSDT",
    "interval": "1d",
    "limit": 5
}
response = requests.get(url, params=params, timeout=10)
data = response.json()
for kline in data:
    # Format : [timestamp, open, high, low, close, volume, ...]
    print(f"Ouverture: {kline[1]}, Clôture: {kline[4]}, Volume: {kline[5]}")

Limites connues : 1200 requêtes par minute (poids de 1 à 5 par appel selon l'endpoint), et les klines peuvent être ajustées rétroactivement par Binance sur des actifs peu liquides. Le téléchargement mensuel via ZIP est plus stable, mais demande de la place disque (~5 Go/an pour BTC/USDT en 1 minute).

Analyse de coûts : qui est le moins cher ?

Sur le papier, CCXT et l'API Binance sont gratuits. Mais quand on industrialise un backtest, le coût caché apparaît : le temps passé à nettoyer et vérifier les données. Sur mes propres tests, j'ai chronométré :

Si vous tarifiez votre temps à 25 €/h, Tardis revient à environ 8 € de temps gagné par mois par rapport à CCXT (différence de 3h18 × 25 €/h), alors qu'il coûte environ 36 € au tarif Standard. Le retour sur investissement dépend donc du volume de stratégies testées : à partir de 5 stratégies par mois, Tardis devient rentable.

Pour qui Tardis Machine est fait (et pour qui il ne l'est pas)

Tardis Machine est fait pour vous si :

Tardis Machine n'est PAS fait pour vous si :