2.2

🔶 Interactive Brokers einrichten

Flex Query și automatische Synchronisation

1. Prezentare generală

Interactive Brokers (IBKR) offers the most comprehensive integration.

✅ Process:
1. Create Flex Query
2. Download and import Flex Query as XML for each year
3. Get updates via Flex Sync
⚠️ Important:
Flex Sync only retrieves updates from recent days. XML import builds the complete history. Without complete history, the system cannot properly evaluate trades (e.g., option strategies, campaigns, forex gains).

2. Ce este o Flex Query?

A Flex Query is a customizable report from Interactive Brokers. You define once which data you want to export, then you can retrieve this report anytime - manually or automatically.

Benefits:
• All trades, dividends, positions in one report
• Automatic synchronization possible
• Data from the last 365 days available
• No manual data entry required

Ghid pas cu pas

1

Pasul 1: Creează Flex Query la IBKR

1. Conectează-te la IBKR:
Mergi la interactivebrokers.com și autentifică-te în contul tău.

2. Deschide Flex Queries:
Navighează la: Performance & Reports → Flex Queries

3. Alege tipul corect de query:
Pagina Flex Queries afișează două tipuri de query, unul sub celălalt. Doar primul este cel corect:
✅ Activity Flex Query (dacă portalul tău este setat pe altă limbă, eticheta apare tradusă corespunzător)
Acesta este cel corect. Apasă pe ➕ din colțul din dreapta sus al acestui panou → "Create".
❌ Trade Confirmation Flex Query (dacă portalul tău este setat pe altă limbă, eticheta apare tradusă corespunzător)
Nu folosi acest tip! Conține doar confirmări de tranzacții. sTraderZ.com nu poate citi niciun fel de date din el — importul ar rămâne complet gol.
Atât timp cât nu ai creat încă niciun query, panoul Activity Flex Query afișează doar o notă care spune că nu ai niciun șablon. Simbolul ➕ este totuși acolo — în colțul din dreapta sus al acelui panou.

ℹ️ Nu ai nevoie de butonul "Configure with AI" — urmează pur și simplu pașii 2 și 3 de mai jos, acolo sunt enumerate toate setările.
2

Pasul 2: Configurează Flex Query

Query Name: ce dorești, de exemplu "SingularityTrader".

Apoi setează Delivery Configuration și General Configuration exact așa:
0 din 11 setări finalizate
3

Pasul 3: Selectează secțiunile raportului

Activează în Flex Query toate secțiunile următoare. Numele secțiunilor sunt indicate în engleză. Dacă portalul tău IBKR este setat pe altă limbă, etichetele vor apărea traduse. Lista este făcută pentru a fi bifată — progresul tău se salvează chiar dacă reîncarci pagina.
0 din 20 secțiuni activate
⚠️ Câmpuri vs. opțiuni de tip — diferența decisivă

Câmpuri (lista numerotată din interiorul fiecărei secțiuni): folosește întotdeauna "Select All" — cu cât mai multe, cu atât mai bine. Câmpurile lipsă sunt cea mai frecventă cauză a erorilor de import.

Opțiunile de tip (rândul "Options:" din partea de sus a unei secțiuni): aici este exact invers — alege un singur nivel de detaliu, exact cel indicat mai sus. Fiecare nivel suplimentar ("Summary", "Orders", "Symbol Summary", "Lots") descrie același eveniment încă o dată, într-un alt rând. sTraderZ.com nu evaluează nivelul de detaliu, ci procesează fiecare rând — de aceea, mai multe niveluri pot duce la tranzacții, comisioane și poziții numărate de două ori. Excepție: "Closed Lots" și "Wash Sales" din secțiunea Trades nu sunt doar redundante, ele trebuie să fie dezactivate.
4

Pasul 4: Salvează query-ul

Click "Continue" and then "Create".

After creation, you'll see your query in the list. Note the Query ID - you'll need it shortly.
5

Pasul 5: Generează token-ul Flex Query

Pentru preluarea automată ai nevoie de o cheie de acces. IBKR o numește token (dacă portalul tău este setat pe altă limbă, eticheta apare tradusă corespunzător) — în sTraderZ.com o vei introduce ulterior ca Flex Token.

1. Deschide Flex Web Service:
Pe pagina Flex Queries, derulează până jos, la blocul "Flex Web Service Configuration", și apasă pe "Configure" (⚙️).

2. Activează serviciul:
Pe pagina "Configure Flex Web Service", Flex Web Service status trebuie să fie enabled. Dacă este dezactivat, sTraderZ.com nu poate prelua query-ul — IBKR va respinge cererea.

3. Generează tokenul:
În secțiunea "Generate New Token":
0 din 3 setări finalizate
⚠️ Tokenul este afișat o singură dată
Copiază-l imediat și păstrează-l în siguranță. Dacă îl pierzi, trebuie să generezi unul nou — iar astfel tokenul vechi devine imediat invalid. Orice sincronizare care mai folosește tokenul vechi va eșua din acel moment.

Tokenul este valabil 1 an. După expirare, generează unul nou și salvează-l în configurarea contului tău.
6

Pasul 6: Export XML pentru toți anii

Export the Flex Query as XML for each year of your trading history:

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

2. Adjust Date Range:
Edit the query and set the date range to one calendar year (e.g., 01/01/2023 - 12/31/2023)

3. Run Query:
Click "Run" and download the XML file

4. Repeat for Each Year:
Repeat steps 2-3 for all years you've traded at IBKR (e.g., 2021, 2022, 2023, 2024).
7

Pasul 7: Import XML al istoricului

Import all downloaded XML files into Singularity Trader:

1. Open Import Section:
Go to Accounts → Your IBKR Account → Configuration → "Upload XML"

2. Oldest Year First:
Start with the oldest XML file (e.g., 2021) and work your way forward chronologically

3. Import All Years:
Import all XML files sequentially up to the current year

⚠️ Important: This step is essential! Without complete history, option strategies, trade campaigns, and forex gains cannot be calculated correctly.
8

Pasul 8: Configurare în Singularity Trader

1. Deschide configurarea contului:
Mergi la Conturi → contul tău IBKR → Configurare

2. Introdu datele Flex Query:
• Flex Query ID: ID-ul de query din 7 cifre de la IBKR (afișat în lista query-urilor, de exemplu 1570627)
• Flex Token: tokenul generat la pasul 5

3. Salvează și testează:
Apasă pe "Save" și apoi pe "Sync Now" pentru a testa.
✨

Sincronizare automată

After successful setup, your trades are automatically synchronized daily. You don't need to do anything else!

What happens during sync:
• New trades are imported
• Positions are updated
• Dividends are recorded
• Option strategies are recognized
• Forex gains are calculated (FIFO)

You can always manually sync anytime if you want the latest data immediately.

12. Reîncercare automată la erori temporare

Reîncercare automată la erori temporare Cererile IBKR Flex pot eșua ocazional din diverse motive (ex. eroare temporară de server la IBKR, timeout de rețea, cerere în curs de procesare). Singularity Trader dispune de o coadă automată de reîncercare:

• Dacă o sincronizare eșuează, se reîncearcă automat de până la 3 ori (cu intervale exponențiale).
• Abia după ce toate încercările eșuează apare o intrare CRITICAL în Jurnalul de sistem și o notificare.
• Problemele temporare se rezolvă de obicei singure, fără intervenție din partea ta.

Poți vedea starea curentă a sincronizării în secțiunea Conturi — verde = ultimul succes, galben = reîncercare în curs, roșu = eșuat după 3 încercări.

13. Alternativă: Import manual XML

Alternativă: Import manual XML Dacă nu dorești sincronizare automată, poți exporta manual Flex Query:

1. La IBKR: Flex Queries → Clic pe "Run" lângă cererea ta
2. Descărcare: Salvează fișierul XML
3. Încărcare: În Singularity Trader → Conturi → Configurare → "Încarcă XML"

Această metodă este necesară și pentru date mai vechi (> 365 zile), deoarece Flex Sync acoperă doar 1 an în urmă.

14. Date importate de la IBKR

Date importate de la IBKR Complet suportat:
• Tranzacții cu acțiuni (cumpărare/vânzare)
• Tranzacții cu opțiuni incl. Greeks
• Futures și Forex
• Dividende (brut, net, impozit reținut la sursă)
• Dobânzi (credit/debit)
• Exercitări și cesionări de opțiuni
• Splituri de acțiuni și fuziuni
• Statement of Funds pentru FIFO valutar

Recunoscut automat:
• Strategii de opțiuni (Spreaduri, Iron Condori etc.)
• Covered Calls / Cash-Secured Puts
• Campanii de tranzacționare
• Câștiguri valutare conform § 23 EStG

15. 📥 Vii de la TradingLogbook? Adu-ți etichetele.

📥 Altdaten vom TradingLogbook? Tags mitnehmen.
📥 Vii de la TradingLogbook?

Poți transfera strategiile îngrijite ca etichete pe tranzacțiile deja importate — Simbol + Data de deschidere sunt suficiente. Gata în 3 minute.

La migrarea în 3 pași

⚠️ Depanare

Depanare "Token expirat":
Generează un token nou la IBKR și introdu-l în configurare.

"Cerere negăsită":
Verifică dacă Query ID este corect și cererea este activă.

"Nicio dată":
Asigură-te că toate secțiunile necesare din cerere sunt activate.

"Eroare la import":
Verifică Jurnalul de import pentru detalii. Frecvent: Câmpuri lipsă în cerere.

⚠️ Reîncărcarea tranzacțiilor istorice lipsă (Insignă ⚠️ la Poziții)

Reîncărcarea tranzacțiilor istorice lipsă (Insignă ⚠️ la Poziții) Problema:
În tabloul de bord sau în listele de poziții apare un simbol ⚠️ lângă numele contului la o poziție. Tooltipul arată: "Date de tranzacționare lipsă — Pentru această poziție nu a fost importată nicio tranzacție. Prin urmare, strategia nu poate fi recunoscută automat."

Cauza:
Poziția în sine este cunoscută prin instantaneul de portofoliu de la IBKR, dar tranzacțiile de deschidere se află înainte de cea mai veche zi de tranzacționare importată până acum. Aceasta este tipic pentru LEAPS (opțiuni pe termen lung) deschise cu luni sau ani înainte de primul Flex-Sync.

✅ Soluția:
Inițiază un export Ad-hoc unic cu interval de date istorice din cererea Flex existentă, descarcă ca XML și încarcă prin importul XML. Nu este necesară crearea unei noi Flex Query!
Pas cu pas:
1. Inițiază exportul istoric la IBKR
• Găsește Flex Query existentă → Clic pe Run
• Setează Perioada la Custom Date Range
• De la: cât de departe în urmă este necesar (ex. 01.01.2024)
• Până la: o zi înainte de cea mai veche tranzacție deja importată
• Format: XML → Confirmă Run

2. Descarcă fișierul XML și salvează-l local

3. Încarcă în Singularity Trader
• Conturi → Contul IBKR → "Configurează IBKR" → Import XML

4. Ce se întâmplă la import
• Se importă doar tranzacțiile noi (fără duplicate)
• Strategiile, campaniile și Trade-Cycle-urile sunt recalculate

5. Verifică rezultatul
• Reîncarcă tabloul de bord — insigna ⚠️ ar trebui să fi dispărut

Dacă ⚠️ persistă: Tranzacțiile de deschidere sunt și mai îndepărtate → Inițiază un alt run cu o dată de start mai timpurie.

⚠️ 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. ✅ Verificare finală: cum arată query-ul gata configurat

După salvare, IBKR îți afișează o pagină de sinteză ("Review your Activity Flex Query"). Compar-o cu această referință — așa trebuie să arate query-ul tău dacă totul este corect.
SecțiuneOpțiuni de tip (rândul "Options:")
Interest Accruals—
Cash TransactionsToate subtipurile (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 (fără "Lots")
Open Dividend Accruals—
Option Exercises, Assignments and Expirations— (secțiunea uitată cel mai des!)
Prior Period Positions—
Tradesdoar Execution — fără "Closed Lots", fără "Wash Sales", fără "Orders"/"Asset Class"/"Symbol Summary"
Transaction Feesdoar Execution (nu suplimentar "Summary")
TransfersTransfer (fără "Lots")
Change in Dividend AccrualsDetail (nu suplimentar "Summary")

Delivery Configuration și General Configuration:

SetareValoare
AccountsID-ul contului tău (de exemplu 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)
💡 Notează-ți Query ID-ul
Aceeași pagină de sinteză afișează sus Query ID (un număr din 7 cifre, de exemplu 1570627). Ai nevoie de el împreună cu tokenul la pasul 8.