IBKR Skill
Übersicht
Dieser Skill integriert sich mit Interactive Brokers Trader Workstation (TWS) und IB Gateway über ib_insync und stellt operative IBKR-Workflows bereit über:
- Eine einheitliche Python-CLI:
scripts/ibkr_cli.py - Ein Bash-CLI-Wrapper:
scripts/ibkr.sh - Kompatibilitäts-Alias:
scripts/openclaw.sh - Rückwärtskompatible Skript-Einstiegspunkte:
scripts/get_account_info.pyscripts/get_historical_data.pyscripts/place_order.py
Voraussetzungen
- Interactive Brokers-Konto mit API-Berechtigungen.
- TWS oder IB Gateway läuft mit aktivierter API.
- Python 3.9+ wird empfohlen.
ib_insyncinstalliert:
pip install ib_insync
Verbindungskonfiguration
Alle CLIs unterstützen Verbindungsüberschreibungen über Flags oder Umgebungsvariablen.
Umgebungsvariablen:
IBKR_HOST(Standard127.0.0.1)IBKR_PORT(Standard7497)IBKR_CLIENT_ID(Standard1)IBKR_ACCOUNT(optional)
Beispiele:
IBKR_PORT=4002 IBKR_CLIENT_ID=14 ./scripts/ibkr.sh account-summary
python3 scripts/ibkr_cli.py positions --host 127.0.0.1 --port 7496 --account DU123456
Bash-CLI
./scripts/ibkr.sh <Befehl> [Argumente]
Unterstützte Befehle:
account(Kontozusammenfassung + Positionen)account-summarypositionsportfoliopnlquotehistoricalplace-ordercancel-orderopen-ordersexecutionscontract-detailsscanner
./scripts/openclaw.sh ist ein Alias für die gleiche CLI-Oberfläche.
Python-CLI
python3 scripts/ibkr_cli.py <Befehl> [Argumente]
Kontoservices
python3 scripts/ibkr_cli.py account-summary --json
python3 scripts/ibkr_cli.py positions --account DU123456
python3 scripts/ibkr_cli.py portfolio --json
python3 scripts/ibkr_cli.py pnl --account DU123456 --wait 2
Marktdaten-Services
python3 scripts/ibkr_cli.py quote --symbol AAPL --sec-type STK --market-data-type 3
python3 scripts/ibkr_cli.py historical --symbol EURUSD --sec-type CASH --duration "30 D" --bar-size "1 hour"
Hinweise:
- Historische Anfragen unterstützen vollständige IB-Format-Werte über Flags, einschließlich getrennter Token wie
"30 D". - Für
CASHist der Standard-Wert fürwhatToShowMIDPOINT, sofern nicht explizit überschrieben.
Kontraktabfrage
python3 scripts/ibkr_cli.py contract-details --symbol ES --sec-type FUT --expiry 202606
Handel und Orderlebenszyklus
python3 scripts/ibkr_cli.py place-order --symbol AAPL --sec-type STK --action BUY --quantity 10 --order-type MKT
python3 scripts/ibkr_cli.py place-order --symbol AAPL --sec-type STK --action SELL --quantity 10 --order-type LMT --limit-price 250 --tif GTC
python3 scripts/ibkr_cli.py open-orders
python3 scripts/ibkr_cli.py cancel-order --order-id 12345
python3 scripts/ibkr_cli.py executions --json
Unterstützte Auftragstypen in der CLI:
MKTLMTSTPSTP LMT
place-order wartet auf Statusaktualisierungen und zeigt API-Fehler an, die während der Platzierung gesammelt wurden.
Scanner-Dienst
python3 scripts/ibkr_cli.py scanner --instrument STK --location-code STK.US.MAJOR --scan-code TOP_PERC_GAIN --rows 25
Kompatibilitätsskripte
Legacy-Skripte werden weiterhin unterstützt und delegieren nun an die einheitliche CLI:
get_account_info.pyget_historical_data.py(Legacy-Positionsmodus funktioniert weiterhin)place_order.py(Legacy-Positionsmodus funktioniert weiterhin)
Fehlerbehandlung
Die CLI gibt Exit-Codes ungleich Null zurück für:
- Fehler beim Importieren/Abhängigkeiten
- Verbindungsfehler
- Fehler bei der Kontraktqualifikation
- Ungültige Argumente
- Fehlende offene Order zum Stornieren
Referenzen
Siehe references/api_reference.md für IBKR- und ib_insync-Dokumentationslinks.