Home > Blog > Keep Every Fill in CSV and Audit Your EA Yourself

trade historyaudit

Keep Every Fill in CSV and Audit Your EA Yourself

Published: 2026-11-13Read time: about 3 min
⏱ This article reflects information as of its publish date. EA performance figures (PF, DD, annual return) change with live trading and re-validation — check the latest on the EA pages. See the latest EA results →
Contents (5)
  1. Bottom line: trust your own list of fills over a report summary
  2. Why recalculate yourself
  3. A summary hides "how things were counted"
  4. P&L is made of three or more components
  5. The procedure
  6. 1. Save your trade history as CSV
  7. 2. Rebuild the data at the position level
  8. 3. Break down P&L and total it up
  9. 4. Reconcile against the report
  10. 5. Compare the character with the published figures
  11. Limits and cautions
  12. Summary

Bottom line: trust your own list of fills over a report summary

Here is the conclusion up front. If you run an EA, make it a habit to keep every fill as CSV and recalculate the totals yourself in a spreadsheet. MT5 reports and the figures on an EA's sales page are handy, but they are only summaries. You can't see which fills produced the profit, or where costs ate into it, until you line up the trade history row by row.

We are on the distribution side, but we'll say this plainly: don't take the figures we publish at face value either. Check them against the fills on your own account.

Recommended Broker Comparison →

🎁 Download Free EA

📧 Free 8-email course + subscriber-only pack of 13 MT5 indicators

* Privacy strictly protected. You can unsubscribe at any time.

Why recalculate yourself

A summary hides "how things were counted"

PF and win rate change depending on what you count as one trade. In MT5, a single position records two deals: an "entry" and an "exit". If you close part of a position, the exit side generates even more deals. If you don't know which unit was used to count wins and losses, the same account can produce different win rates.

P&L is made of three or more components

The P&L of a single closed trade can roughly be split into the following components.

ComponentWhat it isHow easily it's overlooked
Price P&L(Exit price − entry price) × lotsLow
CommissionRound-turn trading commissionMedium (depends on account type)
SwapInterest differential charged for holding overnightHigh (matters more for EAs that hold longer)
Deposits/withdrawals, bonusesBalance changes that aren't tradesHigh (if mixed in, results look inflated)

The "net profit" in a report is the combined total of all of these. It's not unusual for an EA to be winning on price movement while commissions and swaps wipe out the gain. Splitting P&L into components is the first step of an audit.

The procedure

1. Save your trade history as CSV

From the "History" tab in MT5 you can save an account history report. However, the file format and column order can differ depending on the build or broker. That's why we recommend writing out each fill row by row with a script and fixing the columns yourself. At minimum, you want these columns:

  • Deal number, position ID, time
  • Symbol, direction (buy/sell), and whether it's an entry or an exit
  • Lots, price
  • Profit, commission, swap (in separate columns)
  • Magic number, comment

Helper tools for exporting are collected in MT5 Tools.

2. Rebuild the data at the position level

Use the position ID as the key and combine the entry and exit deals into a single row. When there are partial closes, sum the profit, commission and swap on the exit side. Only now do you have a table of "one trade = one row".

3. Break down P&L and total it up

Calculate the following in your spreadsheet:

  • Gross profit (sum of positive rows) and gross loss (absolute value of the sum of negative rows)
  • PF = gross profit ÷ gross loss
  • Win rate = number of positive rows ÷ total number of rows
  • What share of net P&L the total commission and total swap each represent

Calculate PF both with and without commissions and swaps. If PF stays at 1.0 or above without costs but drops below 1.0 once costs are included, it's safer to assume that EA's edge depends on how you estimate costs.

4. Reconcile against the report

Check whether your totals match the net P&L in the MT5 report. If they're off, first suspect deposit/withdrawal rows, or deals from another EA (with a different magic number) mixed in.

5. Compare the character with the published figures

For example, DONCHIAN ENGINE has measured backtest results of PF 1.5, a 34.5% win rate and 631 trades. It's a type with a low win rate that earns through a small number of large wins. Check whether your own fills show the same shape: "average win well above average loss, with a lowish win rate." Rather than matching the numbers exactly, it's more practical to look at whether the shape of the P&L is similar.

Limits and cautions

An audit isn't a cure-all. Here is what it can't tell you, stated honestly.

  • With few trades, you can't conclude anything. Whether PF is good or bad over a few dozen trades, you can't tell whether it reflects the EA's real ability or luck.
  • Backtests and live trading are different things. We publish forward tests on an Exness demo account, but demo fills are not the same as live fills. Slippage and order rejections may behave differently. Also, backtest figures and forward-test figures are produced under different conditions, so don't put them side by side in the same table.
  • Swaps vary by broker and over time. The swap share you calculated from past fills won't necessarily hold going forward.
  • CSV is just text. If a fill gets dropped partway through the export, the spreadsheet won't warn you. Always check the row count against the report.

An audit only tells you "what happened in the past". It doesn't guarantee future performance.

Summary

  • Don't rely on report summaries. Keep your trade history as CSV and total it up yourself
  • Save commission and swap in separate columns and break P&L into components
  • Combine fills into one row per trade by position ID before calculating PF and win rate
  • Check PF both with and without costs
  • Compare against published figures by whether the "shape of P&L" is similar, not by exact number matches
  • Don't confuse small-sample totals, demo-account results and backtest results

For how to read the metrics used in an audit, see EA & MT5 Know-How. For the measured figures of each EA, see the Measured Rankings.

📧 Free 8-email course + subscriber-only pack of 13 MT5 indicators

* Privacy strictly protected. You can unsubscribe at any time.

Have a question about EAs or FX?

You can post it on the Nattzy trading forum (free sign-up). Questions beyond this article are welcome too — EA settings, choosing a broker and more.

Ask on Nattzy ↗

Comments & questions