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
- Ein Deribit-Konto (kostenlose Testumgebung verfügbar)
- Grundverständnis von JSON-Datenformaten
- Ein Tool zum Senden von WebSocket-Anfragen (z.B. Postman, oder Sie nutzen HolySheep AI als Vermittler)
- Optional: Python- oder JavaScript-Kenntnisse für die Automatisierung
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:
- instrument_name: Der eindeutige Name des Instruments (z.B. BTC-28JUN24-95000-P)
- mark_price: Der aktuelle Marktpreis der Option
- bid_price / ask_price: Kauf- und Verkaufspreis
- underlying_price: Preis des Basiswerts (z.B. Bitcoin)
- instrument_type: "call" oder "put"
- expiration_timestamp: Wann die Option ausläuft
- greeks: Delta, Gamma, Vega, Theta
# 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%")