Tradier-API für Optionen: Chains, Multi-Leg und Streaming.
Wer US-Optionen systematisch handeln will, hat zwei realistische API-Optionen: IBKR oder Tradier. Tradier ist der freundlichere Weg — schlankere API, deutlich kürzerer Onboarding-Pfad und eine Option-Chain-API, die einfach funktioniert.
Was Tradier ist.
Tradier ist ein US-Brokerage-as-a-Service-Anbieter mit Schwerpunkt auf Optionen und Equities. Das Geschäftsmodell unterscheidet sich von Alpaca: statt Payment-for-Order-Flow finanziert sich Tradier über klassische Kommissionen pro Trade (Equities flat, Optionen pro Kontrakt). Für API-Zwecke ist das Konto- Pricing-Modell „Pro" relevant — flat 10 USD/Monat, dafür alle Trades kommissionsfrei bei Equities, sehr günstig bei Optionen.
Wichtig: wie alle US-Broker setzt Tradier eine Account-Eröffnung mit US-Tax-Status oder W-8BEN-Konstrukt voraus. Für deutsche Trader machbar, aber mit etwas Aufwand für die Erträgnisaufstellung.
Authentifizierung und Endpoint-Struktur.
Tradier hat zwei Authentifizierungspfade: OAuth2 für kundenseitige Apps und Personal Access Tokens für eigene Algos. Für individuelle Trader ist der PAT der richtige Weg — im Dashboard einen Token erzeugen, in der Umgebungsvariable ablegen.
Endpoints unterscheiden sich nach Sandbox und Produktion. Achtung: die Sandbox hat kein Streaming für Marktdaten — wer Live-Quote-Logik testen will, muss in Production mit einem winzigen Konto arbeiten.
Option-Chains abrufen.
Das Killer-Feature von Tradier ist die Option-Chain-API: in einem Call bekommen Sie die gesamte Chain für ein Underlying inklusive Greeks. Bei den meisten anderen Brokern müssen Sie pro Strike einen separaten Request feuern.
import os
import requests
TOKEN = os.environ["TRADIER_TOKEN"]
BASE_URL = "https://api.tradier.com/v1"
headers = {"Authorization": f"Bearer {TOKEN}", "Accept": "application/json"}
# Verfügbare Expirations für SPY
r = requests.get(
f"{BASE_URL}/markets/options/expirations",
headers=headers,
params={"symbol": "SPY", "includeAllRoots": "true"},
)
expirations = r.json()["expirations"]["date"]
print("Expirations:", expirations[:5])
# Komplette Chain für eine Expiration mit Greeks
target_exp = expirations[2]
r = requests.get(
f"{BASE_URL}/markets/options/chains",
headers=headers,
params={"symbol": "SPY", "expiration": target_exp, "greeks": "true"},
)
options = r.json()["options"]["option"]
for opt in options[:5]:
g = opt.get("greeks") or {}
print(
f"{opt['symbol']:<22} bid={opt['bid']:.2f} ask={opt['ask']:.2f} "
f"delta={g.get('delta', 0):.3f} iv={g.get('mid_iv', 0):.3f}"
)
Mit einem Request haben Sie die gesamte Chain (Calls und Puts, alle Strikes) für ein gegebenes Expiry — inklusive der vom Server berechneten Greeks. Für jede Optionsstrategie, die per Delta-Filter, IV-Rank oder Strike-Distanz selektiert, ist das Gold.
Multi-Leg-Orders.
Tradier unterstützt native Multi-Leg-Orders: Spreads, Iron Condors, Butterflies — als ein einziger Order-Request mit mehreren Legs. Das ist entscheidend, denn nur als atomare Order bekommen Sie sinnvolle Mid-Pricing-Fills bei mehrbeinigen Strategien. Wer zwei Einzel-Legs sequenziell sendet, hat ein erhebliches Leg-Risk.
import requests
ACCOUNT_ID = os.environ["TRADIER_ACCOUNT"]
BASE_URL = "https://api.tradier.com/v1"
# Vertical Call Spread auf SPY: long lower strike, short higher strike
payload = {
"class": "multileg",
"symbol": "SPY",
"type": "credit", # oder "debit", "even"
"duration": "day",
"price": "0.85", # Net-Credit, den wir verlangen
# Leg 0: short call (höherer Strike)
"option_symbol[0]": "SPY250620C00450000",
"side[0]": "sell_to_open",
"quantity[0]": "1",
# Leg 1: long call (niedrigerer Strike)
"option_symbol[1]": "SPY250620C00445000",
"side[1]": "buy_to_open",
"quantity[1]": "1",
}
r = requests.post(
f"{BASE_URL}/accounts/{ACCOUNT_ID}/orders",
headers=headers,
data=payload,
)
print(r.json())
Die type-Felder „credit", „debit" und „even" signalisieren dem Order-
Router, ob Sie Net-Credit erwarten (z. B. Iron Condor), Net-Debit bezahlen (Long-
Spread) oder neutral sind. Der price-Wert ist immer der Net-Preis der
Strategie — nicht eines einzelnen Legs.
OCC-Symbol-Notation verstehen.
Optionssymbole bei Tradier folgen der OCC-Standardnotation:
[Root][YYMMDD][C/P][Strike*1000]. Beispiel:
SPY250620C00450000 = SPY Call mit Expiration 20.06.2025, Strike 450,00.
Der Strike wird in tausendsteln Cent kodiert — 450 USD werden zu 00450000.
Praxis-Tipp: nicht selbst bauen, sondern die Symbole aus der Chain übernehmen. Spätestens bei Mini-Optionen, gebrochenen Strikes oder Symbol-Wechseln durch Splits sind manuelle Konstruktionen fehleranfällig.
Streaming und Live-Marktdaten.
Tradier bietet HTTP-Streaming für Quotes und Trades, technisch ähnlich zu OANDA. Vor dem Stream wird per REST eine kurzlebige Session-ID erzeugt, die dann im Stream-Request übergeben wird:
import requests
import json
# Session-ID für Market-Stream
r = requests.post(f"{BASE_URL}/markets/events/session", headers=headers)
session_id = r.json()["stream"]["sessionid"]
# Stream öffnen
stream = requests.get(
"https://stream.tradier.com/v1/markets/events",
headers=headers,
params={
"sessionid": session_id,
"symbols": "SPY,QQQ,SPY250620C00450000",
"filter": "quote,trade",
},
stream=True,
)
for line in stream.iter_lines():
if not line:
continue
event = json.loads(line)
if event["type"] == "quote":
print(event["symbol"], "bid", event["bid"], "ask", event["ask"])
Tradier streamt auch Optionsquotes — was wesentlich ist für jede aktive Optionsstrategie. Eine Iron-Condor-Position braucht laufende Bid/Ask-Updates auf allen 4 Legs, sonst können Sie weder das Risiko korrekt bewerten noch saubere Exits planen.
Risiko-Limits und Margin-Modell.
Optionen-Trading erfordert bei Tradier Approval auf bestimmten Levels: Level 2 (Long Calls/Puts), Level 3 (Spreads), Level 4 (Naked Options, Cash-Secured Puts in der Regel ab Level 2). Beantragung läuft über das Konto-Dashboard.
Margin-Anforderungen für Spreads sind bei Tradier konservativ aber transparent: bei einem Defined-Risk-Spread ist die Margin der maximal mögliche Verlust. Bei Naked Short Calls deutlich höher, mit eigenem Berechnungsmodell.
Eigene Risiko-Limits sollten Sie zwingend in Ihrer Engine implementieren — niemals allein auf Broker-seitige Limits verlassen:
- Max. Delta pro Underlying (z. B. nicht mehr als 30 Delta SPY-Exposure netto).
- Max. Vega aggregiert über das gesamte Portfolio.
- Max. Anzahl gleichzeitig offener Spreads pro Strategie.
- Tagesverlust-Limit, das automatisch alle neuen Order-Submits blockt.
Produktiv-Setup für Optionsstrategien.
- Chain-Snapshot-Service: alle 5 Minuten die relevanten Chains pullen, in Postgres ablegen. Daraus laufen Selektion und Risiko-Analyse — nicht aus dem Live-Stream.
- Order-Engine mit zwei Phasen: Trigger detektiert Setup, Validierung prüft Risiko-Limits, dann erst Order-Submit als Multi-Leg.
- Position-Manager: jeder offene Spread bekommt ein Exit-Profil (Profit-Target, Stop-Loss, Days-Before-Expiry-Close). Tägliches Check führt zur Schließungsorder, sobald Bedingungen erfüllt.
- Greek-Aggregation: Portfolio-weit Delta/Vega/Theta in 15-Minuten- Intervallen aggregieren, in Dashboard visualisieren. Schwellwerte alerten.
- End-of-Day-Reconciliation: Tradier-API-Positionen mit interner Datenbank abgleichen, Divergenzen sofort untersuchen — gerade nach Expirations-Tagen besonders wichtig.
Wann Tradier die richtige Wahl ist.
Tradier ist optimal für Optionsstrategien auf US-Equities und -ETFs, wenn Sie eine saubere API mit nativer Multi-Leg-Unterstützung wollen, ohne das Setup-Bottleneck der IBKR-Gateway-Architektur. Für Iron Condors, Vertical Spreads, Calendar Spreads und Wheel-Strategien auf SPY, QQQ und Einzelaktien ist die API ein gutes Werkzeug.
Wer Optionen auf Indizes (SPX, NDX), Futures-Optionen oder europäische Optionen handeln will, muss zu IBKR oder einem Futures-Specialty-Broker. Wer nur einzelne Calls und Puts handelt und keine Spreads braucht, kommt mit Alpaca-Optionen (in der Zwischenzeit erweitert) ebenfalls aus. Aber für ernsthafte Multi-Leg- Strategien ist Tradier in seiner Klasse herausragend.
Sie wollen eine Optionsstrategie-Engine bauen oder ein bestehendes Setup auf Tradier migrieren? Erstgespräch buchen — wir konzipieren den Stack, der auch bei volatilen Märkten ruhig bleibt.