IBKR Flex-Import einrichten
WheelTrading liest Ihre Trade-, Dividenden- und Konto-Bewegungs-Historie aus dem IBKR Flex Web Service. Das ist die offizielle End-of-Day- Quelle von Interactive Brokers (mit Commissions, realisiertem G/V, Kostenbasis, Quellensteuer und Spin-Offs).
Sie brauchen genau drei Werte aus Ihrem IBKR-Account, die einmalig in WheelTrading eingetragen werden:
- Flex Token (1 Jahr gueltig)
- Transactions-Query-ID (eine kombinierte Query - empfohlen)
- (optional) zwei Einzel-Query-IDs (Trades + Dividenden) als Fallback
Alle drei Werte werden in WheelTrading verschluesselt gespeichert (Fernet/AES) und sind nur fuer den eigenen Account sichtbar. Anderen Usern (Multi-User-Betrieb) bleiben Ihre IDs verborgen - jeder User pflegt sein eigenes Tripel.
Empfehlung fuer neue User: Nur die Transactions-Query anlegen (Abschnitt 3). Die zwei Einzel-Querys sind seit Mai 2026 nicht mehr noetig - die kombinierte Query liefert alles und halbiert die IBKR-Aufrufe.
1. Flex Web Service in IBKR aktivieren
- Loggen Sie sich in Account Management (Lynx-/IBKR-Portal) ein.
- Reporting -> Settings -> Flex Web Service oeffnen.
- Klick auf "Configure" -> Service aktivieren.
- IBKR zeigt Ihnen einen langen alphanumerischen Flex Token an.
Diesen kopieren - er ist nur einmal sichtbar.
- In WheelTrading: Einstellungen -> Globals -> API-Keys ->
IBKR Flex Token -> einfuegen und Speichern.
Token-Gueltigkeit: 1 Jahr. WheelTrading warnt 14 Tage vor Ablauf per Banner; einfach in IBKR einen neuen Token erzeugen und in den Globals ersetzen.
2. Transactions-Query in IBKR anlegen
Reporting -> Custom Statements -> Flex Queries -> Create -> Activity Flex Query.
Name: beliebig, z.B. WheelTrading Transactions. Period: Last 365 Calendar Days (empfohlen) oder Year To Date. Format: XML, Version: 3.
Sections (Abschnitte) - bitte alle haken
In der deutschen IBKR-Maske heisst die Auswahl "Abschnitte (Bitte mehrere auswaehlen)". Setzen Sie folgende Haken:
Pflicht:
- Trades
- Bartransaktionen *(= Cash Transactions: Dividenden, Quellensteuer,
Ein-/Auszahlungen, Zinsen)*
- Cash-Bericht (= Cash Report, Salden je Waehrung)
- Provisionsdetails (= Commission Details, einzelne Fees)
- Transaktionsgebuehren (= Transaction Tax, SEC- / Stempelfees)
- Zinsdetails (Staffelung) (= Interest Accruals)
- Forex-G&V-Details (= FX Transactions, USD<->EUR-Konvertierungen)
Stark empfohlen (Steuer-Vollstaendigkeit):
- Kapitalmassnahmen *(= Corporate Actions, Spin-Offs etc. - Pflicht fuer
korrekte Kostenbasis bei VSNT, WBD, T-Mobile usw.)*
- Veraenderung der aufgelaufenen Dividenden
- Offene aufgelaufene Dividenden
- Umsatzsteuer-Details
Brauchen Sie NICHT (nur Rauschen): Aufgelaufene Zinsen, IBSS, IBG-Notes, FDIC, HK IPO, CFD-Gebuehren, Debit-Card, Leihgebuehren, Fremdwaehrungssalden, Bezugsrechte.
Felder
Pro Section bietet IBKR detaillierte Feld-Listen an. Der einfachste Weg ist, in jeder gehakten Section auf "All" zu klicken (oder das oberste Haken-Symbol). WheelTrading nutzt aktuell folgende Pflichtfelder:
| Section | Pflichtfelder |
|---|---|
| Trades | tradeID, ibExecID, assetCategory, symbol, underlyingSymbol, currency, buySell, quantity, tradePrice, tradeDate, dateTime, proceeds, ibCommission, taxes, netCash, fxRateToBase, accountId, conid, notes, openCloseIndicator, multiplier, putCall, strike, expiry, settleDateTarget |
| Cash Transactions | transactionID, type, description, amount, symbol, isin, currency, fxRateToBase, exDate, payDate, reportDate, accountId, conid |
| Corporate Actions | transactionID, type, description, symbol, underlyingSymbol, dateTime, quantity, proceeds, costBasis, fifoPnlRealized, fxRateToBase, assetCategory, multiplier, currency |
| Commission Details | tradeID, commission, currency, dateTime |
Mit "All" sind Sie auf der sicheren Seite. Fehlt ein Feld, ist das kein offensichtlicher Fehler im UI - aber Cost-Basis oder Steuerwerte koennen unvollstaendig sein.
Webhook-Feld
Das Feld "Webhook" auf der IBKR-Query-Seite leer lassen. WheelTrading nutzt das normale Pull-Verfahren (Polling alle 12 h); Webhooks sind ein Premium-Feature von IBKR und werden nicht unterstuetzt.
Speichern -> Query-ID notieren
Nach dem Speichern zeigt IBKR die Query-ID an (5- bis 7-stellige Zahl, z.B. 1532801).
3. Query-ID in WheelTrading eintragen
Einstellungen -> Globals -> API-Keys -> IBKR Flex Query-ID (Transactions) -> Query-ID einfuegen und Speichern.
Sobald gespeichert:
- Der combined-flex-scheduler holt das XML zentral 2x taeglich
(Cron 06:30 + 18:30 UTC) und fuettert daraus parallel:
- Trade-Historie + Cost-Basis (Steuer)
- Dividenden + Quellensteuer
- Corporate Actions (Spin-Off-Override fuer Kostenbasis 0)
- Transaktionen / Cash-Bewegungen
- Die zwei aelteren Einzel-Schedulers (Trades 06:15/18:15, Dividenden
06:00/18:00) ueberspringen Ihren User automatisch - kein Doppel-Call.
- Bei jedem Lauf zeigt das Globals-Panel: Letzter Sync (mit Alter),
Ergebnis-Badge (+3 neu, 12 bekannt gruen / rot bei Fehler).
Tipp: Direkt nach dem ersten Eintragen den manuellen Import-Button (Globals -> IBKR-Datenimport -> "Trade-Historie importieren") druecken, damit Sie nicht auf den naechsten Cron-Tick warten muessen.
4. Multi-User-Hinweise
- Jeder User pflegt sein eigenes Tripel (Token + Query-ID).
- Ihre IDs werden niemals anderen Usern angezeigt oder geteilt.
- Wenn Sie ein Familien-/Joint-Konto mit mehreren Login-Usern haben,
legen Sie pro WheelTrading-User einen eigenen IBKR-Sub-Account an und je Sub-Account eine eigene Query - sonst sehen alle dieselben Trades.
- Der combined-flex-scheduler iteriert pro Sync-Tick alle aktiven User
sequentiell mit 2-3 Sekunden Abstand, um IBKRs 15-Minuten-Rate-Limit (Fehler 1018 Too many requests) zu schonen.
- Bei
1018wiederholt der Scheduler den Aufruf automatisch mit
exponentiellem Backoff (max. 3 Versuche).
5. Optional: getrennte Trades- und Dividenden-Querys (Legacy)
Wenn Sie die kombinierte Transactions-Query nicht nutzen wollen (z.B. weil Ihr IBKR-Plan keine grossen Querys erlaubt), koennen Sie wie frueher zwei einzelne Querys anlegen:
- `WheelTrading Trades` (Trade Confirmation Flex Query, nur Section
Trades) -> Query-ID in IBKR Flex Query-ID (Trades)
- `WheelTrading Dividends` (Activity Flex Query, nur Section
Cash Transactions) -> Query-ID in IBKR Flex Query-ID (Dividenden)
Sobald die Transactions-Query-ID gesetzt ist, ueberschreibt sie diese zwei Felder fuer den Auto-Sync. Die manuellen Import-Buttons nutzen weiter die jeweilige Einzel-Query, falls vorhanden.
6. Was passiert nach dem Import?
- Historie: Alle Trades sichtbar unter Trades -> Historie.
- Cost-Basis: Automatisch berechnet aus BUY / SELL / Assignment +
Premium-Adjustment der Wheel-Strategie.
- Spin-Offs: Aktien aus Corporate Actions vom Typ
SObekommen
automatisch cost_basis = 0 (§ 20 Abs. 4a EStG); voller Erloes beim Verkauf wird als Gewinn ausgewiesen. Marker: "Spin-Off-Lot (Kostenbasis 0)" in der Description.
- Steuern: Quellensteuer wird auf 15 % DBA-Satz gekappt und im Tab
Steuern -> Dividenden ausgewiesen.
- Transaktionen (in Vorbereitung): Die kombinierte Query liefert
bereits alle Daten; die UI-Seite folgt.
Idempotent: Bekannte Eintraege werden als skipped gezaehlt; den Import koennen Sie beliebig oft wiederholen.
7. Haeufige Fehler
- `Code 1001: Statement could not be generated`
Query ist frisch angelegt. IBKR braucht 5-15 Minuten zum Registrieren. WheelTrading retried automatisch 4x mit linearem Backoff. Wenn es weiter fehlt: Period in IBKR auf Last 365 Calendar Days setzen und speichern.
- `Code 1018: Too many requests`
15-Minuten-Rate-Limit getroffen (z.B. weil Sie zusaetzlich manuell importiert haben). Einfach 15 Min warten.
- Token expired
Flex-Tokens sind 1 Jahr gueltig. Neuen Token in IBKR erzeugen, in Globals ersetzen.
- Query liefert 0 Trades
Period falsch (z.B. Today statt Last 365 Days) oder Section Trades nicht angehakt.
- Spin-Off-Aktie hat negativen G/V im Steuertab
Section Kapitalmassnahmen fehlt in der Query. Edit in IBKR -> ergaenzen -> in WheelTrading manuellen Import erneut druecken.
- `Code 1019: Statement generation in progress`
IBKR ist gerade dabei, die Daten zu erstellen. Scheduler wartet automatisch ab; bei manuellen Imports einfach 30 s spaeter erneut.