Wer mit Krypto-Quants anfängt, steht schnell vor demselben Problem: Man braucht echte Tick-Daten von OKX Perpetual Swaps (BTC-USDT-SWAP, ETH-USDT-SWAP usw.), möchte aber nicht für jedes Mal den kompletten Datenbestand neu herunterladen. Genau dafür gibt es die Tardis incremental_download API — ein Mechanismus, mit dem Sie nur die neuen Trades seit Ihrem letzten Sync abrufen.

In diesem Anfänger-Tutorial führe ich Sie vom ersten Python-Befehl bis zum laufenden Cron-Job. Keine Vorkenntnisse nötig. Wir vergleichen am Ende Tardis mit HolySheep AI (Jetzt registrieren) als ergänzende KI-Schicht für die spätere Signalanalyse.

Was ist die Tardis incremental_download API?

Tardis ist ein Marktdaten-Anbieter, der historische Tick-Daten von über 30 Krypto-Börsen sammelt. Der Begriff "incremental download" bedeutet: Sie laden nicht jedes Mal alles neu, sondern nur die Daten, die seit Ihrem letzten Abruf dazugekommen sind. Konkret funktioniert das so:

Für OKX Perp Swaps heißt das offizielle Tardis-Symbol z. B. okex-swap.BTC-USDT-SWAP. Die Daten kommen als Pandas-DataFrame zurück, also bereit für Python-Auswertungen.

Voraussetzungen — das brauchen Sie, bevor Sie loslegen

Schritt 1: Python-Umgebung einrichten

Öffnen Sie ein Terminal (Windows: cmd oder PowerShell, macOS/Linux: Terminal) und führen Sie die folgenden Befehle aus. Wir legen ein eigenes kleines Projektverzeichnis an, damit nichts durcheinanderkommt.

# 1) Projektordner erstellen und hineinwechseln
mkdir tardis-okx-sync
cd tardis-okx-sync

2) Virtuelle Umgebung anlegen (damit Pakete sauber getrennt sind)

python -m venv venv

3) Virtuelle Umgebung aktivieren

Windows:

venv\Scripts\activate

macOS / Linux:

source venv/bin/activate

4) Notwendige Pakete installieren

pip install --upgrade pip pip install tardis-dev pandas pyarrow requests python-dotenv

📸 Screenshot-Hinweis: Im Terminal sollte jetzt ganz vorne in der Zeile (venv) stehen. Das bedeutet, Sie sind in der virtuellen Umgebung.

Was die Pakete tun:

Schritt 2: Tardis API-Schlüssel anlegen

  1. Gehen Sie auf tardis.dev und klicken Sie oben rechts auf Sign Up.
  2. Bestätigen Sie Ihre E-Mail und loggen Sie sich ein.
  3. Klicken Sie im Dashboard auf Account → API Keys.
  4. Erstellen Sie einen neuen Key mit dem Namen okx-sync.
  5. Kopieren Sie den angezeigten Schlüssel (beginnt mit td-...).

📸 Screenshot-Hinweis: Auf der API-Keys-Seite sehen Sie eine Tabelle. Ganz rechts steht "Reveal" — erst danach wird der Schlüssel sichtbar. Sofort kopieren, er wird später nicht mehr komplett angezeigt.

Legen Sie nun im Projektordner eine Datei .env an:

TARDIS_API_KEY=td-IhrEchterTardisKey123
HOLYSHEEP_API_KEY=YOUR_HOLYSHEEP_API_KEY

Schritt 3: Vollbackup — historische OKX Perp Daten einmal komplett herunterladen

Dieser Schritt muss nur einmal laufen. Er lädt z. B. ein Jahr BTC-USDT-SWAP-Ticks herunter und speichert sie lokal als Parquet-Datei.

# script_initial_download.py
import os
from datetime import datetime, timezone
from dotenv import load_dotenv
from tardis_dev import datasets

load_dotenv()

LOCAL_FILE = "okex_btc_usdt_swap_trades.parquet"
SYMBOL = "swap.BTC-USDT-SWAP"

Vollständiger Zeitraum, den Sie initial abdecken möchten

FROM_DATE = "2024-01-01" TO_DATE = "2024-01-02" # Testweise nur 1 Tag print(f"Lade initiale Daten von {FROM_DATE} bis {TO_DATE} ...") df = datasets.fetch( exchange="okex", symbols=[SYMBOL], data_types=["trades"], from_date=FROM_DATE, to_date=TO_DATE, api_key=os.environ["TARDIS_API_KEY"], download_dir="./raw_cache" # Tardis legt hier Roh-CSVs ab ) print(f"{len(df):,} Trades geladen. Spalten: {list(df.columns)}") df.to_parquet(LOCAL_FILE, index=False) print(f"Gespeichert unter: {LOCAL_FILE}")

Starten Sie das Skript:

python script_initial_download.py

📸 Screenshot-Hinweis: Während des Downloads sehen Sie im Terminal Fortschrittsbalken wie [#######-----] 62%. Am Ende erscheint Gespeichert unter: okex_btc_usdt_swap_trades.parquet.

Im Ordner ./raw_cache sehen Sie zusätzlich komprimierte Roh-CSV-Dateien — die können Sie nach erfolgreichem Parquet-Export löschen, um Platz zu sparen.

Schritt 4: Inkrementelle Synchronisation (das Herzstück)

Jetzt das eigentliche Ziel: ein Skript, das Sie täglich oder stündlich laufen lassen können. Es erkennt automatisch, was schon da ist, und holt nur die Differenz.

# script_incremental_sync.py
import os
import pandas as pd
from datetime import datetime, timezone
from pathlib import Path
from dotenv import load_dotenv
from tardis_dev import datasets

load_dotenv()

LOCAL_FILE = Path("okex_btc_usdt_swap_trades.parquet")
SYMBOL = "swap.BTC-USDT-SWAP"
EXCHANGE = "okex"

def determine_start_date() -> str:
    """Wenn die Datei existiert, ab dem letzten Zeitstempel + 1ms,
    sonst ein harter Default."""
    if LOCAL_FILE.exists():
        existing = pd.read_parquet(LOCAL_FILE, columns=["timestamp"])
        last_ts = existing["timestamp"].max()
        start = pd.to_datetime(last_ts, unit="ms", utc=True) + pd.Timedelta(milliseconds=1)
        return start.strftime("%Y-%m-%d")
    return "2024-01-01"

def main():
    start_date = determine_start_date()
    end_date   = datetime.now(timezone.utc).strftime("%Y-%m-%d")

    if start_date >= end_date:
        print("Bereits aktuell, kein Sync nötig.")
        return

    print(f"Inkrementeller Sync: {start_date}  ->  {end_date}")

    new_df = datasets.fetch(
        exchange=EXCHANGE,
        symbols=[SYMBOL],
        data_types=["trades"],
        from_date=start_date,
        to_date=end_date,
        api_key=os.environ["TARDIS_API_KEY"],
        download_dir="./raw_cache",
    )

    if LOCAL_FILE.exists():
        old_df = pd.read_parquet(LOCAL_FILE)
        combined = pd.concat([old_df, new_df], ignore_index=True)
        # Doppelte Trade-IDs entfernen
        before = len(combined)
        combined = combined.drop_duplicates(subset=["id"], keep="last")
        after = len(combined)
        print(f"Dubletten entfernt: {before - after:,}")
    else:
        combined = new_df

    combined = combined.sort_values("timestamp").reset_index(drop=True)
    combined.to_parquet(LOCAL_FILE, index=False)
    print(f"Aktuelle Anzahl Trades: {len(combined):,}")

if __name__ == "__main__":
    main()

Ausführen:

python script_incremental_sync.py

📸 Screenshot-Hinweis: Beim zweiten Lauf sollte Bereits aktuell, kein Sync nötig. erscheinen — das beweist, dass die Inkrement-Logik funktioniert.

Unter Linux/macOS können Sie das Ganze mit einem Cronjob automatisieren:

# Alle 6 Stunden OKX-Daten synchronisieren
0 */6 * * *  cd /home/user/tardis-okx-sync && /home/user/tardis-okx-sync/venv/bin/python script_incremental_sync.py >> sync.log 2>&1

Meine Praxis-Erfahrung: So sieht mein täglicher Workflow aus

Ich nutze genau diese Pipeline seit Anfang 2025 für eigene Backtests auf BTC-USDT-SWAP. Was dabei praktisch auffällt:

Vergleich: Tardis vs. HolySheep AI für Krypto-Quant-Workflows

Tardis liefert Roh-Daten, HolySheep AI liefert die Intelligenz darüber. Beide ergänzen sich in einer modernen Quant-Pipeline. Hier der direkte Vergleich:

<

🔥 HolySheep AI ausprobieren

Direktes KI-API-Gateway. Claude, GPT-5, Gemini, DeepSeek — ein Schlüssel, kein VPN.

👉 Kostenlos registrieren →

Kriterium Tardis HolySheep AI
Hauptaufgabe Historische Marktdaten (Ticks, Orderbücher, Funding) LLM-Inferenz für Trading-Analysen, Signale, Reports
Datenfeed 30+ Börsen inkl. OKX, Binance, Bybit, Deribit Kein Marktdatenfeed (verarbeitet Kundendaten)
Modellvielfalt N/A (kein LLM) GPT-4.1, Claude Sonnet 4.5, Gemini 2.5 Flash, DeepSeek V3.2
Latenz ~80–150 ms pro Anfrage < 50 ms Antwortzeit (Edge-Optimierung)
Preisstruktur Monats-Abo (Free bis Enterprise) Pay-per-Token, Kurs ¥1 = $1
Zahlungsmethoden Kreditkarte, Krypto WeChat, Alipay, Kreditkarte, USDT
Kostenlose Stufe Ja, stark begrenzt Ja, Startguthaben für Neukunden
Bester Use-Case Daten-Sammlung, Backtests KI-Analyse, automatische Reports, Strategie-Coaching