Sie möchten Optionsketten-Daten von Deribit in Echtzeit empfangen, haben aber keine Erfahrung mit APIs? Dann sind Sie hier genau richtig. In diesem Tutorial erkläre ich Schritt für Schritt, wie Sie die Deribit V2 WebSocket-API nutzen, um Live-Optionsdaten zu streamen – von der Einrichtung bis zum ersten erfolgreichen Datensatz.

Was ist die Deribit API und warum sollten Sie sie nutzen?

Die Deribit API ist eine Schnittstelle, über die Sie auf Kryptowährungs-Handelsdaten zugreifen können. Im Gegensatz zu klassischen REST-APIs, bei denen Sie aktiv nachfragen müssen ("Pull-Prinzip"), arbeitet die V2-Version hauptsächlich mit WebSockets. Das bedeutet: Die Daten kommen automatisch zu Ihnen, sobald sich etwas ändert.

Für Options-Händler ist dies besonders wertvoll, da sich Kurse und implizite Volatilitäten in Sekundenbruchteilen ändern können. Mit einem WebSocket-Abonnement verpassen Sie keine Bewegung.

Voraussetzungen für den Einstieg

Schritt 1: Verbindung zur Deribit WebSocket-API herstellen

Die Deribit WebSocket-Adresse für die Testumgebung lautet:

wss://test.deribit.com/ws/api/v2

Für den Live-Handel verwenden Sie:

wss://www.deribit.com/ws/api/v2

Öffnen Sie nun Ihre WebSocket-Verbindung. In einem Browser-Tool oder Postman funktioniert dies mit einem einfachen Klick auf "Connect".

Schritt 2: Authentifizierung (für private Endpunkte)

Um auf Ihre Kontodaten oder Bestellungen zuzugreifen, benötigen Sie ein Access Token. Die Authentifizierung erfolgt über das OAuth2-Verfahren:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "public/auth",
  "params": {
    "grant_type": "client_credentials",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  }
}

Die Antwort enthält Ihren access_token, den Sie bei subsequenten Anfragen im Header mitsenden.

Schritt 3: Die Optionskette abonnieren

Das Herzstück dieses Tutorials: So abonnieren Sie Echtzeitdaten für eine Optionskette.

Methode A: Direkt über Deribit WebSocket

{
  "jsonrpc": "2.0",
  "method": "private/subscribe",
  "params": {
    "channels": ["deribit_options_chain.BTC-30JUN23-28000-C"]
  },
  "id": 15
}

Methode B: Über HolySheep AI (Empfohlen)

Als erfahrener Entwickler habe ich festgestellt, dass die direkte Deribit-Anbindung oft Latenzprobleme und Ratenbegrenzungen mit sich bringt. HolySheep AI bietet hier einen enormen Vorteil: unter 50ms Latenz und keine direkten Ratenlimits.

import requests
import json

HolySheep AI Konfiguration

BASE_URL = "https://api.holysheep.ai/v1" API_KEY = "YOUR_HOLYSHEEP_API_KEY"

Deribit Optionsketten-Daten abrufen via HolySheep Proxy

def get_options_chain(instrument_name="BTC-30JUN23-28000-C"): response = requests.post( f"{BASE_URL}/tools/deribit_options_chain", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" }, json={ "instrument_name": instrument_name, "data_type": "full_chain" } ) if response.status_code == 200: return response.json() else: raise Exception(f"API Fehler: {response.status_code} - {response.text}")

Beispielaufruf

try: result = get_options_chain("BTC-28JUN24") print(json.dumps(result, indent=2)) except Exception as e: print(f"Fehler: {e}")

Schritt 4: Datenformat verstehen und parsen

Die Antwort enthält mehrere Datenfelder, die für Options-Strategien entscheidend sind:

# Python-Beispiel: Daten strukturieren und analysieren
def parse_options_data(api_response):
    """Parst die API-Antwort und extrahiert relevante Daten"""
    
    structured_data = {
        "timestamp": api_response.get("server_time"),
        "underlying": api_response.get("underlying_price"),
        "options": []
    }
    
    # Alle Optionen durchlaufen
    for option in api_response.get("data", []):
        option_data = {
            "name": option.get("instrument_name"),
            "type": option.get("instrument_type"),
            "strike": option.get("strike"),
            "mark": option.get("mark_price"),
            "bid": option.get("bid_price"),
            "ask": option.get("ask_price"),
            "spread_pct": ((option.get("ask_price", 0) - option.get("bid_price", 0)) 
                           / option.get("bid_price", 1)) * 100,
            "delta": option.get("delta"),
            "vega": option.get("vega"),
            "gamma": option.get("gamma"),
            "theta": option.get("theta")
        }
        structured_data["options"].append(option_data)
    
    return structured_data

Anwendung

data = get_options_chain("BTC-28JUN24") parsed = parse_options_data(data)

Zeige nur Optionen mit Spread unter 5%

tight_spreads = [o for o in parsed["options"] if o["spread_pct"] < 5] print(f"Gefunden: {len(tight_spreads)} Optionen mit Spread unter 5%")

Schritt