My import shows fewer trades than the preview, or 0 trades
The preview counts every trade in the file. The import stores only the ones you do not have yet. Trades you already imported, exact copies within the file, and trades the account got from another kind of file are skipped, and the preview says how many. A file that comes up empty usually is the wrong report, or has every row filtered out.
Read the preview
- 1
The four tiles at the top say "fills parsed", "round trips", "duplicates skipped" and "net in file". The button says "Import N trades", and N is what will be stored.
- 2
The sentence under the tiles explains the gap: "N already imported and will be skipped" and "N are exact copies of another trade in this file and will be skipped".
- 3
A box saying "N trades look already imported from another file" means the account already has these trades from a different kind of export. Click "Import them anyway" only if they are really different trades.
- 4
Scroll to Parser notes. Every row that was skipped, every open position and every filtered row is listed there, with its line number where it has one.
- 5
After the import, the Trades page banner repeats the result: "Imported N trades, skipped N duplicates, left out N already imported from another file."
What counts as a duplicate
Each imported trade gets a fingerprint from its account, symbol, side, size, average entry and exit price, and entry and exit time. A trade with the same fingerprint as one you already have is a duplicate and is never stored twice, whichever file it comes from. The same rule catches exact copies inside one file, so if your platform wrote the same row twice, Actal keeps one. If you delete a trade, its fingerprint goes with it, and the same file brings it back.
Trades from another kind of file
Two exports of the same trades do not share a fingerprint when the prices or times differ slightly, for example Tradovate's Orders and Performance reports. So the preview also looks for trades the same account already has from another kind of file: same symbol root and side, entry and exit each within 10 seconds. Those are marked "other file" in the list, left out by default, and counted under duplicates. A match in a different account is only pointed out, because copied trades across prop accounts look exactly like this.
Why a file comes up with 0 trades
- Wrong report. Account summaries, notification logs and activity logs hold no trades and are refused with a message. An HTML file that is not a MetaTrader statement gets: "That HTML file is not a MetaTrader 4 statement or MetaTrader 5 report."
- Every row filtered out. In the column mapper, a Status column with the allowed value Filled skips every row whose status is spelled differently. The note says "N row(s) skipped by the status filter".
- Only open positions. A fills export that ends with the position still open gives no round trip; the note says "a position of N still open at end of file". Export again after the trade closes.
- Only exits. A date range that starts inside a position gives closing fills with nothing to close, noted as "exit fill with no open position (the position predates this file); fill ignored". Start the range on a flat day.
- A mapped column that is missing from this file, noted as "Mapped column(s) not found in this file".
- In the mapper's round trip mode, a symbol with no P&L column and no known point value blocks the import: "Resolve the unknown symbols before importing."
Pending and discarded imports
A preview you have not imported stays pending. It is listed under "Recent imports" on the import page with an orange dot and a link back to the preview. Click "Discard" in the preview header to drop it. An import that was already committed or discarded cannot be reopened; the page says "This import was already imported" with a link to the trades.
Questions people ask
Did this not answer it?
Ask from the Feedback page in the app. The founder answers every question there, and the answer ends up in this help centre. Not signed in? Email hello@actal.io.