TradingView
Trading panel export, paper or connected broker
Verified on real exportsAccount History rows carry the realized P&L and are taken as stated. Order History rows become fills and are rebuilt into round trips.
TradingView trading journal: the full guide →Trading panel, Export data (Account History or History)
- 1Open the Trading panel at the bottom of a chart and connect the broker or paper account.
- 2Click the account (broker) dropdown at the left of the panel and choose Export data (also labelled Download data).
- 3In the dialog pick the tab to export: Account History for closed positions with realized P&L, or History (Filled) for the filled orders. Each tab exports on its own. Press Export.
Columns to expect: Balance History: "Realized P&L (value)" plus an action text. Order History: Symbol, Side, Qty, Fill Price, Status, Placing Time, Closing Time. Trade history / List of trades: Trade number, Type, Date and time, Price, Size (qty), Net P&L, Commission.
- Balance History rows already carry the realized P&L, so the trade is taken as stated by TradingView. A position you scale out of is one row per exit there; those rows become one trade here, with each exit listed in it.
- The trade history (List of trades) export from paper trading, the Strategy Tester or Bar Replay works too: each trade keeps TradingView's net P&L and commission. Keep the file name TradingView gives it, because the replay export names its market only there.
- Order History exports become fills and are reconstructed into round trips; only filled orders count.
- Trading a broker like Tradovate through TradingView's panel? Export the Orders tab (the file is named like "tradovate-orders-all"). It has no commissions, so the import asks for your commission per contract. The account info and notifications log files hold no trades.
- Times are exported in the chart's timezone; set your profile timezone to match.
NinjaTrader 8
Trade Performance, Executions tab
Verified on real exportsExecutions with commissions, entry and exit flags and position size. Round trips are rebuilt from the fills and checked against NinjaTrader's own flags.
NinjaTrader 8 trading journal: the full guide →Also coversAny broker connected through the NinjaTrader desktopSim101 and eval accounts run inside NinjaTrader
Trade Performance, Executions tab
- 1In the Control Center choose New > Trade Performance.
- 2Pick the account and the date range, then click Generate and open the Executions tab.
- 3Wait for the grid to fill, right-click inside it and choose Export; under Save as type pick CSV and save.
Columns to expect: Instrument, Action, Quantity, Price, Time, ID, E/X, Position, Order ID, Name, Commission, Rate, Account, Connection.
- The E/X column and the Position column are used as checks; the round trips are rebuilt from the executions themselves.
- Commissions in the file are used as-is.
- Times are written as date plus a 12-hour clock with no timezone (for example 2025-12-17 10:49:10 PM); they are read in your profile timezone.
- Verified against a real export from this platform.
Trade Performance, Trades tab
- 1In the Control Center choose New > Trade Performance.
- 2Pick the account and the date range, keep the display in Currency, then click Generate and open the Trades tab.
- 3Right-click inside the grid and choose Export; under Save as type pick CSV and save.
Columns to expect: Trade number, Instrument, Account, Strategy, Market pos., Qty, Entry price, Exit price, Entry time, Exit time, Entry name, Exit name, Profit, Cum. net profit, Commission, Clearing Fee, Exchange Fee, IP Fee, NFA Fee, MAE, MFE, ETD, Bars.
- This is the export to use if you want MFE and MAE: each trade comes in with how far it went for and against you.
- NinjaTrader writes one row per matched entry and exit, so a position you scaled into or out of takes several rows. Rows of one position come in as one trade, with every fill kept; a trade joined from several rows leaves MFE and MAE out, because the file states them per row.
- Each row is one trade as NinjaTrader paired it. P&L is worked out from the prices, and commission and fees are added up from the file.
- MAE and MFE are only read when they're in money. If the display was set to points, ticks or percent, the trades still import, without them.
- Times are read in your profile timezone, like the Executions export.
Tradovate and NinjaTrader Brokerage
Account Reports, Orders or Performance tab
Verified on real exportsThe Fills report from Account Reports, every fill with its commission, or the Orders report, where the per-contract commission default fills in what the report leaves out. The Performance report imports too, one row per closed trade with Tradovate's own P&L.
Tradovate and NinjaTrader Brokerage trading journal: the full guide →Also coversApex Trader FundingTopstep accounts run on TradovateMyFundedFutures, Take Profit Trader, Lucid and other Tradovate-based prop firms
Account Reports, Orders tab (the same file for Apex, Topstep on Tradovate, and other Tradovate-based prop firms)
- 1In the platform click the dropdown with your account name (the gear icon) and choose Account Reports; on the web platform it is Reports in the navigation.
- 2Select the Orders tab and set the date range. If the Fills tab is there, export that instead: it carries every fill and its commission.
- 3Click Download Report and save the CSV.
Columns to expect: orderId, Account, Order ID, B/S, Contract, Product, avgPrice (or Avg Fill Price), filledQty (or Filled Qty), Fill Time, Status.
- The Performance report imports as well, one row per closed trade with Tradovate's own P&L. Orders is better than Performance because it carries every fill; the Fills report is better still, because it also carries each fill's commission.
- This report carries no commissions, so the per-contract default you set on the preview screen is applied.
- Only rows with Status = Filled become fills.
Account Reports, Performance tab
- 1Open Account Reports (the dropdown with your account name, or Reports in the web navigation).
- 2Select the Performance tab and set the date range.
- 3Click Download Report and save the CSV.
Columns to expect: symbol, _priceFormat, _priceFormatType, _tickSize, buyFillId, sellFillId, qty, buyPrice, sellPrice, pnl, boughtTimestamp, soldTimestamp, duration.
- One row per closed trade with the P&L Tradovate computed, so the money is taken as stated.
- There is no side column: the leg that came first opens the trade, so a row sold before it was bought is a short.
- Scale-ins and partial exits are already paired by Tradovate. If you want every fill, and the averages worked out here, export the Fills or Orders report instead.
- No commissions in this file, so the per-contract default you set on the preview is applied.
- Timestamps carry no timezone; they are read in your profile timezone, like the Orders report.
Rithmic R | Trader
Order History, one day per file
Verified on real exportsCompleted Orders with fill time, quantity and commission rate. The header names its timezone, so the time is right whatever your profile says.
Rithmic R | Trader trading journal: the full guide →Also coversApex and MFF accounts on RithmicTopstep accounts on RithmicAny broker with an R | Trader login
Order History (one day per file)
- 1Open R | Trader and go to File > Order History (Recent Orders shows today only).
- 2Select the account and the date.
- 3In Completed Orders, right-click the column headings, choose Add/Remove Columns and make sure Qty Filled, Avg Fill Price, Update Time and Order Number are visible; hidden columns are not exported.
- 4Click the clipboard or export icon at the top of the window and save the file as CSV.
Columns to expect: Two sections, "Working Orders" and "Completed Orders", each with a quoted header: Account, Status, Buy/Sell, Qty To Fill, Symbol, Avg Fill Price, Order Number, Update Time (EDT), Qty Filled, Create Time (EDT), Commission, Commission Fill Rate.
- Rithmic exports one trading day at a time; import each day's file, duplicates are skipped automatically.
- Only the Completed Orders section is read, and only rows with Status Filled or Complete. The Update Time is the fill time.
- The time columns name their zone in the header, for example (EDT); that zone is used, whatever your profile says.
- If Commission is blank but Commission Fill Rate is present, commission is that rate times the filled quantity; otherwise the per-contract default applies.
- Prop firms on Rithmic (many Apex, MFF, and Topstep accounts) export this same file. Verified against a real export.
Sierra Chart
Trade Activity Log, Fills or Orders
Verified on real exportsEither view of the Trade Activity Log imports. Unscaled prices from File >> Export are spotted on the preview and fixed with one click.
Sierra Chart trading journal: the full guide →Also coversTeton, CQG, Rithmic and Denali routed accountsSeveral Trade Accounts in one file
Trade Activity Log, Trade Activity Type set to Fills
- 1Open Trade >> Trade Activity Log from the main menu and stay on the Trade Activity tab.
- 2Open Display Settings in the log window, set Trade Activity Type to Fills, and set the date range and the Trade Account.
- 3In the log window's own menu choose File >> Save Log As to write the visible rows to a text file (prices as shown on your charts), or File >> Export for a tab-delimited file (prices unadjusted, see below).
Columns to expect: DateTime, Symbol, Buy Sell, Filled Quantity or Quantity, Fill Price, Trade Account, Fill Execution Service ID.
- File >> Export writes prices before the Symbol Price Multiplier is applied. On a CME direct feed that means 2345025 instead of 23450.25; the preview spots this and asks you to confirm dividing by 100.
- File >> Save Log As writes adjusted prices, so no scaling question appears. Either file imports.
- Multiple Trade Accounts in one file are kept apart during reconstruction; filter to one Trade Account before saving to keep journals separate.
- Each trade gets its MFE and MAE from the High and Low During Position that Sierra writes on the closing fill.
Trade Activity Log, Trade Activity Type set to Orders or All Activity
- 1Open Trade >> Trade Activity Log from the main menu and stay on the Trade Activity tab.
- 2Open Display Settings, set Trade Activity Type to Orders or All Activity, and set the date range and the Trade Account.
- 3In the log window's menu choose File >> Save Log As (prices as shown) or File >> Export (tab-delimited, prices unadjusted) and save the file.
Columns to expect: ActivityType, DateTime, Symbol, OrderActionSource, Internal Order ID, Service Order ID, Quantity, Buy Sell, Price, Order Status, Fill Price, Filled Quantity, Trade Account, Position Quantity.
- Only rows with Order Status Filled are used; duplicates from resubmitted or amended orders are removed by their Service Order ID.
- Blank Filled Quantity cells fall back to the order Quantity, which is how Sierra writes many filled rows.
- With File >> Export, symbols on a CME direct feed (often ending in _FUT_CME) come out price-scaled x100; the preview asks before dividing. File >> Save Log As writes them already adjusted.
- The Trades tab of the log is a processed summary; import the Trade Activity tab so the fills themselves are reconstructed.
MotiveWave
Account page, Executions export
Verified on real exportsExecutions with an explicit timezone offset and commissions kept separate from P&L, so gross and net both stay right. Both the old and the new layouts import.
MotiveWave trading journal: the full guide →Account page, Executions (Trades) panel, Export to CSV
- 1Open the Account page from the Account tab at the bottom left of the console.
- 2Open the Executions panel (called Trades in newer builds); it lists the filled orders for the account.
- 3Click the Export to CSV icon at the right above the list, pick the account if asked, and save the file.
Columns to expect: Either Underlying, Symbol, Action (BOT/SLD), Quantity, Price, Time, Commission, or the newer Account, Ticket, Symbol, Time, Action, Quantity, Price, Commission.
- MotiveWave writes timestamps with an explicit offset (for example 09:31:05.335-0500), so no timezone assumption is needed.
- Exits are sometimes written with the continuous symbol (/NQ) while entries carry the contract (NQH4); they are matched onto the same position.
- Commissions are kept separate from P&L instead of being netted, so gross and net both stay correct.
- Verified against real exports of both layouts.
Quantower
Trades panel export
Verified on real exportsEach execution with fee and P&L. Futures, stocks and crypto import; forex and option rows are skipped with a note.
Quantower trading journal: the full guide →Trades panel export
- 1Open the Trades panel (Portfolio section) and set the date range.
- 2Open the panel's menu (right-click the panel tab) and choose Export data, the same command every Quantower table panel has.
- 3Tick all columns, choose comma separated, and click Export file.
Columns to expect: Account, Date/Time, Symbol, Symbol type, Side, Quantity, Price, Gross P/L, Fee, Net P/L, Trade ID, Order ID.
- Fee is used as the commission for each execution; sells carry a negative Quantity, which is fine.
- Futures use the contract's point value; crypto and stock rows are priced per unit, so 0.5 BTC or 200 shares import as they are. Forex and option rows are skipped with a note; forex imports from a MetaTrader statement.
- Date/Time follows your Windows locale and usually carries an offset (10/25/2023 3:55:47 PM -05:00); without one it is read in your profile timezone.
- Verified against a real export of crypto trades: the imported P&L matches the file's Gross P/L column.
TopstepX
Trades tab export
Verified on real exportsClosed round trips with the P&L Topstep computed, taken as stated. Timestamps carry the UTC offset, so nothing is guessed.
TopstepX trading journal: the full guide →Also coversTopstep Trading Combine and Express Funded accounts on TopstepX
Trades tab export (the file to use)
- 1On the TopstepX trading page, open the Trades tab at the bottom. Export Trades, not Orders: Trades has the fees and the P&L.
- 2Click Export at the bottom right of the module and pick the date range.
- 3Download the CSV and drop it here.
Columns to expect: Id, ContractName, EnteredAt, ExitedAt, EntryPrice, ExitPrice, Fees, PnL, Size, Type, TradeDay.
- Each row is a closed round trip with the P&L TopstepX computed, so trades are taken as stated. A position you scaled into or out of takes several rows; they come in as one trade, with every fill kept.
- Timestamps carry a UTC offset (05/07/2024 13:33:37 +00:00), so no timezone guess is needed.
- If the file's PnL turns out to be net of fees, gross is recovered from the prices so fees are never counted twice.
- Already exported the Orders tab (the file named orders_export.csv)? That imports too, see the TopstepX Orders guide, but it has no fees, so the Trades file is the better one.
- Verified against a real export.
ATAS
Statistics export, Journal sheet
Verified on real exportsThe Journal sheet saved as CSV. Semicolons, comma decimals and dd.mm.yyyy dates from a non-English Excel are handled.
ATAS trading journal: the full guide →Statistics export, Journal sheet
- 1Open the Statistics window and choose Export statistics; ATAS writes an Excel workbook.
- 2Open the workbook, switch to the Journal sheet, and save that sheet as CSV (File > Save As, CSV).
- 3Import the CSV.
Columns to expect: Account, Instrument (for example NQZ3@CME_Ind), Open time, Open price, Open volume, Close time, Close price, Close volume, Price PnL, Profit (ticks), PnL, Comment.
- Semicolon separators and comma decimals from a non-English Excel are handled; dates come out as dd.mm.yyyy hh:mm:ss.
- The Journal sheet has no direction column; a positive Open volume with a negative Close volume is a long, the reverse a short, and the sign of Price PnL is the fallback.
- PnL from the sheet is taken as stated, so instruments the journal does not know (FDAX, for example) still import; R and points stay unavailable until the symbol is set up.
- Commissions are not in the Journal sheet, so the per-contract default is applied. Verified against a real export.
Interactive Brokers
Activity Flex Query, Trades at execution level
Built from vendor docsFutures, stock, option, forex and crypto executions with commission. The multiplier comes from the file, so even a contract the journal has not seen before gets the right point value. Option expirations and assignments close the option, and spreads come in as one trade.
Activity Flex Query, Trades section (Executions)
- 1In Client Portal open Performance & Reports > Flex Queries (or Menu > Reporting > Flex Queries) and create an Activity Flex Query.
- 2Add only the Trades section, set Level of Detail to Executions, and include at least Symbol, UnderlyingSymbol, AssetClass, Multiplier, DateTime, Quantity, TradePrice, IBCommission, Buy/Sell, Open/CloseIndicator, IBExecID, LevelOfDetail.
- 3Under Delivery set Format to CSV (comma or semicolon both work, with or without header and trailer records), then save and run the query for your date range.
Columns to expect: Symbol, AssetClass, Multiplier, DateTime, Quantity, TradePrice, IBCommission, Buy/Sell, Open/CloseIndicator, LevelOfDetail.
- FUT, STK, OPT, FOP, CASH and CRYPTO rows at EXECUTION level are imported; ORDER and CLOSED_LOT rows are ignored so nothing is counted twice.
- Options: each series is its own instrument at the file's Multiplier, grouped as "SPY options". Expirations, assignments and exercises (BookTrade rows coded Ep, A or Ex) close the option, and spread legs opened and closed together become one trade. Add Notes/Codes to the Flex Query so these are recognised.
- The Multiplier column supplies the point value for any futures contract the journal does not know yet; stocks are priced per share.
- DateTime is exported in the account's statement timezone; set your profile timezone to match.
- Built from IBKR's field reference; a real export from a futures account has not been run through it yet, so check the preview carefully the first time and send the file if anything looks off.
thinkorswim
Account Statement export
Built from vendor docsThe Account Trade History block of the statement. Futures, stocks and options import. Options still open after expiry close at $0, and spreads come in as one trade.
thinkorswim trading journal: the full guide →Account Statement export
- 1Open Monitor > Account Statement and set the date range (up to a year).
- 2Make sure the Account Trade History section is shown with Exec Time, Side, Qty, Pos Effect, Symbol, Type and Price visible (gear icon to customise).
- 3Click the menu icon at the top right of the statement and choose Export to file, saving as CSV.
Columns to expect: A section titled "Account Trade History" with: Exec Time, Spread, Side, Qty, Pos Effect, Symbol, Exp, Strike, Type, Price, Net Price.
- The statement has several sections; only the Account Trade History block is read. Futures, stock, ETF and option rows are imported.
- Options: each series is its own instrument at 100 per point (options on futures at the future's), grouped as "SPY options". Expirations aren't in the trade history, so an option still open after its expiry closes at $0 on expiry day. If one was assigned or exercised instead, that trade's exit is different. Spread legs opened and closed together become one trade.
- Exec Time is US Eastern by default; set your profile timezone to America/New_York or the zone thinkorswim shows.
- Commissions sit in another section of the statement, so the per-contract default is applied to futures and options. Stock trades import without commission.
- Verified against a real export of stock trades. Futures rows use the same columns with /MNQU6:XCME style symbols.
tastytrade
History, Transactions, CSV
Built from vendor docsStocks, options, futures and futures options with commissions and fees. Spreads sent as one order come in as one trade, and expirations, assignments and cash-settled index options close at the right price.
History, Transactions, CSV
- 1Open the tastytrade desktop platform and click the History tab (the clock icon).
- 2Click Transactions on the left, turn off year to date and pick the date range you want.
- 3Click CSV on the right and save the file.
Columns to expect: Date, Type, Sub Type, Action, Symbol, Instrument Type, Description, Value, Quantity, Average Price, Commissions, Fees, Multiplier, Root Symbol, Underlying Symbol, Expiration Date, Strike Price, Call or Put, Order #, Total, Currency.
- Stocks, ETFs, options, futures and futures options are imported. Deposits, dividends and interest are skipped.
- Each option series is its own instrument, grouped as "SPY options". Spread legs sent as one order and closed together become one trade, for example an iron condor.
- Expirations, assignments and exercises close the option at $0, or at the cash settlement for index options like SPX. Shares delivered by an assignment become their own position.
- Commissions and fees come from the file. The older tastyworks export (Transaction Code, Transaction Subcode) works too.
- Built from tastytrade's export layout and checked against a full sample export, where the options P&L matched the file's own cash to the cent.
Robinhood
Account activity report (CSV)
Built from vendor docsShares and options, with fees worked out from the cash. Expirations, assignments and exercises close the option. The report has dates but no times.
Account activity report (CSV)
- 1In Robinhood go to Reports and statements, then Reports.
- 2Select Account activity report, then Generate new report.
- 3Pick the account and the start and end dates, then Generate report. It's ready in Reports when Robinhood notifies you (usually within a couple of hours); download the CSV.
Columns to expect: Activity Date, Process Date, Settle Date, Instrument, Description, Trans Code, Quantity, Price, Amount.
- Shares (Buy, Sell) and options (BTO, STO, BTC, STC) are imported. OEXP, OASGN and OEXCS close an option at expiry, assignment or exercise. Deposits, dividends and interest are skipped.
- Fees are the difference between price times size and the cash in Amount.
- The report has dates but no times, so trades sit at noon New York time that day, and with no order numbers spreads come in as their legs.
- Robinhood leaves futures and crypto out of this report.
Webull
Export Orders, CSV by email
Built from vendor docsFilled stock and option orders at their average price. A multi-leg order comes in as one spread.
Export Orders (CSV by email)
- 1Desktop: go to Account, open the menu (three lines) at the top right of the Orders widget and choose Export Orders. App: Account, your account, History, then the download icon.
- 2Confirm your email. Webull emails the CSV within 5 to 10 minutes.
- 3Import each file it sends: stocks and options can come as separate files.
Columns to expect: Name, Symbol, Side, Status, Filled, Total Qty, Price, Avg Price, Time-in-Force, Placed Time, Filled Time.
- Only filled quantity counts, at the average fill price. Cancelled and failed orders are skipped.
- Option legs carry their contract in the symbol (SPY241220C00560000). A multi-leg order's legs come in as one spread; its summary row isn't counted twice.
- Fees aren't in the order export, so the commission per contract you set is applied to options. Shares take none.
- Webull's export has no expiry rows, so an option still open after its expiry closes at $0 on expiry day.
MetaTrader 4
Account History, Save as Report
Verified on real exportsThe .htm statement exactly as MT4 saves it. Every closed trade comes in with the profit, swap and commission your broker reports, so forex, gold, indices and crypto CFDs need no setup. Cancelled orders and deposits are left out.
MetaTrader 4 trading journal: the full guide →Also coversForex and CFD brokers on MT4Prop firms on MT4, such as FTMO
Account History, Save as Report
- 1In the Terminal window (Ctrl+T) open the Account History tab.
- 2Right-click inside it, choose the period (All History, Last 3 Months, or Custom period).
- 3Right-click again and choose Save as Report (or Save as Detailed Report). MT4 writes an .htm file; drop that file here as it is.
Columns to expect: An HTML statement with a "Closed Transactions" table: Ticket, Open Time, Type, Size, Item, Price, S / L, T / P, Close Time, Price, Commission, Taxes, Swap, Profit.
- Each closed buy or sell is one trade, with the profit, swap and commission MetaTrader reports, so forex, indices, gold and crypto CFDs all import without setting anything up.
- Swap counts toward the trade's P&L; commission and taxes are the costs.
- Cancelled pending orders and deposits are skipped. Trades still open when you saved the report import once they close and you save a new report.
- Times are your broker's server time with no zone in the file. Set your profile timezone to the broker's server zone, or leave it and all trades shift by the same amount.
- Verified against a real statement: the imported total matches the statement's Closed P/L to the cent.
MetaTrader 5
History tab, Report > HTML
Verified on real exportsThe .html trade history report as MT5 saves it, UTF-16 and all. Each closed position is one trade with the broker's own profit, swap and commission. Hedging and netting accounts both work.
MetaTrader 5 trading journal: the full guide →Also coversForex, CFD and stock brokers on MT5Prop firms on MT5, such as FTMO
History tab, Report
- 1In the Toolbox window (Ctrl+T) open the History tab and pick the period at the bottom (or right-click > Custom period).
- 2Switch the view to Positions (right-click > Positions) so each closed position is one line.
- 3Right-click inside the History tab and choose Report, then save it as HTML (not Open XML, which is Excel). Drop the saved .html file here as it is.
Columns to expect: An HTML "Trade History Report" with Positions, Orders and Deals tables. Positions: Time, Position, Symbol, Type, Volume, Price, S / L, T / P, Time, Price, Commission, Swap, Profit.
- Each closed position is one trade, with the profit, swap and commission MetaTrader reports, so forex, indices, metals, stocks and crypto CFDs import without setting anything up.
- Older reports without a Positions table are rebuilt from the Deals table (in and out deals per symbol).
- MT5 saves reports as UTF-16; that is read as is, no need to convert the file.
- Deposits and cancelled orders are skipped. Open positions import once they close.
- Times are your broker's server time; set your profile timezone to the broker's server zone.
- Verified against real reports, including an FTMO challenge: the imported total matches the report's Total Net Profit.