2.2

🔶 Настройка Interactive Brokers

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

1. Обзор

Interactive Brokers (IBKR) предлагает наиболее полную интеграцию.

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

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: Выбор разделов отчёта

Активируйте в Flex Query все перечисленные ниже разделы. Список можно отмечать галочками — ваш прогресс сохраняется даже после перезагрузки страницы.
0 из 20 разделов активировано
⚠️ Поля против опций типа — решающая разница

Поля (нумерованный список внутри каждого раздела): всегда используйте «Select All» — чем больше, тем лучше. Отсутствующие поля — самая частая причина ошибок импорта.

Опции типа (строка «Options:» вверху раздела): здесь действует обратное правило — выбирайте только один уровень детализации, ровно тот, который указан выше. Каждый дополнительный уровень («Summary», «Orders», «Symbol Summary», «Lots») описывает то же самое событие второй раз в другой строке. sTraderZ.com не анализирует уровень детализации, а обрабатывает каждую строку — поэтому несколько уровней могут привести к двойному учёту сделок, комиссий и позиций. Исключение: «Closed Lots» и «Wash Sales» в разделе «Сделки» не просто избыточны — они обязаны быть выключены.
4

Шаг 4: Сохранение запроса

Нажмите «Continue», затем «Create».

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

Шаг 5: Генерация токена Flex Query

Для автоматического получения данных вам нужен ключ доступа. В IBKR он называется токен — позже в 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 – 31.12.2023)

3. Выполните запрос:
Нажмите «Run» и скачайте XML-файл

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

Шаг 7: Импорт XML истории

Импортируйте все скачанные XML-файлы в Singularity Trader:

1. Откройте раздел импорта:
Перейдите в Счета → Ваш IBKR-счёт → Конфигурация → «Загрузить XML»

2. Начните со старейшего года:
Начните с самого старого XML-файла (напр. 2021) и двигайтесь хронологически

3. Импортируйте все годы:
Последовательно импортируйте все XML-файлы вплоть до текущего года

⚠️ Важно: Этот шаг обязателен! Без полной истории невозможно корректно рассчитать опционные стратегии, торговые кампании и валютную прибыль.
8

Шаг 8: Настройка в Singularity Trader

1. Откройте конфигурацию счёта:
Перейдите в Счета → Ваш IBKR-счёт → Конфигурация

2. Введите данные Flex Query:
• Flex Query ID: 7-значный идентификатор запроса из IBKR (показан в обзоре запроса, например 1570627)
• Flex Token: токен, созданный на шаге 5

3. Сохраните и проверьте:
Нажмите «Сохранить», затем «Синхронизировать сейчас» для проверки.
✨

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

После успешной настройки ваши сделки будут автоматически синхронизироваться ежедневно. Больше ничего делать не нужно!

Что происходит при синхронизации:
• Импортируются новые сделки
• Обновляются позиции
• Записываются дивиденды
• Распознаются опционные стратегии
• Рассчитывается валютная прибыль (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:»)
Начисления процентов—
Денежные операцииВсе подтипы (Dividends, Payment In Lieu Of Dividends, Withholding Tax, Deposits & Withdrawals, Broker/Bond Interest, Other Fees, Other Income …) + Detail
Расходы на CFD—
Отчет о денежных средствах—
Входящие/исходящие переводы по сделкамTrade Transfers
Подробности ПиУ ForexTransaction
Операции по акциям в подарок—
Информация о финансовом инструменте—
Отчет о движении денежных средствBase Currency Summary, Currency Breakout, Include Starting and Ending Balances
Корпоративные действияDetail
Информация о счете—
Чистая стоимость активов (NAV) в базовой валюте—
Открытые позицииSummary (без «Lots»)
Начисления дивидендов по открытым позициям—
Исполнения опционов, переуступки прав и истечение сроков— (о нём забывают чаще всего!)
Позиции в предыдущий период—
СделкиТолько Execution — без «Closed Lots», без «Wash Sales», без «Orders»/«Asset Class»/«Symbol Summary»
Платы за транзакцииТолько Execution (без дополнительного «Summary»)
ПереводыTransfer (без «Lots»)
Изменения в начислениях дивидендовDetail (без дополнительного «Summary»)

Delivery Configuration и General Configuration:

НастройкаЗначение
СчетаИдентификатор вашего счёта (например, U1234567)
ФорматXML
ПериодПоследние 30 календарных дней
Прибыль и убыткиПо умолчанию
Include Offsetting Trade/Cancel Pairs?Нет
Включить курсы валют?Нет
Включить поля аудиторского следа?Нет
Показывать псевдоним вместо ID счета?Нет
Разделить по дням?Нет
Формат датыyyyyMMdd
Формат времениHHmmss
Разделитель даты/времени; (точка с запятой)
💡 Запишите Query ID
В той же сводке вверху указан Query ID (7-значное число, например 1570627). Он понадобится вам вместе с токеном на шаге 8.