2.2

🔶 Interactive Brokers instellen

Flex Query en automatische synchronisatie

1. Overzicht

Interactive Brokers (IBKR) biedt de meest uitgebreide integratie.

✅ Proces:
1. Flex Query aanmaken
2. Flex Query downloaden en importeren als XML voor elk jaar
3. Updates ophalen via Flex Sync
⚠️ Belangrijk:
Flex Sync haalt alleen updates op van recente dagen. XML-import bouwt de complete geschiedenis op. Zonder complete geschiedenis kan het systeem trades niet goed evalueren (bijv. optiestrategieën, campagnes, valutawinsten).

2. Wat is een Flex Query?

Een Flex Query is een aanpasbaar rapport van Interactive Brokers. Je definieert eenmaal welke data je wilt exporteren, daarna kun je dit rapport altijd ophalen - handmatig of automatisch.

Voordelen:
• Alle trades, dividenden, posities in één rapport
• Automatische synchronisatie mogelijk
• Data van de laatste 365 dagen beschikbaar
• Geen handmatige data-invoer nodig

Stapsgewijze handleiding

1

Stap 1: Flex Query Aanmaken bij IBKR

1. Log in bij IBKR:
Ga naar interactivebrokers.com en log in op je account.

2. Open Flex Queries:
Navigeer naar: Performance & Reports → Flex Queries

3. Kies het juiste querytype:
De pagina Flex Queries toont twee querytypes onder elkaar. Alleen het eerste is het juiste:
✅ Activity Flex Query
Dit is de juiste. Klik op de ➕ rechtsboven in dit paneel → "Create".
❌ Trade Confirmation Flex Query
Gebruik deze niet! Hij bevat alleen handelsbevestigingen. sTraderZ.com kan daar geen gegevens uit lezen — de import zou volledig leeg blijven.
Zolang je nog geen query hebt aangemaakt, toont het paneel Activity Flex Query alleen een melding dat je geen sjablonen hebt. De ➕ staat er wel — rechtsboven in dat paneel.

ℹ️ De knop "Configure with AI" heb je niet nodig — volg gewoon stap 2 en 3 hieronder, daarin staan alle instellingen.
2

Stap 2: Flex Query Configureren

Querynaam: wat je wilt, bijv. "SingularityTrader".

Stel daarna de Delivery Configuration en de General Configuration precies zo in:
0 van 11 instellingen gedaan
3

Stap 3: Rapportsecties Selecteren

De sectienamen staan hier in het Engels. Als je IBKR-portaal op een andere taal staat ingesteld, zijn de labels daar vertaald.

Schakel alle volgende secties in de Flex Query in. De lijst staat hier om af te vinken — je voortgang blijft bewaard, ook als je de pagina opnieuw laadt.
0 van 20 secties ingeschakeld
⚠️ Velden versus type-opties — het cruciale verschil

Velden (de genummerde lijst binnen elke sectie): gebruik altijd "Select All" — hoe meer, hoe beter. Ontbrekende velden zijn de meest voorkomende oorzaak van importfouten.

Type-opties (de regel "Options:" boven aan een sectie): hier geldt het omgekeerde — kies slechts één detailniveau, precies dat wat hierboven staat. Elk extra niveau ("Summary", "Orders", "Symbol Summary", "Lots") beschrijft dezelfde gebeurtenis een tweede keer in een andere regel. sTraderZ.com beoordeelt het detailniveau niet, maar verwerkt elke regel — meerdere niveaus kunnen dus leiden tot dubbel getelde trades, kosten en posities. Uitzondering: "Closed Lots" en "Wash Sales" in de sectie Trades zijn niet alleen overbodig, ze moeten uit staan.
4

Stap 4: Query Opslaan

Klik op "Continue" en daarna "Create".

Na aanmaak zie je je query in de lijst. Noteer de Query ID - die heb je zo nodig.
5

Stap 5: Flex Query Token Genereren

Voor het automatisch ophalen heb je een toegangssleutel nodig. IBKR noemt die een token — in sTraderZ.com voer je die later in als Flex Token.

1. Open de Flex Web Service:
Scroll op de pagina Flex Queries helemaal naar beneden naar het blok "Flex Web Service Configuration" en klik op "Configure" (⚙️).

2. Activeer de service:
Op de pagina "Configure Flex Web Service" moet de Flex Web Service status op enabled staan. Staat hij uit, dan kan sTraderZ.com de query niet ophalen — IBKR wijst het verzoek dan af.

3. Genereer de token:
In de sectie "Generate New Token":
0 van 3 instellingen gedaan
⚠️ De token wordt maar één keer getoond
Kopieer hem meteen en bewaar hem veilig. Raak je hem kwijt, dan moet je een nieuwe genereren — en daarmee wordt de oude token onmiddellijk ongeldig. Elke synchronisatie die nog de oude token gebruikt, mislukt vanaf dat moment.

De token is 1 jaar geldig. Genereer na het verlopen een nieuwe en sla die op in je accountconfiguratie.
6

Stap 6: XML Export voor Alle Jaren

Exporteer de Flex Query als XML voor elk jaar van je handelsgeschiedenis:

1. Open Flex Query:
Bij IBKR: Performance & Reports → Flex Queries

2. Datumbereik Aanpassen:
Bewerk de query en stel het datumbereik in op één kalenderjaar (bijv. 01/01/2023 - 31/12/2023)

3. Query Uitvoeren:
Klik op "Run" en download het XML-bestand

4. Herhaal voor Elk Jaar:
Herhaal stappen 2-3 voor alle jaren dat je bij IBKR hebt gehandeld (bijv. 2021, 2022, 2023, 2024).
7

Stap 7: XML Import van Geschiedenis

Importeer alle gedownloade XML-bestanden in Singularity Trader:

1. Open Import Sectie:
Ga naar Accounts → Je IBKR Account → Configuratie → "Upload XML"

2. Oudste Jaar Eerst:
Begin met het oudste XML-bestand (bijv. 2021) en werk chronologisch vooruit

3. Alle Jaren Importeren:
Importeer alle XML-bestanden achtereenvolgens tot het huidige jaar

⚠️ Belangrijk: Deze stap is essentieel! Zonder complete geschiedenis kunnen optiestrategieën, tradecampagnes en valutawinsten niet correct berekend worden.
8

Stap 8: Instellen in Singularity Trader

1. Open de accountconfiguratie:
Ga naar Accounts → Je IBKR-account → Configuratie

2. Voer de Flex Query-gegevens in:
• Flex Query ID: Het 7-cijferige query-ID van IBKR (staat in het queryoverzicht, bijv. 1570627)
• Flex Token: De token die je in stap 5 hebt gegenereerd

3. Opslaan en testen:
Klik op "Opslaan" en daarna op "Nu synchroniseren" om te testen.
✨

Automatische Synchronisatie

Na succesvolle instelling worden je trades dagelijks automatisch gesynchroniseerd. Je hoeft verder niets te doen!

Wat er tijdens sync gebeurt:
• Nieuwe trades worden geïmporteerd
• Posities worden bijgewerkt
• Dividenden worden geregistreerd
• Optiestrategieën worden herkend
• Valutawinsten worden berekend (FIFO)

Je kunt altijd handmatig synchroniseren als je de nieuwste data direct wilt.

12. Automatisch opnieuw proberen bij tijdelijke fouten

IBKR Flex-ophalingen kunnen om verschillende redenen éénmalig mislukken (bijv. kortstondige serverfout bij IBKR, netwerk-timeout, query wordt op dat moment verwerkt). Singularity Trader heeft hiervoor een automatische herhalings-queue:

• Mislukt een sync, dan wordt deze tot 3 keer automatisch opnieuw geprobeerd (met exponentiële tussenpozen).
• Pas als alle pogingen mislukken, verschijnt een CRITICAL-vermelding in het systeemlog en een melding.
• Tijdelijke problemen lossen zich meestal vanzelf op, zonder dat je hoeft in te grijpen.

Je ziet de huidige synchronisatiestatus in het accountgedeelte — groen = laatst succesvol, geel = opnieuw proberen loopt, rood = na 3 pogingen mislukt.

13. Alternatief: handmatige XML-import

Als je geen automatische synchronisatie wilt, kun je de Flex Query handmatig exporteren:

1. Bij IBKR: Flex Queries → "Run" naast je query
2. Downloaden: Sla het XML-bestand op
3. Uploaden: In Singularity Trader → Accounts → Configuratie → "XML uploaden"

Deze methode is ook nodig voor oudere gegevens (> 365 dagen), omdat Flex Sync slechts 1 jaar teruggaat.

14. Geïmporteerde gegevens bij IBKR

Volledig ondersteund:
• Aandelentrades (koop/verkoop)
• Optietrades incl. Greeks
• Futures en Forex
• Dividenden (bruto, netto, bronbelasting)
• Rente (credit/debet)
• Optie-uitoefeningen en toewijzingen
• Aandelensplitsingen en fusies
• Statement of Funds voor valuta-FIFO

Automatisch herkend:
• Optiestrategieën (Spreads, Iron Condors, etc.)
• Covered Calls / Cash-Secured Puts
• Trade-campagnes
• Valutawinsten conform § 23 EStG

15. 📥 Gegevens van TradingLogbook? Neem je tags mee.

📥 Kom je van TradingLogbook?

Je bijgehouden strategieën kun je als tags overnemen op je al geïmporteerde trades — symbool + openingsdatum is voldoende. Klaar in 3 minuten.

Naar de 3-staps-migratie

⚠️ Probleemoplossing

"Token verlopen":
Genereer een nieuwe token bij IBKR en voer deze in de configuratie in.

"Query niet gevonden":
Controleer of de Query ID correct is en de query actief is.

"Geen gegevens":
Zorg ervoor dat alle vereiste secties in de query zijn ingeschakeld.

"Fout bij import":
Controleer het importlog voor details. Vaak: ontbrekende velden in de query.

⚠️ Ontbrekende historische trades laden (⚠️-badge bij posities)

Het probleem:
In het dashboard of in de positielijsten verschijnt bij een positie een ⚠️-symbool naast de accountnaam. De tooltip toont "Ontbrekende trade-gegevens — Voor deze positie zijn geen transacties geïmporteerd. Daardoor kan de strategie niet automatisch worden herkend."

De oorzaak:
De positie zelf is bekend via de portfolio-snapshot van IBKR, maar de openingstrades liggen vóór de oudste tot nu toe geïmporteerde handelsdag. Dit is typisch bij LEAPS (langlopende opties) die maanden of jaren vóór de eerste Flex Sync werden geopend.

✅ De oplossing:
Bij de bestaande Flex Query eenmalig een ad-hoc-export met historisch tijdsbereik starten, als XML downloaden en via de XML-import uploaden. Er hoeft geen nieuwe Flex Query te worden aangemaakt!
Stap voor stap:
1. Historische export starten bij IBKR
• Bestaande Flex Query zoeken → Run klikken
• Periode instellen op Custom Date Range
• Van: zo ver terug als nodig (bijv. 01-01-2024)
• Tot: één dag vóór de oudste al geïmporteerde trade
• Formaat: XML → Run bevestigen

2. XML-bestand downloaden en lokaal opslaan

3. Uploaden in Singularity Trader
• Accounts → IBKR-account → "IBKR configureren" → XML Import

4. Wat er bij de import gebeurt
• Alleen nieuwe trades worden geïmporteerd (geen duplicaten)
• Strategieën, campagnes en trade-cycles worden opnieuw berekend

5. Resultaat controleren
• Dashboard herladen — de ⚠️-badge zou moeten verdwenen zijn

Als de ⚠️ blijft: De openingstrades liggen nog verder terug → een nieuwe run met een vroegere startdatum starten.

⚠️ Verkaufte Position ohne Anschaffungskosten, nach Übertrag zwischen zwei eigenen IB-Konten

Das Problem:
Du hast bei Interactive Brokers mehrere eigene Konten (z. B. ein Hauptkonto und ein separat angelegtes zweites Individual-Konto — nicht zu verwechseln mit dem automatisch erkannten Unterkonto aus einer gemeinsamen Flex Query). Eine Position — typisch bei einer Optionsandienung/-zuteilung (Assignment) — wurde ursprünglich in einem der beiden Konten aufgebaut, taucht aber irgendwann im anderen Konto auf und wird von dort verkauft. Im Steuerreport erscheint diese Position bei „Nicht abgedeckte Veräußerungen" (uncovered sales) mit der Fußnote „°" — Legende: „Mit ° gekennzeichnete Positionen haben keinen Depotübertrag als Ursache." Es fehlen also jegliche Anschaffungskosten, obwohl du die Position nachweislich selbst erworben hast.

So erkennst du den Fall sicher — Checkliste:
  1. Öffne im Quellkonto (dort, wo die Position ursprünglich entstand) die Trade-Historie und suche nach dem betroffenen Symbol. Bei einer Optionszuteilung findest du dort eine Buchung mit Kaufkurs und Datum — sie ist vorhanden.
  2. Öffne im Zielkonto (dort, wo verkauft wurde) den Reiter „Transfers" der Konto-Detailseite. Erwartest du dort einen Eingang für dieses Symbol, findest du gar keine Zeile — nicht mal eine mit ungeklärter Herkunft (die gäbe es im Reiter zu sehen und du könntest ihr wie im vorigen FAQ-Eintrag ein Herkunftskonto zuweisen).
  3. Im Steuerreport steht die verkaufte Position unter „Nicht abgedeckte Veräußerungen" mit der Fußnote °.
Treffen alle drei Punkte zu, liegt exakt dieser Sonderfall vor.

ℹ️ Die Ursache liegt bei IBKR, nicht in sTraderZ.com
sTraderZ.com erkennt Positionsüberträge zwischen zwei Konten automatisch, sobald IBKR sie in der Flex Query als Transaktion mitliefert — siehe den FAQ-Eintrag zum regulären Positionsübertrag. Bei zwei eigenständig gehaltenen Individual-Konten (keine formale Master-/Sub-Struktur bei IBKR) meldet IBKR eine interne Umbuchung zwischen ihnen aber manchmal an keiner Stelle als Transaktion — nicht als Trade, nicht als Transfer und auch nicht im „Statement of Funds" (Kapitalflussrechnung), also selbst im vollständigsten Report, den IBKR liefert. Für sTraderZ.com — wie für jede Auswertungssoftware, die auf die offiziellen IBKR-Datenexporte angewiesen ist — gibt es dann schlicht keine Quelle, aus der sich die Anschaffungskosten automatisch übernehmen ließen. Das lässt sich softwareseitig nicht nachbessern, weil in den Rohdaten nichts steht, das man auswerten könnte.
Was du tun kannst — trage die Anschaffungskosten selbst nach:
Dafür brauchst du keinen Support-Kontakt. Auf der Konto-Detailseite gibt es genau für diesen Fall die Funktion „Manuellen Depotübertrag hinzufügen" (Karte „Depot-Überträge").
  1. Ermittle im Quellkonto (Trade-Historie) die genauen Zugangs-Buchungen: Datum, Stückzahl und Kaufkurs je Zuteilung. Wurden mehrere Zuteilungen zu unterschiedlichen Kursen/Terminen verkauft, trägst du jede Zuteilung als eigene Zeile ein — nicht als eine Zeile mit Durchschnittskurs, sonst stimmt die FIFO-Reihenfolge bei künftigen Teilverkäufen nicht mehr.
  2. Öffne im Zielkonto (dort, wo verkauft wurde) die Konto-Detailseite → Karte „Depot-Überträge" → „Manuellen Depotübertrag hinzufügen".
  3. Fülle je Zuteilung aus: Symbol, Stückzahl, Anschaffungsdatum (das echte Datum der Zuteilung im Quellkonto, nicht das Übertragsdatum), Anschaffungskosten (Gesamtbetrag dieser Zeile, nicht der Kurs pro Stück — die Plattform rechnet daraus automatisch den Stückkurs), Übertragsdatum (an dem die Position im Zielkonto auftauchte bzw. verkauft wurde) und — falls in der Dropdown-Liste vorhanden — dein Quellkonto als Herkunftskonto.
  4. Speichern. Die Position fließt danach steuerneutral ins FIFO des Zielkontos ein, mit korrektem Anschaffungsdatum und -kurs — dein Steuerreport rechnet ab sofort richtig.
💡 So beugst du künftig vor
Verzichte, wo möglich, auf interne Umbuchungen einer Position zwischen zwei separat gehaltenen IB-Konten. Nutze stattdessen entweder ein einziges Konto für zusammengehörige Strategien, oder — falls du bewusst mehrere Konten trennen willst — richte bei IBKR eine formale Family-/Advisor-Kontostruktur ein, bei der interne Bewegungen regulär als Transfer gemeldet werden (siehe FAQ-Eintrag oben).

19. ✅ Controle: zo ziet de voltooide query eruit

Na het opslaan toont IBKR een overzichtspagina ("Review your Activity Flex Query"). Vergelijk die met deze referentie — zo moet je query eruitzien als alles klopt.
SectieType-opties (regel "Options:")
Interest Accruals—
Cash TransactionsAlle subtypes (Dividends, Payment In Lieu Of Dividends, Withholding Tax, Deposits & Withdrawals, Broker/Bond Interest, Other Fees, Other Income …) + Detail
CFD Charges—
Cash Report—
Incoming/Outgoing Trade TransfersTrade Transfers
Forex P/L DetailsTransaction
Grant Activity—
Financial Instrument Information—
Statement of FundsBase Currency Summary, Currency Breakout, Include Starting and Ending Balances
Corporate ActionsDetail
Account Information—
Net Asset Value (NAV) in Base—
Open PositionsSummary (geen "Lots")
Open Dividend Accruals—
Option Exercises, Assignments and Expirations— (wordt het vaakst vergeten!)
Prior Period Positions—
TradesAlleen Execution — geen "Closed Lots", geen "Wash Sales", geen "Orders"/"Asset Class"/"Symbol Summary"
Transaction FeesAlleen Execution (niet daarnaast ook "Summary")
TransfersTransfer (geen "Lots")
Change in Dividend AccrualsDetail (niet daarnaast ook "Summary")

Delivery Configuration en General Configuration:

InstellingWaarde
AccountsJe account-ID (bijv. U1234567)
FormatXML
PeriodLast 30 Calendar Days
Profit and LossDefault
Include Offsetting Trade/Cancel Pairs?No
Include Currency Rates?No
Include Audit Trail Fields?No
Display Account Alias in Place of Account ID?No
Breakout by Day?No
Date FormatyyyyMMdd
Time FormatHHmmss
Date/Time Separator; (semi-colon)
💡 Noteer het Query ID
Boven aan datzelfde overzicht staat het Query ID (een 7-cijferig getal, bijv. 1570627). Dat heb je samen met de token nodig in stap 8.