Most brokers put trade history export under an account activity, statements or history section, exported as CSV. You want executions or transactions — the individual fills — rather than a positions snapshot or a realised gain/loss report, because only the execution list contains entry and exit prices with timestamps.
Brokers usually offer three overlapping exports, and only one is useful for journalling.
| Export | Contains | Use it? |
|---|---|---|
| Positions / holdings | What you own right now | No — a snapshot, no history |
| Realised gain/loss | Tax-lot matched results | Rarely — lot matching is tax logic, not trade logic |
| Transactions / executions | Every individual fill with price, quantity, time | Yes |
The distinction matters. A realised gain/loss report matches lots for tax purposes, which can split one trade across several rows or merge unrelated purchases. The execution list is what actually happened, in the order it happened.
Accounts → History, set the date range, then the export icon at the top right of the table. Choose the transactions view rather than positions. Schwab's range picker defaults to a short window — set it explicitly before exporting or you will get only recent activity.
Accounts & Trade → Portfolio → Activity & Orders, set the period, then Download. Fidelity splits activity across tabs; make sure you are on the one showing executed orders rather than pending or scheduled ones.
Performance & Reports → Statements → Activity, choose a custom date range and CSV format. IBKR's activity statement is section-based and dense — the trades block is what you want. IBKR also allows Flex Queries, which let you define exactly which fields are exported and are worth setting up once if you export regularly.
Account → History, or on desktop the orders section, with a CSV export option. Webull's export is one of the cleaner ones: one row per fill, with symbol, side, quantity, price and timestamp already separated.
Account → Settings → Reports and Statements, where you can request an account activity report. Robinhood generates it asynchronously and emails a link rather than downloading immediately, so allow time.
Broker interfaces change. If a path above has moved, search the broker's help centre for "export transaction history" — the export itself almost never disappears, it just relocates.
Column names vary but the meanings are consistent:
One order for 500 shares can appear as four rows at four prices. That is correct, not an error — it is what happened. Any journal worth using should group those into one position at a weighted average, not treat them as four trades.
A trade taken before a 2-for-1 split shows the pre-split price, which will not match a modern chart. The same applies to a ticker that changed. Both are handled by adjusting for splits only — never for dividends, because dividend adjustment moves historical prices away from the raw prices you actually filled at.
CSV export is the fallback. A direct broker connection pulls the same execution data automatically, keeps it current, and avoids the timezone and partial-fill problems entirely — because the data arrives structured rather than reconstructed from a spreadsheet.
TradePiko syncs with 40 brokerages including Schwab, Fidelity, Interactive Brokers, Robinhood and Webull — pulling every fill automatically, grouping partial fills into real positions, and handling splits and ticker changes on its own.
Start free trial →