Supported brokers

Works with what you already trade on.

Export the trade history from your platform, drop the file in, and every fill is rebuilt into a round trip with commissions, R and points. The file is recognised by its header, duplicates are skipped, and each platform below has the exact clicks to get the right export. Anything else goes through the column mapper.

01
Export

One report from your platform, usually the fills or orders view. Each guide below names the exact one.

02
Drop it in

The header line tells Actal which platform it is. No format picker, no template to match.

03
Check the preview

First trades, times and commissions shown before anything is saved. Price scaling and unknown symbols are asked once.

04
Rules judge every trade

Each import is checked against your daily loss, trade count and size rules on the way in.

Platform by platform

The exact export, and what happens to it.

Written from each vendor's own documentation and checked against real files where we have them. The same guides show on the import page and next to any error.

TradingView

Trading panel export, paper or connected broker
Verified on real exports

Account History rows carry the realized P&L and are taken as stated. Order History rows become fills and are rebuilt into round trips.

Trading panel, Export data (Account History or History)
  1. 1Open the Trading panel at the bottom of a chart and connect the broker or paper account.
  2. 2Click the account (broker) dropdown at the left of the panel and choose Export data (also labelled Download data).
  3. 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.
  • Balance History rows already carry the realized P&L, so the trade is taken as stated by TradingView.
  • Order History exports become fills and are reconstructed into round trips; only filled orders count.
  • Times are exported in the chart's timezone; set your profile timezone to match.

NinjaTrader 8

Trade Performance, Executions tab
Verified on real exports

Executions with commissions, entry and exit flags and position size. Round trips are rebuilt from the fills and checked against NinjaTrader's own flags.

Also coversAny broker connected through the NinjaTrader desktopSim101 and eval accounts run inside NinjaTrader
Trade Performance, Executions tab
  1. 1In the Control Center choose New > Trade Performance.
  2. 2Pick the account and the date range, then click Generate and open the Executions tab.
  3. 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.

Tradovate and NinjaTrader Brokerage

Account Reports, Orders tab
Verified on real exports

The Orders report from the web or desktop platform. Filled rows become fills; the per-contract commission default fills in what the report leaves out.

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)
  1. 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.
  2. 2Select the Orders tab, not Performance, and set the date range.
  3. 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 has a different layout and will not import; use Orders.
  • 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.

Rithmic R | Trader

Order History, one day per file
Verified on real exports

Completed Orders with fill time, quantity and commission rate. The header names its timezone, so the time is right whatever your profile says.

Also coversApex and MFF accounts on RithmicTopstep accounts on RithmicAny broker with an R | Trader login
Order History (one day per file)
  1. 1Open R | Trader and go to File > Order History (Recent Orders shows today only).
  2. 2Select the account and the date.
  3. 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.
  4. 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 exports

Either view of the Trade Activity Log imports. Unscaled prices from File >> Export are spotted on the preview and fixed with one click.

Also coversTeton, CQG, Rithmic and Denali routed accountsSeveral Trade Accounts in one file
Trade Activity Log, Trade Activity Type set to Fills
  1. 1Open Trade >> Trade Activity Log from the main menu and stay on the Trade Activity tab.
  2. 2Open Display Settings in the log window, set Trade Activity Type to Fills, and set the date range and the Trade Account.
  3. 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.
Trade Activity Log, Trade Activity Type set to Orders or All Activity
  1. 1Open Trade >> Trade Activity Log from the main menu and stay on the Trade Activity tab.
  2. 2Open Display Settings, set Trade Activity Type to Orders or All Activity, and set the date range and the Trade Account.
  3. 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 exports

Executions 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.

Account page, Executions (Trades) panel, Export to CSV
  1. 1Open the Account page from the Account tab at the bottom left of the console.
  2. 2Open the Executions panel (called Trades in newer builds); it lists the filled orders for the account.
  3. 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 exports

Each execution with fee and P&L. Only futures rows are journaled; crypto and stock rows are skipped with a note.

Trades panel export
  1. 1Open the Trades panel (Portfolio section) and set the date range.
  2. 2Open the panel's menu (right-click the panel tab) and choose Export data, the same command every Quantower table panel has.
  3. 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.
  • Rows whose Symbol type is not Futures (Crypto, Stock, Forex) are skipped with a note; only futures are journaled today.
  • 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.
  • The panel layout is verified against a real export; that sample held only crypto trades, so futures rows follow the same columns.

TopstepX

Trades tab export
Verified on real exports

Closed round trips with the P&L Topstep computed, taken as stated. Timestamps carry the UTC offset, so nothing is guessed.

Also coversTopstep Trading Combine and Express Funded accounts on TopstepX
Trades tab export
  1. 1On the TopstepX trading page, open the Trades tab at the bottom (not Orders).
  2. 2Click Export at the bottom right of the module and pick the date range.
  3. 3Download the CSV.
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.
  • 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.
  • Verified against a real export.

ATAS

Statistics export, Journal sheet
Verified on real exports

The Journal sheet saved as CSV. Semicolons, comma decimals and dd.mm.yyyy dates from a non-English Excel are handled.

Statistics export, Journal sheet
  1. 1Open the Statistics window and choose Export statistics; ATAS writes an Excel workbook.
  2. 2Open the workbook, switch to the Journal sheet, and save that sheet as CSV (File > Save As, CSV).
  3. 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 docs

Futures executions with commission and the contract multiplier, so even a contract the journal has not seen before gets the right point value.

Activity Flex Query, Trades section (Executions)
  1. 1In Client Portal open Performance & Reports > Flex Queries (or Menu > Reporting > Flex Queries) and create an Activity Flex Query.
  2. 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.
  3. 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.
  • Only FUT rows at EXECUTION level are imported; ORDER and CLOSED_LOT rows are ignored so nothing is counted twice, and stocks and options are skipped with a note.
  • The Multiplier column supplies the point value for any contract the journal does not know yet.
  • 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 docs

The Account Trade History block of the statement. Futures rows import; stocks and options are skipped with a note.

Account Statement export
  1. 1Open Monitor > Account Statement and set the date range (up to a year).
  2. 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).
  3. 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 rows are imported; stock and option rows are skipped with a note.
  • 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.
  • The statement layout is verified against a real export; that sample held only stock trades, so futures rows follow the same columns with /MNQU6:XCME style symbols.
Prop firms

Evals and funded accounts import through the platform they run on.

Prop firms do not have an export of their own. Whichever platform you log into to trade the account is the file you export, and Actal keeps eval, funded and live side by side as accounts with one set of rules.

FirmExport from
Apex Trader FundingTradovate or Rithmic
TopstepTopstepX, Tradovate or Rithmic
MyFundedFuturesTradovate or Rithmic
Take Profit TraderTradovate
Lucid TradingTradovate
Earn2TradeRithmic or NinjaTrader
BulenoxRithmic
TradeifyTradovate
Anything else

Not listed? Map the columns once.

Any CSV with a symbol, side, quantity, price and time imports, one row per fill or one row per round trip. You name the columns the first time, the mapping is saved with the file's header, and the next export from that platform goes straight through. The spreadsheet you kept for two years imports the same way.

  1. 1Export whatever trade, fill, or order history CSV your platform offers.
  2. 2Drop it here; when the file is not recognised you are asked which column holds the symbol, side, quantity, price and time (or entry and exit for round trips).
  3. 3The mapping is saved with the file's header line, so the next export from that platform imports without asking.
Recognised formats
  • TradingViewTrading panel
  • NinjaTrader 8 (desktop)Trade Performance
  • Tradovate and NinjaTrader Brokerage (web)Account Reports
  • MotiveWaveAccount page
  • Sierra ChartTrade Activity Log
  • Sierra ChartTrade Activity Log
  • Rithmic R | Trader and R | Trader ProOrder History (one day per file)
  • QuantowerTrades panel export
  • TopstepXTrades tab export
  • ATASStatistics export
  • Interactive BrokersActivity Flex Query
  • thinkorswimAccount Statement export

Missing one you use? Send a sample export to hello@actal.io and it is usually added within the week.

Questions

Import questions

Not yet. You export a file from your platform and drop it on the import page, which takes about a minute per session. Duplicates are skipped, so importing the same day twice never doubles a trade. Live sync is on the roadmap.

Your platform is on the list. The rest takes a minute.

Import today's session, grade it, and see what the rules say. Free while in beta, no card, everything unlocked.