Interactive Brokers Trading Journal
Set up a Flex Query once and your IBKR trades arrive automatically. If you prefer uploading files, use the Transaction History export instead.
- Free for your first 25 trades
- Read access to your statements only, no trading access
- No credit card required


Can you import your IBKR trades?
Yes, in two ways. The Flex Web Service is the recommended one: you create an Activity Flex Query in the Client Portal, store the token and query ID, and your trades are fetched automatically from then on. Alternatively you can upload the Transaction History export as CSV.
Both routes produce the same trades and deduplicate against each other. You can start with CSV uploads and move to the automatic sync later without your history appearing twice.
Automatic sync
The Flex Web Service fetches new trades daily without your involvement.
Two routes, no duplicates
CSV upload and API sync build identical identifiers and do not exclude each other.
Account currency
Amounts arrive FX converted and are therefore directly comparable.
Two ways to import IBKR trades
The Flex Web Service is the lasting solution and costs a little more setup once. The CSV route is quicker to start but has to be repeated for every new period.
Route 1: set up the Flex Web Service
IBKR does not use a conventional API key but a Flex token together with a query ID, both created in the Client Portal. The query must include the "Trades" section with the "Executions" option, otherwise no fills arrive.
- 1
Flex Web Service aktivieren
Melde dich im IBKR Client Portal an und öffne "Performance & Berichte" → "Flex-Queries" → "Flex Web Service Konfiguration". Aktiviere den Flex-Web-Service-Status.
- 2
Flex Token generieren
Wähle bei "Should Expire After" eine lange Gültigkeit (z. B. 1 Jahr) und klicke auf "Generate New Token". Kopiere den angezeigten Token — das ist dein Flex Token für Momentum.
- 3
Activity Flex Query anlegen
Erstelle unter "Flex-Queries" eine neue Activity-Flex-Query. Wähle die Sektion "Trades" mit der Option "Executions" und aktiviere "Select All" bei den Feldern.
- 4
Query konfigurieren
Setze das Format auf "XML" oder "CSV" (beide werden unterstützt), den Zeitraum auf "Last 365 Calendar Days", das Datumsformat auf "yyyy-MM-dd" und das Zeitformat auf "HH:mm:ss". Speichere die Query.
- 5
Query ID kopieren
Nach dem Speichern zeigt die Query-Übersicht die Query-ID an. Kopiere sie und trage Flex Token + Query ID hier in Momentum ein.
- 6
Hinweise zum Sync
Trades erscheinen im Flex-Statement erst ca. einen Tag nach der Ausführung. Duplikate zwischen API-Sync und CSV-Import werden erkannt — Voraussetzung ist das Datumsformat "yyyy-MM-dd" aus Schritt 4.
Route 2: Transaction History as CSV
The Client Portal export is a multi section file without a single header row. The importer evaluates the "Transaction History" section and its Buy and Sell entries.
- 1
Transaction History öffnen
Melde dich im IBKR-Client-Portal an und öffne "Performance & Reports" → "Transaction History".
- 2
Zeitraum wählen & als CSV exportieren
Wähle den gewünschten Zeitraum, sodass beide Seiten deiner Trades (Eröffnung und Schließung) enthalten sind, und exportiere die Übersicht als CSV. Positionen, deren Eröffnung vor dem Zeitraum liegt, lassen sich nicht auswerten und werden übersprungen.
- 3
CSV hochladen
Lade die Datei hier hoch. Ausgewertet wird die Sektion "Transaction History" mit den Typen "Buy" und "Sell"; Ein- und Auszahlungen, Gebühren und FX-Komponenten werden ignoriert. Alternativ kannst du deine Trades über den Flex-Web-Service automatisch synchronisieren.
What gets imported from the IBKR statement
IBKR delivers individual executions rather than finished positions. A trade emerges when the net quantity of a symbol returns to zero. Partial closes are merged into a single position along the way.
| IBKR field | Journal field | Note |
|---|---|---|
| symbol | Symbol | For options and future options the readable description is used |
| Transaction Type (Buy, Sell) | Direction | Other types such as Withdrawal or Other Fee are skipped |
| Net Amount or netCash | Result (net) | In account currency, commission already included |
| Commission | Fees | Informational only, already deducted in the result |
| Execution timestamps | Open and close time | First and last execution of the round trip |
| Quantity per execution | Position build up | Buy counts positive, sell negative, a zero crossing closes it |
What to watch out for with Interactive Brokers
IBKR is the most technically demanding provider on this list. Four points decide whether the import comes out clean.
The query date format decides whether duplicates are caught
The query must use the date format with a four digit year, month and day separated by hyphens. A trade identifier is built from symbol, timestamps, quantity and result. A different date format produces a different identifier, so the same trade would appear twice when you switch between CSV and sync.
Trades only appear about a day later
IBKR generates the Flex statement once a day rather than maintaining it in real time. A trade from this morning therefore shows up in the sync the next day at the earliest. That is a property of the statement rather than a fault in the connection, and syncing more often will not speed it up.
Positions without a zero crossing are skipped
Since a trade only exists once the net quantity of a symbol returns to zero, two cases drop out: positions still open, and positions whose opening predates the statement period. Set the query period generously, for example to the last 365 calendar days.
Amounts are in account currency, not trading currency
IBKR converts the net amount into your account base currency for you. A trade in US dollars therefore appears in euros on a euro account, at the rate applying at execution. That is intended and makes trades comparable across currencies, but it differs from what the trading screen shows.
Which analysis pays off at IBKR
IBKR accounts are rarely homogeneous. Stocks, options and futures sit in the same account while carrying completely different cost structures and holding periods. A single overall performance figure blends things that ought to be looked at separately.
The first worthwhile cut is therefore by instrument type and the second by holding period. With options it also pays to watch the ratio of commission to result: at small position sizes commission eats a substantial share of the profit, which stays invisible in a totals view.
Because results already arrive in account currency, trades can be compared directly across venues and currencies. That is worth more at IBKR than at most other providers, since accounts there are typically traded genuinely internationally.
Trading journal: What a trading journal does, which metrics matter and how it differs from a spreadsheet template.
Flex Web Service or CSV upload
Both routes deliver the same trades. The difference is ongoing effort.
| Criteria | Flex Web Service | CSV upload |
|---|---|---|
| Setup | About 10 minutes once in the Client Portal | Ready immediately |
| Ongoing effort | None, the sync runs by itself | A new export per period |
| Freshness | Daily, as soon as IBKR generates the statement | As current as your last upload |
| Gaps in the period | The query covers a rolling 365 days | You pick the range on every export |
| Switching routes | Any time, without duplicate trades | Any time, without duplicate trades |
Common questions about connecting IBKR
Supercharge yourtrading performance
Start from zero with Momentum. Use our tools to improve your trading performance.