Interactive Brokers workflow | 2026-07-11
Interactive Brokers Flex report setup for a trade journal
Set up an IBKR Activity Flex Query for trade-journal imports, check the fields that matter, and avoid empty or incomplete history.
Interactive Brokers Flex can be a clean way to move trade history into a journal without handing over your broker password. The difficult part is not generating a report. It is generating the right report.
An IBKR Flex Query can return account summaries, cash movements, positions, executions, or trade confirmations. A trade journal needs a narrower set of facts: which account traded, what was bought or sold, how much, at what time, at what price, and what the realized result and fees were.
This guide covers the setup choices that matter before you connect an IBKR Flex report to any journal.
Use an Activity Flex Query for historical trades
Interactive Brokers offers more than one Flex report type. For journal history, start with an Activity Flex Query and enable its Trades section.
A Trade Confirmation Flex Query can be useful for recent confirmations, but its period may stay locked to Today. That is a poor fit when you are trying to backfill several weeks or months of completed trades.
The practical check is simple: choose a date range that contains a trade you remember. If the generated XML does not include that trade, fix the query before connecting it to a journal.
Include fields a journal can reconcile
Field names can vary inside IBKR reporting, but the report should expose enough detail to reconstruct the trade record.
Include:
- account ID
- symbol and contract description
- buy or sell side
- quantity
- trade date and time
- trade price
- commission
- realized P&L when available
- trade ID, execution ID, or order ID
If realized P&L is not available in the field picker, check the query's Profit and Loss configuration. Proceeds and cost basis can also help reconcile a report, but they are not a good reason to ignore missing trade identity or timestamps.
Do not add every available section just because it exists. Dividends, deposits, transfers, interest, and account summaries may matter for brokerage records, but they do not help a trade journal understand an entry and exit.
Generate XML, not a report meant for reading
Choose XML as the report format.
CSV is convenient for manual inspection, but Flex Web Service integrations are built around generated XML reports. A machine-readable report also preserves field names and identifiers more reliably than a formatted statement.
After saving the query, note the Flex Query ID. It is different from the Flex token.
Create a separate Flex Web Service token
Enable Flex Web Service in the Interactive Brokers reporting area and copy the token it provides.
The pair used by a journal is:
- the Flex token, which authorizes report retrieval
- the Flex Query ID, which selects the saved report definition
That flow does not require your IBKR username or password. The token is still sensitive and should be treated like a credential. If you regenerate or revoke it, update the journal connection as well.
Test with a known account and known trade
The most useful test is not a green connection badge. It is a recognizable record.
Before you trust the import, check one trade against Trader Workstation or Client Portal:
- Is the account correct?
- Is the contract correct?
- Does the side match?
- Are entry and exit times believable?
- Are commissions present?
- Does the realized result make sense?
If several IBKR accounts share one login, make sure the report includes the account IDs you expect. A journal can only discover accounts that appear in the Flex output.
Why a Flex report sometimes returns no trades
An empty import does not always mean the connection is broken.
Common causes include:
- the selected period contains no trades
- the query uses Trade Confirmation with a period locked to
Today - the Trades section is missing
- the token belongs to a different IBKR user than the query
- the report excludes the account you expected
- the generated statement is still being prepared
Widen the report period, generate it inside Interactive Brokers, and confirm that the XML contains trade records. That separates a report-definition problem from a journal problem quickly.
Review grouped trades, not only execution rows
IBKR Flex data is execution-level history. A scale-in, partial exit, or multi-leg sequence can therefore arrive as several records.
For review, the useful object is often the completed trade idea. After import, inspect one sequence with more than one fill:
- Did the executions stay in the correct direction?
- Is the weighted average entry believable?
- Did the final exit flatten the expected quantity?
- Are commissions reflected consistently?
- Does the grouped result resemble the broker record?
Do this before writing a lesson about the trade. Clean reporting should lead to cleaner judgment, not false confidence.
A short IBKR Flex setup checklist
Before connecting the report:
- Create an Activity Flex Query.
- Enable the Trades section.
- Select XML output.
- Include account, contract, side, quantity, price, time, commission, P&L, and identifiers.
- Choose a period containing a known completed trade.
- Generate the report once inside Interactive Brokers.
- Create or copy the Flex Web Service token.
- Keep the token and Query ID separate.
- Test one imported trade against the broker record.
- Inspect a multi-fill trade before reviewing the session.
For the Ploutos-specific connection steps, use the Interactive Brokers Flex import guide. If the report connects but history stays empty, use sync status and empty history.
Where Ploutos fits
Ploutos uses an Interactive Brokers Flex report as a historical import path. It does not need your IBKR password and it does not place orders. Once the trade history arrives, the work moves to review: grouped trades, fees, chart context, screenshots, planned risk, notes, and the next rule worth carrying into another session.
Ploutos is not affiliated with Interactive Brokers. Interactive Brokers documents the underlying report flow in its Flex Web Service reference.