TradeReview AI / Brokers / Tradovate
A trading journal that reads your Tradovate export
Tradovate exports come in more than one shape - a filled-orders list, a paired buy/sell table, and a raw fills log - and they do not agree with each other about column names or about what a row represents. All three import. The paired exports were the awkward case: the same contract appears on both the buy and the sell side with no explicit direction column, so the importer reads which side came first to decide whether the trade was long or short.
How the import actually works
Export your trade history from Tradovate as a CSV and drop it into the journal. There is no template to fill in first.
The mapper reads the header row and matches your broker's column names against the ones it knows - date, symbol, side, qty, price, fees and a realised P/L column under any of a dozen spellings, from P/L to Realized PnL to Net Profit. Where a column is named something it has not seen, you pick it once from a dropdown and it remembers that file shape for next time.
It also works out what kind of instrument the file holds from the symbols themselves, so the right contract maths is applied without you configuring anything. If it guesses wrong, there is a row of buttons at the top of the import screen to correct it.
Rows that are not trades - transfers, dividends, interest, fees charged to the account - are skipped rather than logged as mystery positions.
A point is not a dollar, and the journal knows the difference
This is where futures journals usually go wrong. A spreadsheet that subtracts the entry price from the exit price gives you a number of points, not money. One point of Micro Nasdaq is $2. One point of Micro Crude is $100. One point of the full E-mini S&P is $50. Treat them all as dollars and a good day and a terrible day can come out looking identical.
TradeReview AI carries a multiplier for every common contract root and applies it when it reconstructs a trade's P/L. If your file already contains a realised P/L column it is used as-is; the multiplier only steps in when the money has to be worked out from prices. You can also set the point value by hand on the import screen for a contract the table does not know.
A sell that opens a position is a short, not a mistake
Futures exports list fills, not finished trades, and the same contract code appears on both sides. A naive importer sees a sell with nothing open and either skips it or logs a phantom position.
The pairing here reads it the way a trader would: a sell with nothing open starts a short, and the buy that follows closes it. Fills are matched first in, first out, so a position scaled into over four fills and out over two becomes one round trip with one entry price, one exit price, and the fees from all six.
Contract months do not confuse the chart
MNQZ5, MCLX6, ESH6 - a futures symbol carries its expiry month and year, so the same instrument has a different code every quarter. Left alone, a journal treats each one as a separate instrument and your Nasdaq history breaks into four unrelated piles a year.
The root is extracted from the code, so MNQZ5 and MNQH6 group as the same contract, and the chart opens on the continuous symbol rather than on an expired month.
Questions
Which Tradovate export should I download?
Any of them. The filled-orders report, the paired buy/sell table and the raw fills log all import, and the paired format works out long versus short from which side filled first.
Do micro contracts get the right P/L?
Yes. Micro contracts carry their own point value - a Micro Nasdaq point is $2 against $20 on the full E-mini - and the multiplier is applied per contract root.
Is it free?
Yes. Unlimited trades, CSV import, the full dashboard, entry and exit screenshots, trade replay and PDF reports are free with no card. AI coaching, AI agents and automatic broker sync are on paid plans.
Do I have to give you my broker password?
No. CSV import needs nothing but the file. Automatic sync on paid plans goes through SnapTrade or the broker's own API, which use read-only connections - the journal can never place a trade.
Import yesterday's session
Export it from Tradovate, drop the CSV in, tag the setups, and open the hour-of-day breakdown. That one chart is where most traders find their leak.