2.2

🔶 Opsæt Interactive Brokers

Flex Query og automatisk synkronisering

1. Oversigt

Interactive Brokers (IBKR) tilbyder den mest omfattende integration.

✅ Proces:
1. Opret Flex Query
2. Download og importer Flex Query som XML for hvert år
3. Hent opdateringer via Flex Sync
⚠️ Vigtigt:
Flex Sync henter kun opdateringer fra de seneste dage. XML-import bygger den komplette historik. Uden komplet historik kan systemet ikke evaluere handler korrekt (f.eks. optionsstrategier, kampagner, valutagevinster).

2. Hvad er en Flex Query?

En Flex Query er en tilpasselig rapport fra Interactive Brokers. Du definerer én gang hvilke data du vil eksportere, derefter kan du hente den rapport når som helst – manuelt eller automatisk.

Fordele:
• Alle handler, udbytte, positioner i én rapport
• Automatisk synkronisering mulig
• Data fra de seneste 365 dage tilgængelige
• Ingen manuel dataindtastning krævet

Trin-for-trin vejledning

1

Trin 1: Opret Flex Query hos IBKR

1. Log ind hos IBKR:
Gå til interactivebrokers.com og log ind på din konto.

2. Åbn Flex Queries:
Naviger til: Performance & Reports → Flex Queries

3. Vælg den rigtige forespørgselstype:
Siden Flex Queries viser to forespørgselstyper under hinanden. Kun den første er den rigtige:
✅ Activity Flex Query
Det er den rigtige. Klik på ➕ øverst til højre i dette panel → "Create".
❌ Trade Confirmation Flex Query
Brug ikke denne! Den indeholder kun handelsbekræftelser. sTraderZ.com kan ikke læse data ud af den — importen ville blive fuldstændig tom.
Så længe du endnu ikke har oprettet en forespørgsel, viser panelet Activity Flex Query kun en note om, at du ingen skabeloner har. ➕ er der alligevel — øverst til højre i panelet.

ℹ️ Du har ikke brug for knappen "Configure with AI" — følg blot trin 2 og 3 nedenfor, de nævner alle indstillinger.
2

Trin 2: Konfigurer Flex Query

Query Name: hvad du vil, f.eks. "SingularityTrader".

Sæt derefter Delivery Configuration og General Configuration præcis sådan:
0 af 11 indstillinger sat
3

Trin 3: Vælg rapportafsnit

Sektionsnavnene er angivet på engelsk. Hvis din IBKR-portal er indstillet til et andet sprog, er etiketterne oversat der.

Aktivér alle følgende afsnit i Flex Query. Listen er til at hakke af — dine fremskridt gemmes, også selv om du genindlæser siden.
0 af 20 afsnit aktiveret
⚠️ Felter kontra typemuligheder — den afgørende forskel

Felter (den nummererede liste inde i hvert afsnit): brug altid "Select All" — jo flere, jo bedre. Manglende felter er den hyppigste årsag til importfejl.

Typemuligheder (linjen "Options:" øverst i et afsnit): her gælder det modsatte — vælg kun ét detaljeniveau, præcis det der er angivet ovenfor. Hvert ekstra niveau ("Summary", "Orders", "Symbol Summary", "Lots") beskriver den samme hændelse en gang til i en anden række. sTraderZ.com vurderer ikke detaljeniveauet, men behandler hver række — flere niveauer kan derfor føre til dobbelttalte handler, gebyrer og positioner. Undtagelse: "Closed Lots" og "Wash Sales" i afsnittet Trades er ikke bare overflødige, de skal være slået fra.
4

Trin 4: Gem forespørgslen

Klik på "Continue" og derefter "Create".

Efter oprettelse ser du din forespørgsel på listen. Notér Query ID – du får brug for det snart.
5

Trin 5: Generer Flex Query-token

Til automatisk hentning har du brug for en adgangsnøgle. IBKR kalder den en token — i sTraderZ.com indtaster du den senere som Flex Token.

1. Åbn Flex Web Service:
Rul på siden Flex Queries helt ned til blokken "Flex Web Service Configuration" og klik på "Configure" (⚙️).

2. Aktivér tjenesten:
På siden "Configure Flex Web Service" skal Flex Web Service status være enabled. Er den slået fra, kan sTraderZ.com ikke hente forespørgslen — IBKR afviser kaldet.

3. Generer tokenet:
I afsnittet "Generate New Token":
0 af 3 indstillinger sat
⚠️ Tokenet vises kun én gang
Kopier det med det samme, og opbevar det sikkert. Mister du det, skal du generere et nyt — og det gør straks det gamle token ugyldigt. Enhver synkronisering, der stadig bruger det gamle token, fejler fra det øjeblik.

Tokenet er gyldigt i 1 år. Når det udløber, genererer du et nyt og gemmer det i din kontokonfiguration.
6

Trin 6: XML-eksport for alle år

Eksporter Flex Query som XML for hvert år af din handelshistorik:

1. Åbn Flex Query:
Hos IBKR: Performance & Reports → Flex Queries

2. Juster datointerval:
Rediger forespørgslen og angiv datointerval til et kalenderår (f.eks. 2023-01-01 – 2023-12-31)

3. Kør forespørgslen:
Klik på "Run" og download XML-filen

4. Gentag for hvert år:
Gentag trin 2–3 for alle år du har handlet hos IBKR.
7

Trin 7: XML-import af historik

Importer alle downloadede XML-filer til Singularity Trader:

1. Åbn importafsnittet:
Gå til Konti → Din IBKR-konto → Konfiguration → "Upload XML"

2. Ældste år først:
Start med den ældste XML-fil (f.eks. 2021) og arbejd dig kronologisk fremad

3. Importer alle år:
Importer alle XML-filer i rækkefølge op til indeværende år

⚠️ Vigtigt: Dette trin er væsentligt! Uden komplet historik kan optionsstrategier, handelskampagner og valutagevinster ikke beregnes korrekt.
8

Trin 8: Konfigurer i Singularity Trader

1. Åbn kontokonfiguration:
Gå til Konti → Din IBKR-konto → Konfiguration

2. Angiv Flex Query-data:
• Flex Query ID: Det 7-cifrede forespørgsels-id fra IBKR (vises i forespørgselsoversigten, f.eks. 1570627)
• Flex Token: Tokenet, du genererede i trin 5

3. Gem og test:
Klik på "Gem" og derefter "Synkroniser nu" for at teste.
✨

Automatisk synkronisering

Efter vellykket konfiguration synkroniseres dine handler automatisk dagligt. Du behøver ikke gøre noget mere!

Hvad der sker ved synkronisering:
• Nye handler importeres
• Positioner opdateres
• Udbytte registreres
• Optionsstrategier genkendes
• Valutagevinster beregnes (FIFO)

Du kan altid synkronisere manuelt, hvis du vil have de seneste data øjeblikkeligt.

12. Automatisk genforsøg ved midlertidige fejl

IBKR Flex-hentninger kan mislykkes én gang af forskellige årsager (f.eks. kortvarig serverfejl hos IBKR, netværks-timeout, forespørgsel behandles i øjeblikket). Singularity Trader har til dette en automatisk genforsøgs-kø:

• Mislykkes en synkronisering, gentages den automatisk op til 3 gange (med eksponentielle intervaller).
• Først når alle forsøg mislykkes, vises en CRITICAL-post i systemloggen og en notifikation.
• Midlertidige problemer løser sig som regel af sig selv uden at du behøver at gribe ind.

Du kan se den aktuelle synkroniseringsstatus i kontosektionen — grøn = sidst vellykket, gul = genforsøg kører, rød = mislykkedes efter 3 forsøg.

13. Alternativ: manuel XML-import

Hvis du ikke ønsker automatisk synkronisering, kan du eksportere Flex Query manuelt:

1. Hos IBKR: Flex Queries → "Run" ved siden af din forespørgsel
2. Download: Gem XML-filen
3. Upload: I Singularity Trader → Konti → Konfiguration → "Upload XML"

Denne metode er også nødvendig for ældre data (> 365 dage), da Flex Sync kun går 1 år tilbage.

14. Importerede data fra IBKR

Fuldt understøttet:
• Aktiehandler (køb/salg)
• Optionshandler inkl. Greeks
• Futures og Forex
• Udbytte (brutto, netto, kildeskat)
• Renter (kredit/debet)
• Optionsudnyttelser og tildelinger
• Aktiesplits og fusioner
• Statement of Funds til valuta-FIFO

Automatisk genkendt:
• Optionsstrategier (Spreads, Iron Condors, osv.)
• Covered Calls / Cash-Secured Puts
• Handelskampagner
• Valutagevinster jf. § 23 EStG

15. 📥 Data fra TradingLogbook? Tag dine tags med.

📥 Kommer du fra TradingLogbook?

Dine vedligeholdte strategier kan du overføre som tags til dine allerede importerede handler — symbol + åbningsdato er nok. Klaret på 3 minutter.

Til 3-trins-migreringen

⚠️ Fejlfinding

"Token udløbet":
Generer et nyt token hos IBKR og indtast det i konfigurationen.

"Forespørgsel ikke fundet":
Kontroller at Query ID er korrekt og at forespørgslen er aktiv.

"Ingen data":
Sørg for at alle nødvendige sektioner i forespørgslen er aktiveret.

"Fejl ved import":
Tjek importloggen for detaljer. Hyppig årsag: Manglende felter i forespørgslen.

⚠️ Indlæs manglende historiske handler (⚠️-mærke ved positioner)

Problemet:
I dashboardet eller i positionsoversigterne vises et ⚠️-symbol ved en position ved siden af kontonavnet. Værktøjstippet viser "Manglende handelsdata — Der er ikke importeret nogen transaktioner for denne position. Derfor kan strategien ikke genkendes automatisk."

Årsagen:
Positionen i sig selv er kendt via IBKR-porteføljens øjebliksbillede, men åbningshandlerne ligger før den ældste hidtil importerede handelsdag. Det er typisk for LEAPS (langsigtede optioner), der blev åbnet måneder eller år før den første Flex Sync.

✅ Løsningen:
Start en engangsmæssig ad-hoc-eksport med historisk tidsinterval for den eksisterende Flex Query, download som XML og upload via XML-importen. Der skal ikke oprettes en ny Flex Query!
Trin for trin:
1. Start historisk eksport hos IBKR
• Find eksisterende Flex Query → klik Run
• Skift Period til Custom Date Range
• Fra: så langt tilbage som nødvendigt (f.eks. 01.01.2024)
• Til: én dag før den ældste allerede importerede handel
• Format: XML → bekræft Run

2. Download XML-filen og gem lokalt

3. Upload i Singularity Trader
• Konti → IBKR-konto → "Konfigurer IBKR" → XML Import

4. Hvad der sker ved importen
• Kun nye handler importeres (ingen dubletter)
• Strategier, kampagner og handelscyklusser genberegnes

5. Kontroller resultatet
• Genindlæs dashboardet — ⚠️-mærket bør være forsvundet

Hvis ⚠️ fortsat vises: Åbningshandlerne ligger endnu længere tilbage → start en ny kørsel med en tidligere startdato.

⚠️ 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. ✅ Kontrol: sådan ser den færdige forespørgsel ud

Efter du har gemt, viser IBKR dig en oversigtsside ("Review your Activity Flex Query"). Sammenlign den med denne reference — sådan skal din forespørgsel se ud, når alt er rigtigt.
AfsnitTypemuligheder (linjen "Options:")
Interest Accruals—
Cash TransactionsAlle undertyper (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 (ingen "Lots")
Open Dividend Accruals—
Option Exercises, Assignments and Expirations— (det afsnit, de fleste glemmer!)
Prior Period Positions—
Tradeskun Execution — ingen "Closed Lots", ingen "Wash Sales", ingen "Orders"/"Asset Class"/"Symbol Summary"
Transaction Feeskun Execution (ikke også "Summary")
TransfersTransfer (ingen "Lots")
Change in Dividend AccrualsDetail (ikke også "Summary")

Delivery Configuration og General Configuration:

IndstillingVærdi
AccountsDit konto-id (f.eks. 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)
💡 Notér forespørgsels-id'et
Den samme oversigt viser Query ID øverst (et 7-cifret tal, f.eks. 1570627). Du får brug for det sammen med tokenet i trin 8.