2.2

🔶 Налаштування Interactive Brokers

Flex Query та автоматична синхронізація

1. Огляд

Interactive Brokers (IBKR) пропонує найповнішу інтеграцію.

✅ Процес:
1. Створіть Flex Query
2. Завантажте та імпортуйте Flex Query як XML для кожного року
3. Отримуйте оновлення через Flex Sync
⚠️ Важливо:
Flex Sync отримує лише оновлення за останні дні. XML-імпорт формує повну історію. Без повної історії система не може правильно оцінювати угоди (наприклад, стратегії з опціонами, кампанії, прибутки у Forex).

2. Що таке Flex Query?

Flex Query — це настроюваний звіт від Interactive Brokers. Ви один раз визначаєте, які дані хочете експортувати, після чого можете отримувати цей звіт будь-коли — вручну або автоматично.

Переваги:
• Усі угоди, дивіденди, позиції в одному звіті
• Можлива автоматична синхронізація
• Дані за останні 365 днів доступні
• Не потрібно вводити дані вручну

Покрокова інструкція

1

Крок 1: Створіть Flex Query в IBKR

1. Увійдіть до IBKR:
Перейдіть на interactivebrokers.com та увійдіть до свого рахунку.

2. Відкрийте Flex Queries:
Перейдіть до: Performance & Reports → Flex Queries

3. Оберіть правильний тип запиту:
На сторінці Flex Queries один під одним перелічено два типи запитів. Правильним є лише перший:
✅ Activity Flex Query
Це правильний варіант. Натисніть ➕ у верхньому правому куті цієї панелі → "Create".
❌ Trade Confirmation Flex Query
Не використовуйте його! Він містить лише підтвердження угод. sTraderZ.com не може прочитати з нього жодних даних — імпорт вийде повністю порожнім.
Поки ви ще не створили жодного запиту, панель Activity Flex Query показує лише повідомлення про те, що шаблонів немає. ➕ усе одно там є — у верхньому правому куті цієї панелі.

ℹ️ Кнопка "Configure with AI" вам не потрібна — просто виконайте кроки 2 і 3 нижче, у них перелічено всі налаштування.
2

Крок 2: Налаштуйте Flex Query

Query Name: будь-яка на ваш вибір, напр. "SingularityTrader".

Далі налаштуйте Delivery Configuration і General Configuration саме так:
0 з 11 налаштувань виконано
3

Крок 3: Виберіть секції звіту

Назви розділів наведено англійською. Якщо ваш портал IBKR налаштовано іншою мовою, назви буде перекладено.

Увімкніть усі наведені нижче секції у Flex Query. Список створено для позначення галочками — ваш прогрес зберігається навіть після перезавантаження сторінки.
0 з 20 секцій увімкнено
⚠️ Поля проти опцій типу — вирішальна різниця

Поля (пронумерований список усередині кожної секції): завжди використовуйте "Select All" — що більше, то краще. Відсутні поля — найчастіша причина помилок імпорту.

Опції типу (рядок "Options:" угорі секції): тут діє протилежне — обирайте лише один рівень деталізації, саме той, що вказано вище. Кожен додатковий рівень ("Summary", "Orders", "Symbol Summary", "Lots") описує ту саму подію вдруге в іншому рядку. sTraderZ.com не оцінює рівень деталізації, а обробляє кожен рядок — тому кілька рівнів можуть призвести до подвійного підрахунку угод, комісій і позицій. Виняток: "Closed Lots" і "Wash Sales" у секції Trades не просто надлишкові — вони мають бути вимкнені.
4

Крок 4: Збережіть запит

Натисніть "Continue", а потім "Create".

Після створення Ви побачите свій запит у списку. Запишіть Query ID — він знадобиться Вам незабаром.
5

Крок 5: Створіть токен Flex Query

Для автоматичного отримання даних вам потрібен ключ доступу. IBKR називає його token — у sTraderZ.com ви пізніше введете його як Flex Token.

1. Відкрийте Flex Web Service:
На сторінці Flex Queries прокрутіть у самий низ до блоку "Flex Web Service Configuration" і натисніть "Configure" (⚙️).

2. Увімкніть сервіс:
На сторінці "Configure Flex Web Service" статус Flex Web Service має бути увімкнено. Якщо він вимкнений, sTraderZ.com не зможе отримати запит — IBKR відхилить звернення.

3. Створіть токен:
У секції "Generate New Token":
0 з 3 налаштувань виконано
⚠️ Токен показується лише один раз
Скопіюйте його одразу та збережіть у надійному місці. Якщо ви його втратите, доведеться створити новий — і це негайно знецінює старий токен. Будь-яка синхронізація, що й далі використовує старий токен, з цього моменту завершуватиметься помилкою.

Токен дійсний 1 рік. Після завершення строку створіть новий і збережіть його в конфігурації рахунку.
6

Крок 6: XML-експорт за всі роки

Експортуйте Flex Query як XML за кожен рік Вашої торгової історії:

1. Відкрийте Flex Query:
В IBKR: Performance & Reports → Flex Queries

2. Відкоригуйте діапазон дат:
Відредагуйте запит та встановіть діапазон дат на один календарний рік (наприклад, 01/01/2023 - 12/31/2023)

3. Виконайте запит:
Натисніть "Run" та завантажте XML-файл

4. Повторіть для кожного року:
Повторіть кроки 2–3 для всіх років, протягом яких Ви торгували в IBKR (наприклад, 2021, 2022, 2023, 2024).
7

Крок 7: XML-імпорт історії

Імпортуйте всі завантажені XML-файли до Singularity Trader:

1. Відкрийте розділ імпорту:
Перейдіть до Accounts → Ваш рахунок IBKR → Configuration → "Upload XML"

2. Починайте з найстарішого року:
Почніть із найстарішого XML-файлу (наприклад, 2021) та рухайтеся хронологічно вперед

3. Імпортуйте всі роки:
Імпортуйте всі XML-файли послідовно до поточного року

⚠️ Важливо: Цей крок є обов'язковим! Без повної історії стратегії з опціонами, торгові кампанії та прибутки у Forex не можуть бути розраховані правильно.
8

Крок 8: Налаштуйте в Singularity Trader

1. Відкрийте конфігурацію рахунку:
Перейдіть до Accounts → Ваш рахунок IBKR → Configuration

2. Введіть дані Flex Query:
• Flex Query ID: 7-значний ID запиту з IBKR (показано в огляді запитів, напр. 1570627)
• Flex Token: Токен, який ви створили в кроці 5

3. Збережіть і протестуйте:
Натисніть "Зберегти", а потім "Синхронізувати зараз" для перевірки.
✨

Автоматична синхронізація

Після успішного налаштування Ваші угоди синхронізуються автоматично щодня. Вам більше нічого не потрібно робити!

Що відбувається під час синхронізації:
• Нові угоди імпортуються
• Позиції оновлюються
• Дивіденди записуються
• Стратегії з опціонами розпізнаються
• Прибутки у Forex розраховуються (FIFO)

Ви завжди можете синхронізувати вручну будь-коли, якщо хочете отримати найновіші дані негайно.

12. Автоматичне повторення при тимчасових помилках

Запити Flex IBKR можуть іноді завершуватися помилкою з різних причин (наприклад, короткочасний збій сервера IBKR, мережевий тайм-аут, запит на обробці). Singularity Trader має автоматичну чергу повторних спроб:

• При збої синхронізації вона автоматично повторюється до 3 разів (з експоненційними інтервалами).
• Лише якщо всі спроби не вдалися, у системному журналі з'являється запис CRITICAL і сповіщення.
• Тимчасові проблеми зазвичай вирішуються самі по собі без вашого втручання.

Поточний статус синхронізації видно в розділі Рахунки — зелений = остання синхронізація успішна, жовтий = виконується повторна спроба, червоний = не вдалося після 3 спроб.

13. Альтернатива: Ручний імпорт XML

Якщо ви не хочете автоматичної синхронізації, можна вручну експортувати Flex Query:

1. В IBKR: Flex Queries → «Run» поруч із вашим запитом
2. Завантажити: Зберегти XML-файл
3. Вивантажити: У Singularity Trader → Рахунки → Конфігурація → «Завантажити XML»

Цей метод також необхідний для старих даних (> 365 днів), оскільки Flex Sync охоплює лише 1 рік назад.

14. Імпортовані дані з IBKR

Повна підтримка:
• Угоди з акціями (купівля/продаж)
• Угоди з опціонами включно з Greeks
• Ф'ючерси та Forex
• Дивіденди (брутто, нетто, податок у джерела)
• Відсотки (кредитні/дебетові)
• Виконання та призначення опціонів
• Дроблення акцій та злиття
• Statement of Funds для валютного FIFO

Автоматично розпізнається:
• Опціонні стратегії (Spreads, Iron Condors тощо)
• Covered Calls / Cash-Secured Puts
• Торгові кампанії
• Валютні прибутки згідно з § 23 EStG

15. 📥 Дані з TradingLogbook? Перенесіть свої теги.

📥 Ви переходите з TradingLogbook?

Ваші стратегії можна перенести у вигляді тегів на вже імпортовані угоди — достатньо Symbol + дата відкриття. Готово за 3 хвилини.

До переносу в 3 кроки

⚠️ Усунення несправностей

«Токен прострочено»:
Згенеруйте новий токен в IBKR і введіть його в конфігурації.

«Запит не знайдено»:
Перевірте правильність Query ID і переконайтеся, що запит активний.

«Немає даних»:
Переконайтеся, що в запиті активовано всі необхідні розділи.

«Помилка імпорту»:
Перевірте журнал імпорту для отримання деталей. Часта причина: відсутні поля в запиті.

⚠️ Дозавантаження відсутніх історичних угод (значок ⚠️ у позицій)

Проблема:
На головній сторінці або в списках позицій поруч з іменем рахунку у позиції відображається символ ⚠️. Підказка показує «Відсутні дані угод — Для цієї позиції не було імпортовано жодної транзакції. Внаслідок цього стратегія не може бути автоматично розпізнана.»

Причина:
Сама позиція відома зі знімка портфеля IBKR, але угоди відкриття знаходяться до найраннішого раніше імпортованого торгового дня. Це типово для LEAPS (довгострокові опціони), відкритих за місяці або роки до першої синхронізації Flex.

✅ Рішення:
Для існуючого Flex Query одноразово запустіть ad-hoc експорт з історичним діапазоном дат, завантажте як XML і вивантажте через імпорт XML. Створювати новий Flex Query не потрібно!
Крок за кроком:
1. Запустіть історичний експорт в IBKR
• Знайдіть існуючий Flex Query → натисніть Run
• Встановіть Period на Custom Date Range
• З: наскільки далеко назад потрібно (наприклад, 01.01.2024)
• По: день до найранішої вже імпортованої угоди
• Формат: XML → підтвердіть Run

2. Завантажте XML-файл і збережіть локально

3. Вивантажте в Singularity Trader
• Рахунки → Рахунок IBKR → «Налаштувати IBKR» → Імпорт XML

4. Що відбувається при імпорті
• Імпортуються лише нові угоди (без дублікатів)
• Стратегії, кампанії та торгові цикли перераховуються

5. Перевірте результат
• Оновіть головну сторінку — значок ⚠️ має зникнути

Якщо ⚠️ залишається: Угоди відкриття знаходяться ще далі в минулому → запустіть ще один експорт з більш ранньою початковою датою.

⚠️ 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. ✅ Перевірка: як виглядає готовий запит

Після збереження IBKR показує вам сторінку з підсумком ("Review your Activity Flex Query"). Порівняйте її з цим еталоном — саме так має виглядати ваш запит, якщо все зроблено правильно.
СекціяОпції типу (рядок "Options:")
Interest Accruals—
Cash TransactionsУсі підтипи (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 (без "Lots")
Open Dividend Accruals—
Option Exercises, Assignments and Expirations— (про неї забувають найчастіше!)
Prior Period Positions—
Tradesлише Execution — без "Closed Lots", без "Wash Sales", без "Orders"/"Asset Class"/"Symbol Summary"
Transaction Feesлише Execution (не додавайте "Summary")
TransfersTransfer (без "Lots")
Change in Dividend AccrualsDetail (не додавайте "Summary")

Delivery Configuration і General Configuration:

НалаштуванняЗначення
AccountsID вашого рахунку (напр. 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)
💡 Запишіть Query ID
На тій самій оглядовій сторінці вгорі показано Query ID (7-значне число, напр. 1570627). Він знадобиться вам разом із токеном у кроці 8.