1. Introduction
The journal that actually helps you is the one that’s always current. The moment your journal falls a few days behind your broker, you stop trusting it, and the moment you stop trusting it, you stop using it. So the real question isn’t “which journal should I use” - it’s “how do my trades get in there without me typing them one by one.”
This guide covers exactly that: how to pull your trades out of your broker and into a journal. There are two ways to do it - exporting a CSV statement, or connecting a broker API that syncs automatically. We’ll walk through both, cover the export flow for the platforms most traders use, and spend real time on the boring part that trips everyone up: cleaning the data so the journal matches the broker to the penny.
2. Why Manual Entry Fails
Everyone starts by typing trades into a spreadsheet by hand. It works great for about a week. Then a busy session happens, you skip a day, then two, then the backlog feels too big to face and you quietly abandon it. This isn’t a discipline problem - it’s a friction problem.
Manual entry fails for concrete reasons:
- Volume. An active day can be 20-plus fills. Retyping entry, exit, size, and fees for each one is a chore you will skip.
- Errors. Hand-typed prices and sizes get fat-fingered. A journal with wrong numbers is worse than no journal, because you’ll draw wrong conclusions from it.
- Recency bias. If you only log the trades you remember, you log the memorable ones - the big winners and the painful losers - and quietly drop the boring middle where most of your real edge lives.
- Delay kills reflection. The reasoning behind a trade is retrievable for about a day. Log it a week late and you’re inventing the story, not recording it.
3. The Two Import Methods
There are really only two ways to move trades from a broker into a journal. Most traders end up using both at different times.
- CSV / statement export
- You download a file of your fills from the broker - usually called a trade history, activity statement, or transaction report - and upload it to the journal. Works with essentially every broker, since exporting a statement is a universal feature. It’s manual in the sense that you run the export, but it’s bulk: one file can carry months of trades.
- Broker API sync
- You connect the journal to your broker account once, and it pulls new fills automatically on a schedule. No files, no uploads. The journal stays current on its own. Availability depends on whether your broker offers an API and whether the journal supports it.
Rule of thumb: use API sync when your broker supports it, because “always current with zero effort” beats everything. Use CSV import to backfill history, to onboard a broker without an API, or as a fallback when a connection needs re-authorizing.
4. Method 1: CSV / Statement Export
Every broker lets you export your trade history, even if the button is buried three menus deep. The exact label varies - “activity statement,” “trade history,” “transaction report,” “account statement,” “order history” - but the flow is nearly identical everywhere.
- 1Find the reports or statements sectionLook under Account, Reports, History, or Statements. On desktop platforms it’s often a dedicated Reports tab; on web portals it’s usually under the account or documents menu.
- 2Choose trades or executions, not just ordersYou want filled executions with prices, sizes, and timestamps - not a list of orders you placed. If the export offers “trades,” “executions,” or “fills,” pick that.
- 3Set the date rangePick a range that covers what you want to import. For your first import, go back as far as you want history. After that, export only since your last import to avoid duplicates.
- 4Export as CSV or ExcelCSV is the most portable format and what most journals expect. If only Excel or a PDF is offered, an Excel file usually converts to CSV cleanly; a PDF does not - avoid PDF-only exports if you can.
- 5Upload the file to the journalImport it and map the columns - which column is symbol, side, price, quantity, time, fees. Good tools auto-detect common broker formats so mapping is one click.
5. CSV Export, Platform by Platform
The general flow above applies everywhere. Here’s roughly where each common platform keeps its export, described in general terms - exact menu labels change between versions, so look for the nearest match rather than an exact path.
Interactive Brokers
IBKR generates activity statements and flex queries from the account management or reports area. A flex query is the flexible option: you define which fields you want once and can export executions as CSV on demand. For a one-off, a standard activity statement covering your date range works fine.
Thinkorswim / Schwab
Thinkorswim can export account statements and trade history, typically from the Monitor tab’s account statement view, saved to a CSV. Schwab’s web portal also offers transaction and realized gain/loss history under the account’s history or statements section.
Tradovate
Futures platforms like Tradovate expose fills and performance history that can be exported to CSV, usually from a reports, history, or performance panel. Look for an export or download icon on the fills or orders view.
Webull
Webull provides account statements and order history; on many accounts the fuller trade export is requested through support or the documents section rather than a live download button, so give yourself lead time before you need it.
MT4 / MT5
MetaTrader has a built-in export: open the Account History tab, right-click, and save the report. MT4 offers an HTML report; MT5 can save history as CSV or an XLSX-style report. The history tab is the source of truth for closed positions.
Crypto exchanges
Most exchanges expose a trade history or order history export under the orders or account section, as CSV. Two cautions: exchanges often cap how far back a single export reaches, so pull history in chunks; and spot, margin, and futures trades may live in separate exports you’ll need to import individually.
6. Method 2: Broker API Sync
API sync is the version where you never touch a file. You connect your broker account to the journal once, and from then on it pulls new fills automatically.
What a connection actually does
- Pulls fills automatically. On a schedule - every few minutes or at end of day - the journal asks the broker “anything new since last time?” and imports whatever fills came back.
- Keeps the journal current. You finish a session and the trades are already there, waiting for tags and notes. No export, no upload, no backlog.
- Matches executions into trades. A good sync groups the raw fills into round-trip trades so you’re reviewing positions, not a wall of individual executions.
- Stays read-only. A journal connection should only read your history. It should never place, modify, or cancel orders. If a connection asks for trading permissions to journal your trades, that’s a red flag.
How you connect
Depending on the broker, you either authorize through the broker’s own login screen (an OAuth-style flow, which never shares your password with the journal) or paste read-only API keys you generate in the broker’s settings. Whichever it is, scope the access to read-only if the broker lets you choose.
7. Common Data Problems
This is the chapter people skip and then regret. Raw broker data is messy in predictable ways, and if you don’t handle these, your journal’s numbers won’t match your account - and a journal you don’t trust is a journal you won’t use.
- Timezones
- Brokers stamp fills in their own timezone - exchange local, UTC, or your account setting. If your journal assumes a different zone, a late-afternoon trade can land on the wrong day and wreck your daily grouping. Confirm the export’s timezone and make sure the journal converts to yours.
- Commissions and fees
- Fees may be a separate column, folded into the fill price, or listed as their own line items. Net P&L has to include them or your expectancy is inflated. Make sure fees import and attach to the right trade.
- Partial fills
- One order can fill in several pieces at different prices. That’s several execution rows for a single intended trade. The journal should weight-average them into one entry or exit, not treat each slice as its own trade.
- Multiple executions per trade
- A scale-in and scale-out position might be six fills that make up one round trip. Grouping those correctly is what turns raw executions into a reviewable trade with a single R-multiple.
- Stock splits
- A split changes historical share counts and prices. If a 10-for-1 split hits after you bought, old fills and new fills are on different scales. Split-adjusting keeps the position math honest.
- Currency
- Trade an instrument denominated in another currency and your P&L spans two currencies. Decide on a base currency for the journal and make sure conversions are applied consistently, ideally at the fill-time rate.
8. Reconciling Against the Broker
Reconciliation is the habit of making the journal match the broker. Do it after every import until you trust the pipeline, then spot-check it monthly. It takes a few minutes and it’s the difference between a journal you rely on and one you second-guess.
- 1Match the trade countNumber of round-trip trades or number of fills in the journal should equal what the broker shows for the same period. A mismatch means duplicates or missing rows.
- 2Match net P&LCompare the journal’s net P&L for the period to the broker’s realized P&L. If they’re off, the gap is usually fees or a currency conversion.
- 3Spot-check a few tradesPick your biggest winner and biggest loser and confirm entry price, exit price, size, and fees match the broker exactly. If the extremes are right, the middle usually is too.
- 4Check the date boundariesLook at trades near midnight and near the start and end of your range. These are where timezone and range-cutoff errors hide.
- 5Fix the mapping, not the tradeIf something’s wrong, correct the import mapping or timezone setting so the next import is right too. Don’t just patch the single trade by hand - you’ll hit the same bug next time.
9. How TradeSimple Does It
TradeSimple supports both methods, so you’re never stuck. Connect a broker for ongoing sync, or import a CSV for anything a connection can’t reach - and the two work together on the same account.
- Broker connections pull your fills automatically and keep the journal current, so your trades are waiting for tags and notes instead of waiting to be typed.
- CSV import handles history backfill and any broker without a live connection. Common broker formats are auto-detected, so column mapping is quick.
- Execution grouping rolls partial fills and scale-in/scale-out executions into single round-trip trades with one clean R-multiple.
- Fee and timezone handling keeps net P&L honest and trades on the right day, so reconciliation against your broker actually ties out.
The point of all of it is the same: get the mechanical data in without manual entry, so your effort goes into the part software can’t do for you - reviewing, tagging, and learning. For what to do with the trades once they’re in, see the Trading Journal Guide and How to Analyze Your Trades.
10. Glossary
11. Get Your Trades In
- Connect your broker - set up automatic sync so new fills land in the journal without any typing.
- Import a CSV - backfill your history or onboard a broker that has no live connection.
- Reconcile once - confirm the count and net P&L match your broker so you trust the numbers going forward.
- Trading Journal Guide - what to capture and how to review once the trades are in.
- How to Analyze Your Trades - the metrics that turn imported history into an edge.
The whole point of auto-import is that the boring part takes care of itself. Start a free trial, connect a broker or drop in a CSV, and start reviewing trades instead of typing them.