Alpaca-API für Trading: REST, Streaming und Praxis.
Alpaca ist das, was IBKR nicht sein wollte: eine reine API-Broker-Plattform, die mit REST und Websocket in der Sprache moderner Entwickler spricht. Für US-Equities und Krypto ist es heute eine der elegantesten Optionen. Für alles andere bleibt es eine Einbahnstraße.
Architektur: REST plus Streaming.
Alpaca trennt sauber zwischen drei Endpoint-Klassen: Trading-API (Orders, Positionen, Account-Status), Market-Data-API (historische Bars, aktuelle Quotes) und Streaming (Live-Quotes, Live-Trades, Order-Updates per Websocket). Jeder Endpoint hat eigene Basis-URLs für Paper und Live — ein simpler Switch über Umgebungsvariablen reicht.
Das wirklich Gute: ein API-Key öffnet alle drei Klassen, kein zusätzliches Setup, keine Gateway-App, keine Client-IDs. Sie können in fünf Minuten vom Account-Signup zum ersten erfolgreichen Paper-Trade kommen — bei IBKR sind das Tage.
Erster Order-Roundtrip.
Mit dem offiziellen Python-SDK (alpaca-py) sieht der minimale Workflow
so aus:
from alpaca.trading.client import TradingClient
from alpaca.trading.requests import MarketOrderRequest, LimitOrderRequest
from alpaca.trading.enums import OrderSide, TimeInForce
API_KEY = "PK..."
SECRET = "..."
client = TradingClient(API_KEY, SECRET, paper=True)
# Konto-Status
acct = client.get_account()
print(f"Cash: {acct.cash} Equity: {acct.equity}")
# Marktorder: 5 Aktien AAPL
req = MarketOrderRequest(
symbol="AAPL",
qty=5,
side=OrderSide.BUY,
time_in_force=TimeInForce.DAY,
)
order = client.submit_order(req)
print(f"Order-ID: {order.id} Status: {order.status}")
# Limit-Order mit GTC
limit_req = LimitOrderRequest(
symbol="MSFT",
qty=10,
side=OrderSide.BUY,
time_in_force=TimeInForce.GTC,
limit_price=350.00,
)
limit = client.submit_order(limit_req)
Das ist es. Kein Eventloop, kein Wartetimer, kein Reconnect-Loop. Für Strategien, die im Minuten- oder Stunden-Rhythmus traden, reicht REST in 95 % der Fälle.
Streaming und Order-Updates.
Wer schnelle Reaktionen braucht (Tick- oder Sekunden-Logik), kommt um Websockets nicht herum. Alpaca bietet zwei Streams: einen für Marktdaten und einen für Account-Events. Beide laufen parallel.
from alpaca.data.live import StockDataStream
from alpaca.trading.stream import TradingStream
import asyncio
API_KEY = "PK..."
SECRET = "..."
async def on_quote(quote):
print(f"{quote.symbol}: bid={quote.bid_price} ask={quote.ask_price}")
async def on_order_update(data):
print(f"Event: {data.event} order={data.order.id} status={data.order.status}")
market_stream = StockDataStream(API_KEY, SECRET)
market_stream.subscribe_quotes(on_quote, "AAPL", "MSFT", "TSLA")
trade_stream = TradingStream(API_KEY, SECRET, paper=True)
trade_stream.subscribe_trade_updates(on_order_update)
async def main():
await asyncio.gather(
market_stream._run_forever(),
trade_stream._run_forever(),
)
asyncio.run(main())
Wichtig: die Marktdaten-Streams unterscheiden zwischen IEX-Feed (gratis) und SIP- Feed (kostenpflichtig, alle US-Exchanges konsolidiert). Wer ernsthaft tradet, braucht SIP — der IEX-Anteil am Gesamtvolumen liegt unter 3 %, das verzerrt jede Liquiditätsschätzung.
Was Alpaca gut macht.
- Onboarding-Zeit: API-Key in Minuten, kein Gateway, kein Daily-Logout.
- Fractional Shares: kaufen Sie 0,15 Aktien einer USD-300-Aktie — ideal für gleichgewichtete Portfolios mit kleinem Kapital.
- OAuth-Flow: wer eine kundenseitige App baut, kann Endkunden über OAuth auf das Alpaca-Konto verbinden — eine Funktion, die bei klassischen Brokern nicht existiert.
- Sandbox-Qualität: das Paper-Konto ist nahezu identisch zur Live-API, identische Endpoints, gleiches Verhalten. Migration ist ein URL-Switch.
- Kostenstruktur: Equities-Trades sind in den USA kommissionsfrei (Payment-for-Order-Flow). Crypto hat einen Spread-Aufschlag.
Wo Alpaca an Grenzen stößt.
Ehrliche Bestandsaufnahme — Alpaca ist nicht für jeden:
- Geographic-Limit: nur US-Equities, US-Crypto, einige US-Optionen. Keine europäischen Aktien, keine Futures, kein FX im klassischen Sinn. Wer global tradet, kombiniert Alpaca mit anderen Brokern.
- Kunden-Onboarding: für nicht-US-Kunden ist die Account-Eröffnung erst in den letzten Jahren möglich geworden, in einigen Ländern noch immer eingeschränkt.
- Order-Typen: keine OCO, kein nativer Trailing-Stop für alle Asset-Klassen, kein Bracket-Order-Helper auf demselben Niveau wie bei IBKR.
- Latenz: für reines HFT ungeeignet — Co-Location nicht möglich, Round-Trips per WAN. Für Minuten-Bar-Strategien völlig ausreichend, für Sub-Sekunden-Logik nicht.
Rate-Limits richtig handhaben.
Alpaca limitiert auf 200 Requests pro Minute pro API-Key (höher mit Pro-Plan). In der Praxis ein nicht-triviales Limit: ein Multi-Asset-Loop, der pro Symbol einzeln Quotes abfragt, ist nach 30 Symbolen am Limit. Drei Empfehlungen:
- Batch-Endpoints nutzen:
get_stock_latest_quote(["AAPL","MSFT","TSLA"])statt drei einzelner Calls. - Streaming für Live-Daten, REST nur für historische Pulls und Order-Submission.
- Lokale Caches mit kurzer TTL — wenn dieselbe Information mehrfach pro Minute gebraucht wird, einmal holen und cachen.
Produktiv-Setup.
Mein bevorzugter Stack für Alpaca-basiertes Trading:
- asyncio-Service mit drei Tasks: Market-Data-Stream, Trading-Event-Stream, Order-Engine. Kommunikation über asyncio.Queue.
- Postgres als State-Store für Orders, Fills und Positionen. Nicht auf den Broker-State allein verlassen — Websocket-Drops sind selten, aber möglich.
- Periodic-Reconciliation: alle 5 Minuten Positionen via REST abgleichen, Divergenzen loggen und alerten.
- Kill-Switch: ein einzelner Endpoint, der alle offenen Orders cancelt und Positionen schließt — getriggert durch eine Sentinel-Datei oder ein Slack-Command.
- Telemetrie: jede Order vor und nach Submit loggen, Latenz tracken, P&L pro Symbol stündlich snapshotten.
Wann Alpaca die richtige Wahl ist.
Alpaca ist optimal, wenn Ihre Strategie US-Equities oder Crypto handelt, die Time-Granularität in Sekunden bis Stunden liegt, und Sie schnell vom Prototyp zum Live-System wollen. Für Long-Term-Equity-Strategien mit täglichem Rebalancing schlägt Alpaca jeden traditionellen Broker auf Setup-Effizienz und Code-Eleganz.
Wer Multi-Asset über mehrere Kontinente tradet, nutzt Alpaca für den US-Teil und kombiniert ihn mit IBKR oder regionalen Brokern für den Rest. Das gibt das Beste aus beiden Welten: Alpaca für API-Komfort, IBKR für globale Coverage.
Sie wollen mit Alpaca eine Strategie produktiv schalten oder mehrere Broker zu einer Engine verbinden? Erstgespräch buchen — wir bauen den Stack, der sich auch in zwei Jahren noch wartbar anfühlt.