Activity Statement
In Client Portal open Performance & Reports, then Statements, and run an Activity Statement covering both entry and exit. The Trades section is what you need.
Interactive Brokers trade journal chart
This guide is for Interactive Brokers traders who want each US stock round trip drawn on real candles instead of a cropped screenshot. Export the Trades section, map a few columns, and KLinePic renders a review image with buy/sell markers, holding window, return, max run-up, and max drawdown — no account required to start.
The official Client Portal guides place Activity Statements under Performance & Reports > Statements and Flex Queries under Performance & Reports > Flex Queries — both also reachable via Menu > Reporting — and the reporting reference documents every Trades column.
In Client Portal open Performance & Reports, then Statements, and run an Activity Statement covering both entry and exit. The Trades section is what you need.
Or build a Flex Query with the Trades section and pick exactly Symbol, Trade Date, Trade Time, Quantity, Trade Price, Buy/Sell, and IB Commission. TEXT output with a comma separator yields a clean CSV.
The statement's Trades rows encode direction in the quantity sign — positive for a buy, negative for a sell. KLinePic reads the sign directly.
Remove the account ID and personal identifiers before uploading. Only symbol, time, price, quantity, side, and fee are used to draw the chart.
Both sources are officially documented, so the mapping is mechanical: statement columns per the Trades reference, Flex Query fields per the Flex Statement Trades reference. The target fields are specified in the data protocol.
| KLinePic field | Activity Statement (Trades) | Flex Query (Trades) | Notes |
|---|---|---|---|
trade_id |
Not in the default section | Trade ID | One shared id per round trip. |
symbol |
Symbol | Symbol | Keep the plain US ticker, e.g. NVDA. |
event_type |
Sign of Quantity | Buy/Sell | Positive = buy, negative = sell; or map Buy/Sell to buy/sell. |
position_side |
Not present | Not standard | long for regular stock trades; only hedged futures need it. |
time |
Date/Time | Trade Date + Trade Time | Prefer ISO 8601 with a UTC offset; date-only rows work on daily candles. |
price |
T. Price | Trade Price | The per-share fill price — not Proceeds, not C. Price (the close). |
quantity |
Quantity (signed) | Quantity | Make it positive if you set event_type yourself. |
fee |
Comm/Fee | IB Commission | Commissions print as negative amounts; use the absolute value. |
note |
Statement section currency | IB Commission Currency | There is no fee_asset column. Unrecognized columns are ignored on import and listed back to you; keep the currency as note text like currency=USD only when you want it preserved. |
The Trades section of an IBKR statement is one row per execution, with a signed quantity and negative commissions:
Symbol,Date/Time,Quantity,T. Price,Proceeds,Comm/Fee,Realized P/L NVDA,"2026-07-01, 09:35:00",20,120.50,-2410.00,-1.00,0 NVDA,"2026-07-02, 14:05:00",-20,131.00,2620.00,-1.00,209.00
Reshaped into the KLinePic CSV, the same NVDA round trip becomes two rows sharing one trade_id:
trade_id,symbol,event_type,position_side,time,price,quantity,fee,note IBKR-NVDA-01,NVDA,buy,long,2026-07-01T09:35:00-04:00,120.50,20,1.00,currency=USD IBKR-NVDA-01,NVDA,sell,long,2026-07-02T14:05:00-04:00,131.00,20,1.00,currency=USD
From these two rows KLinePic draws entry and exit markers on real NVDA candles, shades the holding window, and computes the summary stats. The US stock CSV template is a ready-to-edit starting point.
| KLinePic | Manual screenshot + spreadsheet | Typical trading-journal SaaS | |
|---|---|---|---|
| Setup time | Minutes — upload or paste fills in the browser | Slow — recreate chart and annotations by hand per trade | Moderate — sign up, then import or sync broker data |
| Account required | No — render without an account | No | Usually yes |
| Output | Annotated K-line review chart with trade stats | Static screenshot plus separate spreadsheet rows | Dashboards and statistics; chart output varies |
| Buy/sell markers on real K-line | Yes — plotted from your actual fills | Only if you draw them yourself | Varies by product |
| Shareable image | Yes — the chart image is the primary output | Manual cropping and annotation each time | Usually screenshots of dashboards |
| Cost to start | Free to start; watermark-free hi-res export is paid | Free, but costs time on every single trade | Often subscription-based |
If a chart shows a fill you never made, a dividend, interest, or cash-movement row slipped through — keep only the Trades execution rows.
Either keep IBKR's signed quantity and leave the side implicit, or set event_type to buy/sell with positive quantities — mixing both is ambiguous.
Use T. Price (or Trade Price in a Flex Query) — the actual fill price. Proceeds and C. Price (the day's close) will misplace your markers.
A timestamp without an offset can land a marker on the wrong candle, especially near the open. Write times as ISO 8601 with an explicit offset.
A 100-share order filled in three chunks is three statement rows. Give all three the same trade_id so they render as one trade, not three fragments.
Options, futures, and forex rows carry contract-style symbols that will not match US equity K-line data. Keep plain tickers here; futures and forex have their own guides.
In Client Portal open Performance & Reports, then Statements to run an Activity Statement, or Flex Queries to build a Trades query. The Trades rows carry Symbol, Date/Time, Quantity, T. Price, and Comm/Fee — all a review chart needs.
An Activity Statement is the quick route: run it and read the Trades section. A Flex Query is customizable at the field level — output only what the chart needs, with TEXT format and a comma separator for a clean CSV.
Yes. When there is no explicit side column, KLinePic reads the sign of the quantity: positive is a buy, negative is a sell, so IBKR's signed Trades rows are handled directly. Or include Buy/Sell in a Flex Query and map it to event_type with positive quantities.
Per the official Client Portal guides, custom date range statements and saved Flex Queries cover the four previous calendar years plus the current year to date; monthly statements go back five years.
IBKR lists one row per execution, so an order filled in chunks appears as several rows. Give every fill the same trade_id — rows sharing a trade_id are grouped into one trade, so a scaled entry still renders as a single chart.
US stock symbols are matched to US equity K-line data so entry and exit markers land on the correct candles. For IBKR futures or forex trades, use the matching KLinePic workflow instead.
No. KLinePic is free to start and does not require an account to render a trade review chart. Watermark-free high-resolution export is available as a paid option.
Yes. Batch rendering is supported, and a documented Agent API covers automated generation — see the guide at klinepic.com/guides/trade-review-chart-api/ and the CSV/JSON data protocol at klinepic.com/docs.