Как настроить Flex Query в Interactive Brokers?
Нужны две вещи: Activity Flex Query — сохранённый отчёт с восемью секциями в формате XML — и токен Flex Web Service, по которому программа этот отчёт скачивает. Обе делаются на одной странице кабинета, минут за десять. Ниже — путь по меню, шаги и схема, какая секция за что отвечает.
Обновлено
Что ты получишь в конце
Flex Query — это шаблон отчёта в кабинете IB: какие разделы, какие поля, за какой период и в каком формате. У каждого запроса есть номер — Query ID. Flex Web Service — способ получать такой отчёт программой, без входа в кабинет: по IBKR Guides для запроса нужны текущий токен и Query ID (Configure Flex Web Service).
Обе настройки — в одном месте: Performance & Reports → Flex Queries (или Menu → Reporting → Flex Queries). На схеме — куда нажимать и что получится.
- Activity Flex Query, «+»Sections + Delivery Configuration8 секций, Models Optional, XML, Last 365 Calendar Days
- Continue → CreateQuery IDномер отчёта
- Flex Web Service ConfigurationFlex Web Service Status → SaveShould Expire After, Valid For IP Address — пусто
- Generate New TokenТокенключ подключения
Названия пунктов — как в IBKR Guides (Client Portal). Query ID и токен вставляются в PnlTrack.
Пошагово
Шаги — по IBKR Guides Create an Activity Flex Query и Configure Flex Web Service; состав секций и настройки доставки — те, что ждёт импорт PnlTrack.
- Открой Flex Queries. Войди в Client Portal и открой Performance & Reports → Flex Queries (или Menu → Reporting → Flex Queries).
- Создай Activity Flex Query. В панели Activity Flex Query нажми «+» и дай запросу любое имя.
- Отметь восемь секций. В Sections выбери: Cash Transactions, Corporate Actions, Financial Instrument Information, Open Positions, Option Exercises, Assignments and Expirations, Realized and Unrealized Performance Summary in Base, Trades, Transfers.
- Включи все поля в каждой секции. Каждая секция открывается окном со списком полей: отметь все и нажми Save. У Open Positions включи оба уровня детализации — Summary и Lot.
- Настрой Delivery Configuration. Models — Optional, Format — XML, Period — Last 365 Calendar Days. General Configuration оставь как есть.
- Сохрани и скопируй Query ID. Нажми Continue, проверь настройки и нажми Create. Скопируй Query ID созданного запроса.
- Включи Flex Web Service. На той же странице открой Flex Web Service Configuration, отметь Flex Web Service Status и нажми Save.
- Создай токен. В Should Expire After выбери самый долгий срок, поле Valid For IP Address оставь пустым, нажми Generate New Token и скопируй токен.
- Вставь в PnlTrack. В PnlTrack добавь подключение Interactive Brokers с токеном, затем ежедневный отчёт с Query ID — загрузка начнётся сразу.
Какая секция за что отвечает
Flex отдаёт ровно те секции, что отмечены в запросе. По нашим выгрузкам: отмеченная секция без данных приходит пустой, неотмеченной в файле нет вовсе — и восстановить её потом нечем. Поэтому список короткий и точный: всё, что читает импорт, и ничего лишнего. Лишняя секция не мешает, но и не используется. Что в каждой секции, описано в Activity Flex Query Reference.
- 1Cash Transactions
- PnlTrack берёт:
- дивиденды, удержанный налог, проценты, комиссии брокера, вводы и выводы денег
- без неё:
- нет дивидендов и налога с них
- 2Corporate Actions
- PnlTrack берёт:
- сплиты, спин-оффы, поглощения
- без неё:
- сплиты и поглощения не учтены
- 3Financial Instrument Information
- PnlTrack берёт:
- ISIN, conid, FIGI — опознание бумаги
- без неё:
- бумагу не опознать надёжно — тикер её не определяет
- 4Open Positions
- PnlTrack берёт:
- позиции и стоимость приобретения глазами брокера
- без неё:
- не с чем сверить позиции, не применяется поправка на возврат капитала
- 5Option Exercises, Assignments and Expirations
- PnlTrack берёт:
- исполнение, назначение и истечение опционов
- без неё:
- исполнение и истечение опционов не видны
- 6Realized and Unrealized Performance Summary in Base
- PnlTrack берёт:
- отметку брокера о корректировке стоимости
- без неё:
- корректировку стоимости не видно
- 7Trades
- PnlTrack берёт:
- покупки и продажи, цены, комиссии
- без неё:
- не загрузится ничего
- 8Transfers
- PnlTrack берёт:
- приход и уход бумаг между счетами и брокерами
- без неё:
- продажа переведённой бумаги выглядит продажей без покупки
Состав — ровно тот, что читает импорт PnlTrack; тот же список — в онбординге приложения.
Почему Models — Optional, а не All
Models в Delivery Configuration принимает два значения — Optional и All (так в IBKR Guides). При All кабинет IB предупреждает одной строкой, что разделы и поля реализованной прибыли выключаются, когда в отчёт включены модели. В справке IBKR Guides этой оговорки нет — она видна только в самом кабинете.
Что это значит на деле, мы проверили на двух выгрузках одного счёта: при All у Open Positions стоимость приобретения (Cost Basis Price, Cost Basis Money) нулевая, а сводка Realized and Unrealized Performance Summary in Base пустая. Ноль здесь — «поле выключено», а не «бумага бесплатная», и PnlTrack такой ноль фактом не записывает. При Optional те же поля заполнены и сходятся с выпиской CSV того же счёта.
- OptionalПоля прибыли и стоимости заполненыпозиции со стоимостью, сводка по бумагам
- AllПоля прибыли выключеныOpen Positions с нулевой стоимостью, сводка пустая
Вывод — по двум нашим выгрузкам одного счёта с разницей в полчаса.
Период и история старше года
Last 365 Calendar Days — один из вариантов Period в IBKR Guides. С ним каждый ежедневный запуск приносит последний год: новые сделки появляются, а уже загруженные PnlTrack не дублирует.
Историю старше года через Flex не тянут: в PnlTrack её загружают выписками Activity Statement в формате CSV, по одной на год — в приложении для этого есть отдельная пошаговая инструкция. Сам XML-файл Flex вручную не загружается: он приходит только по токену.
Сделки в течение дня — по желанию
Activity Flex Query обновляется раз в сутки. Если хочешь видеть сделки быстрее, в PnlTrack можно добавить второй отчёт — Trade Confirmation Flex Query: он создаётся в той же странице Flex Queries (панель Trade Confirmation Flex Query, «+»), с одной секцией и форматом XML. Токен у него тот же, нужен только его Query ID. PnlTrack запрашивает такой отчёт примерно каждые 30 минут.
Если что-то не так
- Токен перестал работать. У токена есть срок (по IBKR Guides по умолчанию — 6 часов, поэтому срок выбирают дольше). Сгенерируй новый и замени ключ в PnlTrack. Помни: новый токен отменяет прежний — если тем же логином IB пользуется ещё программа, ей тоже нужен новый.
- В Valid For IP Address вписан адрес. Тогда токен работает только с этого адреса, и серверы PnlTrack его не смогут использовать. Оставь поле пустым.
- Нет позиций, переводов или кодов бумаг. Скорее всего, секция не отмечена. Об отсутствующих Open Positions, Realized and Unrealized Performance Summary in Base, Transfers и Financial Instrument Information PnlTrack сам напишет после импорта — открой запрос в IB, отметь секцию и сохрани.
- Стоимость позиций нулевая. Проверь Models: должно быть Optional.
Что дальше делать с загруженными сделками для налоговой — в обзоре Interactive Brokers и налоговая декларация в Финляндии.
Частые вопросы
- Безопасно ли давать токен Flex Web Service?
- Токен служит для запроса отчётов Flex вместе с Query ID — так его описывает IBKR Guides. Пароль от IB ты не передаёшь. Токен можно в любой момент заменить новым: по IBKR Guides новый токен отменяет прежний.
- Сколько живёт токен?
- По IBKR Guides срок задаётся в Should Expire After, по умолчанию — 6 часов. Для ежедневной загрузки выбирают самый долгий срок; когда он истечёт, сгенерируй новый токен и замени ключ в PnlTrack.
- Почему Models = Optional?
- При All кабинет IB выключает поля реализованной прибыли, и в наших выгрузках позиции приходили с нулевой стоимостью приобретения. При Optional эти поля заполнены.
- Можно ли загрузить историю больше чем за год?
- Flex-запрос в PnlTrack настраивается на Last 365 Calendar Days. Более старую историю загружают выписками Activity Statement в CSV, по одной на год; пересекающиеся периоды не страшны — дубли PnlTrack убирает.
Источники
Всё, что здесь сказано о налоге и курсах валют, опирается на эти источники.
- IBKR Guides: Create an Activity Flex Query (Client Portal) — путь меню, секции, Delivery Configuration: Models, Format, Period
- IBKR Guides: Configure Flex Web Service (Client Portal) — включение сервиса, срок и IP токена, новый токен отменяет старый
- IBKR Reporting Reference: Activity Flex Query Reference — что в каждой секции
- IBKR Reporting Reference: Open Positions — уровни Summary и Lot, Cost Basis
- IBKR Reporting Reference: Trades — уровни детализации сделок
- IBKR Reporting Reference: Transfers (ACATS, Internal) — переводы позиций между брокерами
Это общая информация, а не налоговая или инвестиционная консультация. Свою ситуацию сверь с инструкциями налоговой или со специалистом.