Introduction

Dans cet article, je vais vous guider étape par étape dans le processus de téléchargement massif de données historiques d'Order Book depuis l'API Tardis. Que vous soyez trader quantitatif, analyste blockchain ou développeur DeFi, ces données sont essentielles pour back-tester vos stratégies de trading ou analyser la liquidité historique d'un exchange. 💡 Prérequis : Ce tutoriel est conçu pour les débutants complets. Aucune expérience préalable avec les API n'est nécessaire. Je vous explaine chaque concept en partant de zéro.

Qu'est-ce que Tardis et pourquoi ses données Order Book sont-elles précieuses ?

Tardis est un fournisseur spécialisé dans la collecte et la distribution de données historiques du marché crypto. Leur technologie capture chaque transaction, chaque modification d'order book avec une granularité exceptionnelle.

Format des données Order Book

Un Order Book est composé de deux côtés : Les snapshots capturent l'état complet du livre d'ordres à un instant T, vous permettant d'analyser la profondeur du marché et la distribution de la liquidité.

Configuration initiale de votre environnement

Installation des dépendances

# Installation via pip
pip install requests pandas python-dotenv

Vérification de l'installation

python -c "import requests; print(f'Requests version: {requests.__version__}')"

Structure du projet

mon_projet_tardis/
├── config.py
├── downloader.py
├── requirements.txt
└── data/
    └── .gitkeep

Configuration de la clé API

Obtention de votre clé API Tardis

Pour accéder aux données Tardis, vous devez créer un compte sur tardis.dev. Le niveau gratuit vous permet de tester l'API avec des limitations.
# config.py
import os
from dotenv import load_dotenv

load_dotenv()  # Charge les variables d'environnement depuis .env

TARDIS_API_KEY = os.getenv("TARDIS_API_KEY")
BASE_URL = "https://api.tardis.dev/v1"

Vérification simple

if not TARDIS_API_KEY: raise ValueError("⚠️ Clé API Tardis non trouvée. Vérifiez votre fichier .env")
# .env (à créer à la racine du projet)
TARDIS_API_KEY=votre_cle_api_ici

Téléchargement basique d'un snapshot

Comprendre les endpoints de l'API

L'API Tardis propose plusieurs endpoints pour différents types de données. Pour les Order Book snapshots, l'endpoint principal est :
GET /exchanges/{exchange}/order-book-snapshots

Premier script de téléchargement

# downloader.py
import requests
import time
import os
from datetime import datetime, timedelta

class TardisDownloader:
    def __init__(self, api_key):
        self.api_key = api_key
        self.base_url = "https://api.tardis.dev/v1"
        self.headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }
    
    def get_orderbook_snapshots(self, exchange, symbol, start_date, end_date):
        """
        Télécharge les snapshots d'order book pour un symbole donné.
        
        Args:
            exchange: Nom de l'exchange (ex: 'binance', 'coinbase')
            symbol: Paire de trading (ex: 'BTC-USDT')
            start_date: Date de début (format ISO 8601)
            end_date: Date de fin (format ISO 8601)
        """
        url = f"{self.base_url}/exchanges/{exchange}/order-book-snapshots"
        
        params = {
            "symbol": symbol,
            "from": start_date,
            "to": end_date,
            "format": "json"
        }
        
        print(f"📥 Téléchargement des données pour {symbol}...")
        print(f"   Période: {start_date} → {end_date}")
        
        response = requests.get(
            url, 
            headers=self.headers, 
            params=params,
            timeout=60
        )
        
        if response.status_code == 200:
            data = response.json()
            print(f"✅ {len(data)} snapshots récupérés")
            return data
        else:
            print(f"❌ Erreur {response.status_code}: {response.text}")
            return None

Utilisation

downloader = TardisDownloader(api_key="votre_cle_tardis") data = downloader.get_orderbook_snapshots( exchange="binance-futures", symbol="BTC-USDT", start_date="2024-01-01T00:00:00Z", end_date="2024-01-02T00:00:00Z" )

Téléchargement par lots avec gestion desrate limits

Pourquoi le téléchargement par lots ?

Les données historiques peuvent représenter des gigaoctets. Télécharger tout d'un coup risque de :

Implémentation robuste

Ressources connexes

Articles connexes