You have a curve that looks convincing. The next step is to preserve the file and ask what explains that result. These six checks organise the review: accumulating trades or looking at the ending balance is not enough. Start with uncertainty, reconstruct the search, then examine costs, time separation, data and a benchmark.
Significance: look at uncertainty
A win rate is an estimate. Its precision depends on sample size and whether trades contribute independent observations. Several entries on the same market move may share the same risk. A narrow interval also says nothing about how much is lost when a trade goes wrong.
Declared · Illustrative example: 45 trades and a declared, possibly rounded, 71 % win rate. Rigor's reader Wilson function calculates a 95 % interval of 56.5–82.2 %. This does not come from a client file. It is not a significance test of the monetary result or a forecast of the next trade.
For returns, the report examines probabilistic Sharpe, incorporating sample size, skewness and tails. When the series is available, it also assesses time dependence and uses block resampling. Review these tests and their limits alongside the win rate.
Configurations tried: reconstruct the search
Record parameter combinations, discarded versions and changes of asset or period that influenced the choice. Keeping only the selected variant loses the context needed to assess selection. Include manual experiments too; do not turn an unknown count into a single trial.
Declared · Assume 100 independent variants and 3 years of daily returns, with 252 periods per year and a declared annual Sharpe of 1.8. The calculator puts the expected Sharpe of the best unskilled variant at 1.47. This calculation assumes no skew and normal tails; it is not a measurement of a portfolio.
This example calculates expected Sharpe from luck, not the probability that your strategy will work. Declare the whole search and preserve its passes to compare with that declaration.
Break-even cost: measure the remaining margin
Break-even cost is the additional cost per side that would bring the file's aggregate result to zero. It uses prices, quantities and costs already charged. Distinguish commission, spread embedded in prices and additional slippage: adding a commission already deducted changes the question.
Declared · Separate synthetic example: buy 1 unit at 100 and close at 101, with no reported commissions. Rigor's break_even_bps function calculates 49.75 basis points per side of additional cost to break even. This applies to entry and exit notional; it is neither an observed fee nor an appropriate assumption for every market.
In and out of sample: preserve the boundary
Save the dates used to select parameters and those reserved for evaluation. An out-of-sample segment must remain separate from that choice. If you inspect it and adjust the strategy, it has influenced development: relabel it and reserve fresh evidence before evaluating again.
Export the time series and record decisions alongside the boundary. A deterioration out of sample deserves explanation even when the aggregate looks attractive. Not measured applies when the files cannot support the comparison; a date typed into a form does not demonstrate that the segment remained untouched.
Data quality: check what the strategy knew
Review gaps, duplicates, time zones, adjustments and prices available at decision time. Preserve the source, date range and data version. Check whether the universe retains instruments that disappeared and whether any signal uses information arriving after entry.
The trade history can reveal some problems, but it cannot by itself reconstruct the original data or signal logic. Document what is missing as Not measured. A tester quality field does not resolve all these questions.
Benchmark: compare the same question
Choose a relevant benchmark before looking at which one favours the system. Compare the same dates, currency, frequency and cost assumptions. Simple market exposure may explain part of a curve; without an aligned benchmark you cannot tell how much the chosen rule contributes.
Keep the benchmark series and explain its relevance. If it is unavailable, the comparison stays Not measured. Do not replace a missing series with a remembered figure or compare different windows as though they were equivalent.
Which file to export from each platform
MT4 and MT5: save the complete tester HTML report, including trades. For an MT5 search, add the Excel 2003 XML optimizer passes. The selected variant's report and the passes table answer different questions; export guides are linked below.
TradingView: export the strategy tester's list of trades as CSV. NinjaTrader: export the Strategy Analyzer Trades table as CSV. From Python, prepare the CSV using the guide's schema. If you are also reviewing an account history, Myfxbook offers CSV and FX Blue CSV; identify it as an account history rather than a backtest.
Also preserve parameters, costs, split dates, the benchmark and data provenance as context. Not everything missing fits in the trade file. Measured identifies calculations from files, Declared your inputs and Not measured what could not be assessed.
QuantConnect: download Trades as CSV, not Orders. In backtesting.py export stats._trades.to_csv('trades.csv'); in vectorbt, pf.trades.records_readable.to_csv('trades.csv'). If there are several strategy columns, identify the selected one and declare the other variants. The linked guides explain each format.
Start with the figures you already have
The figure reader and luck calculator need no account. They explore declarations and assumptions; they do not assign an audit class. To examine the file and its gaps, your first full report is free with an account. The review describes historical evidence and does not decide a trade for you.
FAQ
Is a rising curve enough?
No. Preserve trades and context for all six checks. A balance screenshot contains neither the discarded variants nor the research's time separation.
Related
- Figure reader
- Deflated Sharpe ratio calculator
- How to export the MetaTrader 4 report
- How to export the MetaTrader 5 report
- How to export the MetaTrader 5 optimisation XML
- How to export the TradingView list of trades
- How to export NinjaTrader 8 trades
- How to export QuantConnect trades
- How to export backtesting.py trades
- How to export vectorbt trades
- How to upload the trades of any platform
- How to export a Myfxbook account's history
- How to export an FX Blue account's trades