MT5 report analyzer

Inspect a supported MT5 report in your browser without uploading it. Separate trading postings from cash movements, check parsing diagnostics and explore historical resampling with a repeatable seed.

Free · no account required · local file processing

Inspect the report behind the curve

Your file is read in this browser. The analyzer does not upload it or store it in browser storage. Site analytics may record fixed tool actions; report contents, filenames, numbers and simulation settings are not included in those events.

Download CSV exampleDownload HTML example
Paste report text instead
Supported formats and import instructions

In MT5 desktop, open Toolbox → History, choose the reporting period, then use the report command in the history context menu to save a table-based HTML report. Use English column headings. Menu wording and report layouts vary by build; an Overview dashboard or PDF is not a supported input. The downloadable HTML example shows the supported Deals layout.

The analyzer selects the English Deals section if present. It requires Time, Deal, Symbol, Type, Direction, Commission, Swap and Profit columns. Otherwise it accepts a closed Positions table with two Time columns plus Position, Symbol, Type, Commission, Swap and Profit. A missing Fee column is explicitly flagged and treated as zero. Missing monetary cells in performance rows are errors; blank cost cells on cash rows are treated as zero.

CSV uses comma delimiters and this header, with an optional dataset column:

time,id,kind,symbol,entry,profit,commission,swap,fee

Use kind deal for each execution (entry: in, out, inout or out by), position for a complete closed-position row, cash for deposits/withdrawals, or fee for a separate broker cost posting. Credit/bonus operations are not supported: MT5 credit is separate from balance and needs manual reconciliation. Do not mix deals and positions. Cash profit is the signed movement; its other amounts must be 0. Fee profit is a signed adjustment. Charges are negative, rebates positive: net = profit + commission + swap + fee. Do not enter a positive charge or duplicate a fee already in another column.

Use one account currency, dot decimal numbers, explicit zeros, unique IDs and chronological rows. Times are broker-clock values, not converted to your timezone. UTF-8 and UTF-16 with a byte-order mark are supported. Limits: 2 MiB, 20,000 data rows, 512 characters per cell. No rows are silently reordered or deduplicated.

Other deal types, localized columns and decimal commas require manual conversion to the CSV schema. Review correction, tax, dividend and broker-specific balance entries yourself: the tool cannot infer whether they represent external cash or a strategy cost.

SYNTHETIC SAMPLE — fabricated teaching data, not trading evidence.

Format: csv. Accepted 15 of 15 candidate rows; excluded 0 invalid rows.

If the first row funds a new account, enter 0 so that deposit is not counted twice. A positive baseline is needed for the bootstrap. Percent drawdown is unavailable where a loss starts from a zero performance baseline.

Report analysis

Synthetic teaching data. All amounts are in your account currency. Displays are rounded to 2 decimals; exports retain parsed numeric precision. This is arithmetic on the accepted rows, not verification of a broker account.

Net performance after recorded costs
198.00
Reconstructed ending balance
10,498.00
Realized performance drawdown
237.00 / 2.34%
Cash net (excluded from performance)
300.00

12 closed-position rows · 0 execution deals (0 exit/reversal deals) · 1 separate fee postings · 2 cash movements. A deal count is not a count of complete trades. Partial closes, reversals and entry costs require position reconstruction to calculate per-trade statistics.

Gross trading P/L
250.00
Signed commission
-44.00
Signed swap
-3.00
Signed fees / separate adjustments
-5.00
Deposits / withdrawals
500.00 / 200.00
Positive / negative / zero non-cash postings
6 / 7 / 0
Posting profit factor (after recorded costs)
1.40
Account balance drawdown including cash
268.00 / 2.52%
10,252.009,878.00 · posting order →
Realized performance balance: starting balance plus non-cash postings. Floating P/L is unavailable; the line is not an equity curve.

Performance drawdown removes deposits and withdrawals by adding only non-cash P/L to the starting baseline. This is a fixed-currency comparison, not a time-weighted return. Account drawdown includes cash movements and can be distorted by withdrawals. Neither series measures intratrade equity drawdown or a prop firm's breach rules. Missing rows and broker costs can change both.

CSV contains accepted normalized rows only. JSON also includes diagnostics, assumptions, analysis and the current simulation. Formula-like text is escaped in CSV exports. Treat exports as private account data.


Bootstrap the observed postings

Resample your 13 accepted non-cash postings, including entry costs, zero results and separate fee postings. Amounts stay fixed; deposits and withdrawals are excluded. Block length 1 draws each posting independently. Larger blocks draw contiguous stretches with replacement, preserving some local order but breaking the sequence between blocks. No new market conditions are generated.

This does not estimate your true probability of profit or ruin. Repeated historical amounts assume the selected sample remains relevant. Independent draws discard clustering; blocks retain only short stretches and underweight edge observations. Sizing, spread changes, unrecorded fees, margin stop-outs, floating losses and market regimes are not modeled. Paths continue arithmetically below zero, so drawdown can exceed 100%; that is not an executable trading account.

Try the complete workflow with a synthetic sample

The built-in sample is fabricated teaching data. It includes losing postings, recorded fees and cash movements so you can check the distinctions before opening your own report.

  1. Select Load synthetic sample. Confirm the sample label and accepted-row count; the example has 15 accepted rows.
  2. Keep the starting balance at 10,000 for this example, then select Analyze accepted rows. Net performance is 198 after recorded costs. Cash net is 300, so the reconstructed ending balance is 10,498. These amounts have no live-account provenance.
  3. Inspect the performance drawdown and the separate account-balance drawdown metric. Deposits and withdrawals belong to the cash calculation. Neither measure includes floating equity.
  4. Set seed 7, 1,000 paths, 100 postings per path and block length 1; select Run seeded bootstrap. Repeat with unchanged settings to reproduce the result. Change the block length to inspect sensitivity to short sequences.
  5. Export CSV for accepted rows or JSON for the complete analysis, then choose Clear local data. For your own export, select a supported HTML report or adapt it to the downloadable CSV schema and check every diagnostic.

A resampling frequency describes synthetic paths drawn from this sample. It does not estimate future profits or prove that an account passed trading rules.

Mobile MT5 report analyzer showing the local-processing notice and sample and import controls
Actual mobile browser preview, 8 September 2026. No customer report is shown.

What an MT5 report can tell you

A report is a record of selected account activity. This analyzer adds accepted monetary postings, separates external cash movements and computes a realized balance path. It cannot prove the file came from a broker, identify whether an account was live or demo, or reproduce missing executions. Its default sample is fabricated teaching data. Use your own complete export to investigate a specific trading period, and reconcile the starting balance and final totals with the original statement before making any decision.

Deals, positions and cash are different records

One position can involve multiple execution deals. Entries, partial exits and reversals do not correspond one-to-one with complete trades, and commissions can be recorded before an exit. If an HTML report contains both Deals and Positions, this tool uses Deals alone to avoid counting the same activity twice. It reports the unit being counted and includes recorded costs instead of presenting an execution count as a trade win rate. A report containing only closed Positions cannot reveal entry-time costs or cash operations omitted from that table.

Deposits and withdrawals change account balance without being trading profit. The performance path excludes classified cash rows, while the account path includes them. Broker-specific adjustments need inspection: a row labelled balance might be a funding movement or a manually posted cost. Convert ambiguous rows into the documented CSV format and classify them explicitly. Blank required amounts are errors rather than assumed zeros; unsupported or duplicate rows are reported for review.

Realized drawdown does not measure floating risk

Drawdown is the fall from the running peak to a later balance. The performance drawdown shown here uses the chosen opening balance plus recorded non-cash outcomes. Its denominator is each running peak, so changing the opening balance changes the percentage. Floating P/L between postings is absent. A strategy could suffer a much larger intratrade equity loss, or violate a daily loss rule, even if its closed balance path looks modest. Do not use this figure as certification that an account passed a broker or prop-firm rule.

A seeded bootstrap asks a limited question

The simulation asks what arithmetic paths arise if the observed monetary postings are drawn again under a selected sampling rule. Each path starts with the same stated balance; recorded amounts are added without scaling position size. A fixed seed makes the draws repeatable. Individual draws assume independent postings. Blocks retain short sequences, but new block boundaries break longer dependencies and edge observations receive less weight. Loss magnitudes or market regimes absent from the observed sample are not generated by this method.

The displayed percentiles summarize simulated paths, not confidence bounds for your future account. A profitable sample can remain favorable under resampling while being unrepresentative of future markets. Missing fees, different lot sizing, changing volatility and margin rules are outside the calculation. Compare several block lengths as a sensitivity check and review the original sequence alongside the simulation. The tool does not label its below-start frequency as a probability of future profit or ruin.

Local processing and export

The analyzer reads your selected file into browser memory and does not send it to an analysis server or persist it in local storage. Clear local data removes it from the tool state. CSV exports contain accepted normalized postings; JSON exports include diagnostics, methods and any current simulation. Files you download remain on your device until you remove them. Share an export only after checking it for private account identifiers or symbols you do not want to disclose.

Format references: MetaTrader 5 table-based trading report and MQL5 deal properties. Platform documentation explains the source record types; the supported parser subset and sampling assumptions are defined above.

Method: Historical deal or position postings, not live equity: missing rows and open positions can change results. Bootstrap frequencies describe only the imported sample and assumptions.

Runs entirely in your browser — nothing you type is uploaded or stored.

Common questions

How do I analyze an MT5 report?

Export a detailed HTML report from MT5, then choose the file here. English Deals tables are preferred; supported Positions tables and the documented CSV schema can also be read. Check the diagnostics and supply the balance immediately before the imported window.

Is my trading report uploaded?

Report parsing, calculations and downloads happen locally in your browser. This tool does not send file contents, account values or filenames to a server. The site may record coarse tool actions under its privacy policy, without report values.

Does this calculate equity drawdown or a trade win rate?

It calculates realized balance drawdown from imported postings and your starting balance, separating cash movements. Deals can be partial fills or opening costs, so deal statistics are not a completed-trade win rate. Open-position floating equity is unavailable in these rows.

What does the bootstrap estimate mean?

It resamples the imported historical postings using the displayed settings and seed. Its frequencies depend on that sample, ordering assumptions and starting balance. They do not include unseen market regimes or predict future profitability.

What if the report format is unsupported?

Read the parsing diagnostics. An unknown header, missing required value or ambiguous number must be resolved before relying on a result. Use the included synthetic sample and explicit CSV template to understand the supported schema.

Goes deeper

Limits and trading risk

These tools calculate from your inputs, supported historical records or explicitly labelled teaching examples. They do not verify a live account, predict future returns or confirm that a broker or prop-firm rule has been met. Missing costs, floating losses and changed market conditions can materially change outcomes. Trading can lose the capital committed to it; check the stated method and your account specifications.

Read the risk disclosure
© 2026 ProEA · All rights reservedBuilt for MT5 · Not affiliated with MetaQuotes
Complete Suite$97