RigorIdentifier sample · 2026-09-24 00:00 UTC

Sample report built from computer-generated synthetic data: it is nobody's account or strategy. This is what a full report looks like.

Rigor · Backtest audit
Verdict

Class C: there is a material weakness; we would not rely on this backtest until it is resolved.

Dimensions

Executive summary

+173.7%Total return
-8.2%Maximum drawdown (closed trades only)
-12.3%Drawdown p95, 1 year (closed trades only)
1.79Annualised Sharpe

What to do now

  1. Ask the seller why your live account falls outside what the backtest led you to expect.
  2. Compare your broker's spread and commission with the costs the result can bear: a cost a little above the reference erases the margin.
  3. Ask how many configurations were tried before this one was chosen, and on which period it was chosen.

Every figure carries its tag: “Measured” when computed from your files; “Declared” when stated by you or the seller, not verified; “Not measured” when a piece was missing to compute it.

Sample report built from computer-generated synthetic data: it is nobody's account or strategy. This is what a full report looks like.
Rigor · Backtest audit

Verdict C

Identifier sampleGenerated 2026-09-24 00:00 UTCengine version 0.1.0simulation seed 12345
C
Verdict

Class C: there is a material weakness; we would not rely on this backtest until it is resolved. As a single test, the result is too consistent to be explained by chance alone (Sharpe ratio distinguishable from zero). With 120 trials counted in the files, the Sharpe adjusted for those trials misses the bar: if more configurations were tried, the result may come from picking the best one. The trades stay positive at the reference cost, but not at 3 times that cost. In the period held back for checking (out of sample) the result stays positive but worsens. No red flags in the data. Benchmark declared not applicable.

Live account: Not consistent. Trading result: -305.20 on 1,500.00 deposited. Measured See the comparison with the backtest

Every figure carries its tag: “Measured” when computed from your files; “Declared” when stated by you or the seller, not verified; “Not measured” when a piece was missing to compute it.

Download the report as PDF

Whoever receives the PDF or JSON can check that it was not edited. How they check

Money reconciliation

We compare starting capital, known flows and net closed-trade P&L with the closing balance. A match does not authenticate the history.

Matches within tolerance Closed trades agree within tolerance; this does not authenticate the history.

Gross − itemised costs = net closed-trade P&L: 26,343.75 − 8,974.00 = 17,369.75

Starting capital + known flows + net P&L = expected closing balance: 10,000.00 + 0.00 + 17,369.75 = 27,369.75

USD
Starting capital10,000.00Measured
Flows after the start0.00Measured
Gross closed-trade P&L26,343.75Measured
Itemised costs8,974.00Measured
Net closed-trade P&L17,369.75Measured
Open-position value—Not measured
Expected closing balance27,369.75Measured
Observed closing balance27,369.75Measured
Difference (observed − expected)0.00Measured
Tolerance14.11Measured

Coverage and limits

  • Curve: rebuilt from the platform deal rows
  • Closed trades: 1282
  • Trades outside the curve period: 0
  • Deposits and withdrawals: listed by the platform
  • Open positions: not valued separately
  • Currency: USD

Executive summary

+173.7%Total returnhow much the account changed over the whole history
-8.2%Maximum drawdown (closed trades only)the worst fall from a peak
-12.3%Drawdown p95, 1 year (closed trades only)a fall exceeded in 1 of every 20 simulated years
1.79Annualised Sharpereturn against its ups and downs; higher is steadier
1.52Profit factorwhat was won for every 1 lost
1,282 · 55%Trades · win rate
1.59Extra cost that takes it to zero (bps per side)how much more trading can cost before it reaches zero
+15,375.41Without the best 5 tradeswhat is left of the net result without those 5; with all of them: +17,369.75
+140.0%Without the best 5 periodstotal return without those 5; with all of them: +173.7%

After subtracting what cash in dollars paid over the same dates (3-month US Treasury bills, 2.57% a year on average), the Sharpe is 1.58. The Sharpe above subtracts no rate. If the account is not in dollars, the fair rate to subtract is its own currency's. Source: FRED. Measured

What this means for you

Statistical significance Pass

With this much data, a result like this is hard to get by pure luck. That says nothing about what happens next: only that the history is not noise.

Number of settings tried Weak

Part of the result may come from picking the best of many configurations. Ask how many were tried and request the optimisation file.

Costs Weak

At normal costs the result stays positive, but at high costs it disappears. A wider spread or higher commission than assumed would erase it.

Out of sample Weak

Out of sample the result stays positive, but much worse than in sample. This is common in somewhat overfitted strategies.

Data quality and trading pattern Pass

We found no jumps, gaps or hidden-risk patterns in the files. That does not rule out errors the files do not show.

Benchmark Not applicable

No applicable reference was declared. A comparison with a passive alternative is outside this report.

What to do now

If you bought or are about to buy this robot or signal, this is what is worth clearing up first, from what the audit found.

  1. Ask the seller why your live account falls outside what the backtest led you to expect. Go to the section
  2. Compare your broker's spread and commission with the costs the result can bear: a cost a little above the reference erases the margin. Go to the section
  3. Ask how many configurations were tried before this one was chosen, and on which period it was chosen. Go to the section
  4. Take this report's questions to the seller. Go to the section
  5. Keep this report and its identifier; if the robot changes, ask for a new audit.

What each class requires

The class does not measure how much was made, but how many questions your files answer. A better class does not mean the strategy will work.

  1. A

    Statistics and number of trials pass; costs, out-of-sample and benchmark pass or do not apply; the data has no serious or warning flags.

  2. B

    Statistics pass, the number of trials passes or was not declared and nothing fails, but costs, out-of-sample, benchmark, data quality or the number of trials still need measuring or strengthening.

  3. C

    One dimension fails, or statistics or number of trials are weak.

    Your report
  4. D

    The data or the statistics fail, or two dimensions or more fail.

Charts

Equity curveEquity from the supplied file over time.5k10k15k20k25k30k2020-012021-032022-062023-092024-11
Measured Equity curve: 400 points, min 9,972, max 28k. balance rebuilt from closed trades; floating drawdown is not visible
Drawdown (fall from the previous peak)Percentage distance of equity from its previous peak.-10%-8%-5%-2%0%2020-012021-032022-062023-092024-11
Measured Drawdown (fall from the previous peak): max -8.2%. balance rebuilt from closed trades; floating drawdown is not visible
Fan of resampled scenariosPercentiles of equity paths resampled from the supplied history. Resampled from the supplied history; not a forecast and says nothing about future results.0.811.21.41.601 yearp5–p95p25–p75median
Measured Fan of resampled scenarios. Resampled from the supplied history; not a forecast and says nothing about future results.
Return of each calendar month computed from the supplied equity.
YearJanFebMarAprMayJunJulAugSepOctNovDecTotal
2020+0.9%+3.8%+3.8%+3.6%+3.0%+4.2%-3.3%+4.1%-0.5%0.0%+8.1%+5.7%+38.3%
2021-2.7%-0.7%+4.4%+8.7%+6.3%+0.1%-0.3%+1.3%+0.3%+2.8%-5.5%+8.7%+24.9%
2022-0.9%+8.4%+3.2%+6.9%+4.8%+2.4%+2.5%-2.2%-2.7%+1.0%+3.9%-2.2%+27.4%
2023+0.9%+3.8%-0.6%+1.1%-0.6%+1.7%+0.3%+1.0%+1.5%-1.8%+5.0%+4.1%+17.4%
2024+2.9%-0.9%+1.0%-1.1%+2.0%+0.3%+4.5%-0.2%-2.7%-0.5%+0.8%+6.0%
Measured Monthly returns.

Red flags found

No red flags in the audited files.

Internal file consistency

Heuristic checks of rows within this file; they do not compare two independent files or authenticate who created the history.

Method version: forensics-1 · File family: mt5_tester · Rows read: 2573 Measured

No calibrated signal appeared in these checks.

A signal does not prove forgery; no signal does not prove authenticity.

All checks and their status

CheckStatusCalibration
FILE_TRACEData pointNo applicable calibration
TOTALS_VS_ROWSData pointCalibrated for this family
SUMMARY_IDENTITIESData pointCalibrated for this family
BALANCE_CHAINNo findingCalibrated for this family
DEAL_SEQUENCENo findingCalibrated for this family
TESTER_NUMBERINGNo findingCalibrated for this family
TICKET_ORDERData pointNo applicable calibration
DUPLICATE_TICKETNo findingCalibrated for this family
TICKET_LINKSData pointNo applicable calibration
CROSS_COPIESData pointNo applicable calibration
SLTP_FILLData pointCalibrated for this family
PNL_SIGNData pointNo applicable calibration
PRICE_IMPLIED_PNLData pointNo applicable calibration
PRICE_PRECISIONNo findingCalibrated for this family
TIME_SANITYNo findingCalibrated for this family
ROW_ORDERNo findingCalibrated for this family
MARKET_HOURSNo findingNo applicable calibration
HIDDEN_CONTENTNo findingCalibrated for this family
VOLUME_IN_OUTNo findingNo applicable calibration
STATEMENT_PERIODData pointNo applicable calibration
TV_INVARIANTSData pointNo applicable calibration
NT_INVARIANTSData pointNo applicable calibration
MONTHLY_DIGITSData pointNo applicable calibration

Plan to reach a better class

What the audit's rules would need to see in each open dimension, most decisive first. A better class means the files answer more questions, not that the strategy will work.

01 Measure how many configurations were tried Weak

DSR 0.905 at 120 trials; it passes at 0.95 or more and fails below 0.5. With 16384 or more configurations tried it falls below 0.5.

  • The trial count already comes from your files; the variants matrix (each configuration's results over time) would add the PBO.
  • Fewer parameters and narrower ranges mean fewer trials.
  • Validate the chosen configuration on a stretch not used while optimising.

If this dimension passed and the rest stayed the same, the class would be B.

02 Check the real costs Weak

The net reaches zero at 1.59 bps per side of extra cost. To pass this dimension it has to stay above zero at 3x the reference (3.00 bps per side).

  • Compare that margin with your broker's real spread and slippage: on EURUSD at 1.10, 1 bp per side is about 1.1 pips.
  • Declare the real cost per side when uploading: it is added to what the report already itemises.
  • Fewer trades or a larger move per trade make costs weigh less.

03 Add an out-of-sample stretch Weak

Out-of-sample Sharpe 0.54; 0.5 or more is needed (met). In-sample Sharpe minus out-of-sample Sharpe: 1.35; up to 1.0 is accepted (not met).

  • A sharp drop out of sample often appears when too many parameters were tuned: fewer parameters and a fresh validation on unseen data.

Backtest against the live account

If the live account's trades came from the same backtest, how unusual would its result be? We drew backtest trades at random, as many as the live account holds, 5,000 times, and placed the live account among those histories.

Not consistent The live account does not behave like the backtest: its net result or its deepest fall is worse than in 99 % of the backtest's histories.

Live, at the backtest's sizeExpected range (90 %)Backtest
Trades1801,282
Period2024-09-09 – 2025-06-202020-01-02 – 2024-11-29
Trades per month19.321.8
Win rate47%49% … 61%55%
Net result-1,526.00-348.92 … 5,177.0117,369.75
Deepest fall1,862.50629.30 … 2,186.221,528.76
Average win102.62103.36
Average loss-105.69-94.81
1%

Backtest histories with a net result as low or lower Measured

10%

Backtest histories with a fall as deep or deeper Measured

The live account trades 0.20 times the backtest's size: each live trade was scaled to the backtest's median size before comparing.

Part of the live account falls inside the backtest's period: those dates may have been used to fit the backtest, so the comparison is less demanding.

Backtest trades resampled with replacement, as many as the live statement holds; costs itemised per trade subtracted on both sides. Streaks are not preserved.

Same dates, trade by trade

From 2024-09-09 to 2024-11-29 both files cover the same days. Each live trade was looked up in the backtest: same side, same symbol and an entry less than 60 minutes apart.

Live trades found in the backtest55 of 59 (93%) Measured
Backtest trades the live account did not take4 of 59 (7%) Measured
Median price difference at entry0.7 bp Measured
Median price difference at exit1.0 bp Measured
Result difference on the paired trades-82.60 (-1.50 per trade) Measured

bp = basis points (0.01 % of the price); positive is worse for the account. The result difference is at the backtest's size; negative is what the live account made below the backtest on the same trades.

The account's real money

The percentage gain track-record sites show takes deposits and withdrawals out. Here it sits next to the money the account made or lost by trading, deposits made in a deep drawdown, and positions still open when the history was printed.

Review of the history you uploaded as the live account. Its flags are shown here and do not change the backtest's class.

  • Warning
    Deposits in a deep drawdown

    1 deposit arrived while the account was at least 20% below its peak

-30%

Percentage gain, as track-record sites show it. Measured

-305.20

Trading result, in money, on 1,500.00 deposited. Measured

4%

Open loss over the balance when the history was printed. Declared

MetricValueEvidenceNote
Deposits2Measured
Money deposited1,500.00Measured
Withdrawals1Measured
Money withdrawn300.00Measured
Trading result, in money-305.20Measuredclosed trades after commission and swap, in the account currency
Percentage gain-30.03%Measuredtime-weighted: deposits and withdrawals are taken out, as track-record sites compute gain
Result on the money deposited-20.35%Measuredtrading result / money deposited
Share of deposits withdrawn20.00%Measuredwithdrawn / deposited
Deposits after trading began1Measured
Deposits in a deep drawdown1Measured
Floating result when printed-35.00Declaredthe platform's own summary at the time of the statement
Floating result / balance-3.91%Declaredfloating result / balance

Deposits after trading began, largest first

DateAmountBalance beforeDrawdown then
2025-02-18500.00708.80-32.03%

Read from the file as uploaded; nothing was checked with the broker.

What data the test ran on

The report header says how prices were simulated, how much of the history the tester had and which dates were tested. It is worth verifying, so here it is checked against its own trades.

MetricValueEvidenceNote
Price modelling—Not measuredthe report does not state a modelling mode we recognise
Data quality—Not measuredthe report prints no data quality (n/a)
Tested from2020-01-02Declaredas printed in the report header
Tested to2024-11-29Declaredas printed in the report header
Trades outside those dates0Measuredtrades that open or close outside the dates the header says were tested

The modelling mode, data quality and stated dates raise no flag.

Read from the header as uploaded: an edit is caught only when the header does not fit itself or the trades.

Stress tests: without the best outcomes

We remove the best periods and trades from what you uploaded and measure what is left. If the total falls to zero or below, it rests on a few events that may not repeat. This is not a forecast.

1 of 8 scenarios end at zero or below.

On the curve (compounded total return)

ScenarioLeftChangeStill above zero?
Original Measured173.7%
Without the best 1 % of periods (13)100.4%-73.3%Yes
Without the best 5 periods140.0%-33.7%Yes
Without the best 10 periods113.8%-59.9%Yes
Without the best month (2021-12)151.7%-22.0%Yes

On the closed trades (net result after commission and swap)

ScenarioLeftChangeStill above zero?
Original Measured17,369.75
Without the best trade16,897.65-472.10Yes
Without the best 5 trades15,375.41-1,994.34Yes
Without the best 10 % of trades (129)-13,338.41-30,708.16No
Without the best month (2022-02)15,784.89-1,584.86Yes

The best 5 trades add up to this multiple of the net result: 0.11x Measured

What living through this history was like

A total and a maximum drawdown do not say what the history was like to live through: how long it went without a new high, how long the worst fall took to come back, and what the worst day and month were. These are the numbers that make people switch a system off.

184 days

Longest time without a new high (3 Aug 2022 to 3 Feb 2023) Measured

19 days

Worst fall: days from the high (19 Mar 2020) to the low (7 Apr 2020) Measured

36 days

Days from that low back to the high Measured

-3.7%

Worst day (24 Feb 2020) Measured

-5.5%

Worst month (Nov 2021) Measured

68%

Months that ended up (40 of 59); longest run of losing months: 3 Measured

2.77

Calmar ratio over 4.9 years: compound annual return divided by the deepest fall Measured

-1.5%

Average return per day in the worst 5 % of days (65 of 1282) Measured

-3.8%

Average return per month in the worst 5 % of months (3 of 59) Measured

The deepest falls Measured

FallHigh to lowBack at the highTotal length
-8.2%19 Mar 2020 → 7 Apr 2020 (19 days)13 May 2020 (36 days)55 days
-6.9%30 Jun 2020 → 14 Aug 2020 (45 days)27 Aug 2020 (13 days)58 days
-6.8%21 Sep 2020 → 1 Oct 2020 (10 days)13 Nov 2020 (43 days)53 days
-6.7%28 Oct 2021 → 24 Nov 2021 (27 days)24 Dec 2021 (30 days)57 days
-6.5%24 Dec 2020 → 16 Feb 2021 (54 days)23 Mar 2021 (35 days)89 days

Each fall runs from the last point at a high to its lowest point and ends on the first date back at that high. One not back by the file's last date is still open.

The curve is rebuilt from closed trades: open losses do not show, so the real falls lasted and measured at least this much.

Calendar days from the uploaded equity curve; months from each month's last point.

When it wins and when it loses

Your trades grouped by entry day and time. If nearly all the result comes from one day or one session, a change of server time, holidays or news can erase it.

36%

36% of the net result comes from Thursdays. Measured

33%

33% of the net result comes from the 16:00–19:59 session. Measured

Entry dayTradesNet resultWin rate
Monday256+3,097.5058%
Tuesday256+2,908.3251%
Wednesday256+4,239.7258%
Thursday257+6,331.4556%
Friday257+792.7650%
Entry timeTradesNet resultWin rate
00:00–03:59206+4,137.9856%
04:00–07:59169+2,372.3452%
08:00–11:59351+3,055.7056%
12:00–15:59165+2,045.9453%
16:00–19:59391+5,757.7954%

Entry times as the file states them (platform or server time); net result after the fees the file itemises per trade.

Does it still work in the recent period?

A long history can look good in total while its last stretch no longer adds up. We cut the history's time in three equal stretches and compare the last one with the two before it, trade by trade.

Holds The last third of the history shows no drop into losses beyond what chance explains.

+14.94

Average per trade before 11 Apr 2023 Measured

+10.77

Average per trade since 11 Apr 2023 Measured

+4,609.62

Net result since 11 Apr 2023 (428 trades) Measured

-0.6

Distance between the two averages, in standard errors (-2 or lower: a drop chance hardly explains) Measured

Exit yearTradesNet resultWin rate
2020261+3,827.6056%
2021261+3,438.5654%
2022260+4,734.6757%
2023260+3,828.6056%
2024240+1,540.3250%

Closed trades by exit date; net result after the fees the file itemises.

Did its average return change at some point?

We look for the moment the curve's average return changed most and measure whether that change is larger than the normal swing of its returns (a CUSUM test that allows for one return influencing the next). It does not change the class.

No clear change There is no clear change in the average return across the history (p = 0.154): the differences between stretches fit the normal swing of its returns. It does not prove there was none: a small change can go unseen. Measured

CUSUM of the returns in time order (Ploberger and Kramer); cautious long-run variance; p-value from the Brownian bridge.

How did it do in the known crises?

The curve's return, from its month-end balances, through each market fall on the public record that it covers in full (the market's peak to its trough). A month with no trades counts as flat. The dates are fixed: they are not fitted to the file. Measured

CrisisStrategyMarket over those months
Covid crash
2020-02 – 2020-03
+7.8%S&P 500 -19.9%
Nasdaq Composite -15.8%
Inflation and rates, 2022
2022-01 – 2022-09
+24.2%S&P 500 -24.8%
Nasdaq Composite -32.4%
Crypto winter 2022
2021-11 – 2022-12
+30.9%Bitcoin (Coinbase) -73.0%

Market: the change from the close of the month before the window to the close of its last month, a fixed historical figure checked on 2026-09-25 against the index levels on FRED (S&P 500, Nasdaq Composite, Bitcoin (Coinbase)); no other data of these indices is read or shown. These are US equities and bitcoin: if the strategy trades another market (currencies, commodities, another country), take them only as context for what the market went through, not as its yardstick.

Worst 12 months in a row: +4.2%; best: +41.7%. 100% of the 12-month periods ended positive. Measured

How did it do in calm and in turbulent markets?

Each return in the file is placed by the VIX (how much the options market expects the S&P 500 to move over the next month) at the close of the market day before it starts: a calm market below 20, a turbulent one from 20. Since 1990 the VIX has closed at 20 or more on about one day in three. Period: 2020-01-01 to 2024-11-29. Measured

Calm market (VIX < 20)Turbulent market (VIX ≥ 20)
Share of the time51%49%
Returns counted661621
Return per month (compounded)1.66%1.79%
Sharpe (return per unit of risk)1.851.74

The gap in mean return between the two columns (0.19 standard errors) is not enough to say it behaves differently depending on the market. Measured

VIX: public data from FRED (series VIXCLS, from CBOE) read when the report was made. It measures US equities: if the strategy trades another market, read it as a general gauge of fear in markets. It does not change the class.

What was the account worth in your currency and after inflation?

The curve's levels, in dollars, converted at each day's exchange rate (the Federal Reserve's New York noon buying rate), from 2020-01-01 to 2024-11-29. If you live in another currency, this is what the account was worth in it. The difference from the dollar row comes from the exchange rate, not the strategy: when the dollar rises against your currency the result in it rises, and when it falls, it falls. Measured

CurrencyTotal returnA yearWorst fall
Dollars (the account)+173.7%+22.7%-8.2%
Dollars after US inflation+123.8%+17.8%-7.6%
Mexican pesos (MXN)+194.8%+24.6%-15.5%
Mexican pesos (MXN) after its own inflation+128.3%+18.3%-19.1%
Brazilian reais (BRL)+308.3%+33.1%-15.8%
Brazilian reais (BRL) after its own inflation+208.2%+25.7%-16.1%
Euros (EUR)+191.3%+24.3%-12.3%
Euros (EUR) after its own inflation+140.2%+19.5%-12.6%
Pounds sterling (GBP)+186.0%+23.8%-13.3%
Pounds sterling (GBP) after its own inflation+129.0%+18.4%-15.7%
Japanese yen (JPY)+278.8%+31.1%-13.1%
Japanese yen (JPY) after its own inflation+246.1%+28.7%-13.9%
Canadian dollars (CAD)+195.9%+24.7%-11.3%
Canadian dollars (CAD) after its own inflation+150.2%+20.5%-10.8%
Swiss francs (CHF)+149.5%+20.4%-11.0%
Swiss francs (CHF) after its own inflation+135.2%+19.0%-11.0%

US inflation over those dates was +22.3% in total (+4.2% a year). Measured

The rows "after its own inflation" divide by each country's official consumer price index of each month, or that of the latest month published; a currency without a current official index shows only its row before inflation. The return a year is shown from one year of history. Exchange rates and US prices from FRED, read when the report was made. It does not change the class. Consumer prices: Mexican peso, Source: INEGI, Índice Nacional de Precios al Consumidor (INPC), used here to take inflation out of the balances; real, Banco Central do Brasil (IBGE's IPCA); euro, Eurostat (through FRED); pound, Office for National Statistics, licensed under the Open Government Licence v3.0; yen, created by editing Japan's Consumer Price Index (Statistics Bureau, Ministry of Internal Affairs and Communications), through e-Stat; Canadian dollar, Bank of Canada (Statistics Canada's CPI, available free of charge at bankofcanada.ca); Swiss franc, Eurostat's harmonised index.

How it behaves after losing

What a trading journal would tell you: whether losses are held longer than gains, whether a new trade follows a loss quickly, and how trades do after a losing streak. It does not change the class: these are questions to ask.

No pattern Nothing stands out in how it trades after losing.

1.1×

How long a losing trade lasts against a winning one (median: 4.0 h against 3.7 h) Measured

53%

Win rate after 2 losses in a row (261 trades; whole history: 55%) Measured

Closed trades by entry and exit time; net result after the fees the file itemises.

Does it work on each instrument?

When a robot or a signal trades several markets, the total can come from one of them while the others lose. It does not change the class: these are questions to ask.

Spread out No single instrument carries the result on its own.

58%

Share of the net result that comes from AUDUSD Measured

InstrumentTradesNet resultWin rate
AUDUSD648+10,057.1655%
EURUSD634+7,312.5954%

Closed trades by the instrument the file names; net result after the fees the file itemises.

Trade statistics

At the same share of losing trades and in random order, the longest losing run is typically 8 in a row, and 1 history in 20 reaches 11. This history had 7. Measured

How much of this could be chance?

With 1,282 trades, every figure has a margin. 95 % range: the underlying values consistent with these trades, if each is independent of the others and the system did not change. It is not a prediction.

51.95% – 57.39%

Win rate Measured

6.75 – 20.35

Expectancy per trade Measured

1.32 – 1.76

Profit factor Measured

MetricValueEvidenceNote
Trades1,282Measured
Win rate54.68%Measuredshare of trades with a net profit after the fees the file itemises
Gross profit of winners77,425.10Measured
Gross loss of losers-51,081.35Measured
Commission and swap8,974.00Measuredcommission and swap as reported, a positive cost
Net result17,369.75Measuredgross pnl minus reported fees
Expectancy per trade13.55Measuredaverage net result per trade, account currency
Win rate before fees56.16%Measuredshare of trades with pnl > 0
Profit factor1.52Measuredgross profit / gross loss, before commission and swap; a platform that counts them inside each trade can show a slightly lower figure
Average win107.53Measured
Average loss-90.89Measured
Average win / average loss1.18Measuredaverage win / average loss
Share of the largest win0.61%Measuredlargest single win / gross profit
Most consecutive wins12Measured
Most consecutive losses7Measured
Typical longest losing run by chance8Measuredmedian longest losing run when trades lose as often as these, in random order
Longest losing run by chance, 1 in 2011Measuredlongest losing run chance reaches once in twenty, at the same loss rate
Chance of a run this long90.27%Measuredchance of a losing run at least this long, at the same loss rate
Mean hours per trade3.89Measured
Median hours per trade3.85Measured
SQN1.65Measuredsqrt(min(N, 100)) x mean / std of per-trade gross pnl
Trades per month21.76Measuredfirst entry to last exit

Long

MetricValueEvidenceNote
Trades652Measured
Win rate53.07%Measured
Net result5,783.59Measuredafter the fees the file itemises per trade

Short

MetricValueEvidenceNote
Trades630Measured
Win rate56.35%Measured
Net result11,586.16Measuredafter the fees the file itemises per trade

Resampled one-year risk

6.86%

Maximum drawdown over one year · p50 Measured

12.26%

Maximum drawdown over one year · p95 Measured

16.57%

Maximum drawdown over one year · p99 Measured

Probability of a fall of at leastIn the simulations of the history
10%14.75% Measured
20%0.20% Measured
30%0.00% Measured
50%0.00% Measured

Consecutive periods below the peak, in the simulations: median 72 Measured, in 1 of every 20 186.05 Measured

Is the file's worst fall normal for these returns?

Worst fall in the file: 8.2%. With the same returns in 1,000 random orders, the worst fall runs from 8.4% to 16.5% in 9 of 10 orders (median 11.4%). Measured

It is milder than in almost every random order: only 4.0% of them fall this little. Losses followed losses less than chance would give. Smoothed curves, curves that average down losing positions, or a favourable order that need not repeat look like this. The file's fall may understate the risk.

Changing the order does not change the Sharpe, the volatility or the final result: it only shows the fall these returns usually bring over the whole file. It is not the one-year fall in the table above.

Assumptions:

  • Resampled estimate from the supplied history: it is not a prediction.
  • It assumes the future resembles the history; if the market changes, it no longer holds.
  • A curve of daily closes does not show floating drawdown within the day.

Lone peak or plateau?

We compare the chosen settings with those one step away on each parameter in your optimisation file. If moving one parameter by one step sinks the result, the settings were fitted to the history's noise.

Chosen: the pass with the highest profit, because the report has no inputs matching a pass.

FastMA 24SlowMA 55

91%

Of the chosen profit the neighbours keep (median). Measured

100%

Of the neighbours end with a profit. Measured

Plateau The neighbours keep much of the result: it looks like a plateau.

Neighbours one step away

ParameterValueProfit
FastMA23118.00
SlowMA5499.00
MetricValueEvidenceNote
Profit of the chosen settings119.00Measuredfrom the rows of the optimisation export
Optimisation passes120Measuredfrom the rows of the optimisation export
Passes with a profit99.17%Measuredfrom the rows of the optimisation export
Chosen pass position (top share)0.83%Measuredrank of the chosen pass / passes
Neighbours found2Measuredfrom the rows of the optimisation export
Neighbours with a profit100.00%Measuredfrom the rows of the optimisation export
Profit the neighbours keep91.18%Measuredmedian neighbour profit / chosen profit

If you turn on the forward period in the MT5 tester and upload that optimisation, the report adds “Does it hold in the forward period?”: it compares every pass on the optimised period and on a later one the optimiser did not use to choose.

What is left once luck is discounted?

The more configurations are tried, the higher the best one comes out even when none has an edge. Here the file's Sharpe sits next to what pure luck would give with the configurations counted, using the published math of Bailey and López de Prado and of Harvey and Liu. It is the same calculation that decides the "Number of settings tried" dimension, in numbers.

Beats luck, without margin The Sharpe of 1.79 beats the 1.19 that 120 settings with no skill would show, but not by the margin we ask: the confidence that it is not luck (DSR) is 90%, and passing this dimension needs 95%.

1.19

Sharpe 120 settings with no skill would show (the file's: 1.79) Measured

2.2 years

Years of history at which that luck falls below this Sharpe (the file has 4.9 years) Measured

1.16

Sharpe left after discounting 120 settings (Harvey and Liu) Measured

Configurations triedSharpe luck would showHistory neededIs this history enough?
100.7210 monthsyes
1001.162.1 yearsyes
1,0001.493.4 yearsyes

E[max Sharpe] of unskilled trials (Bailey & Lopez de Prado); minimum backtest length (Bailey, Borwein, Lopez de Prado & Zhu); Bonferroni haircut (Harvey & Liu).

How much capital it needs, at what size

How much money it takes so that a bad year does not take more than a given share of the account, with this file's trades. We drew 2,000 years of trades at random and took the fall only 5 % of them exceed, or the history's own if larger.

2,442.59

Reference fall in money, at the backtest's size. Measured

1,528.76

Deepest fall of the history in its own order. Measured

261

Closed trades per year in the history Measured

  1. If you accept losing up to 10%24,425.89Capital needed at the backtest's size0.41x Size on the file's starting balance (10,000)
  2. If you accept losing up to 20%12,212.94Capital needed at the backtest's size0.82x Size on the file's starting balance (10,000)
  3. If you accept losing up to 30%8,141.96Capital needed at the backtest's size1.2x Size on the file's starting balance (10,000)
  4. If you accept losing up to 50%4,885.18Capital needed at the backtest's size2.0x Size on the file's starting balance (10,000)

1x is the backtest's lot size; 0.50x is half of it. Above 1x the fall in money grows in the same proportion.

It counts closed trades only: losses of positions while they were still open are not included, so the capital needed may be larger.

Assumptions:

  • Fixed sizes: no compounding and no size change after wins or losses.
  • Trades are drawn independently of one another; the history's own fall covers streaks.
  • Costs are those the uploaded file itemises.
  • Money figures are at the sizes the file used; the relative size is computed on its starting balance, without later deposits.
  • It measures the history's losses; it is not a forecast.

Prop-firm challenge simulator

Rules simulated: Generic · Two-step evaluation, phase 1. Generic reference rules, not any one firm's terms.

OutcomeIn the simulations of the history
Reaches the target89.56% Measured
Breaks the daily loss limit0.00% Measured
Breaks the total loss limit2.28% Measured
Does not finish in time8.16% Measured
88.7% – 90.4%

95 % interval of reaching the target Measured

58 / 92 / 138

Business days to the target (p25 / p50 / p75) Measured

  • Reference rules typical of two-step evaluations; not any one firm's terms.

Assumptions:

  • Resampled estimate from the supplied history: it is not a prediction.
  • Daily data cannot see intraday floating drawdown, so the estimate is optimistic against the daily and total limits.
  • It assumes the future resembles the history and that every day with a non-zero return counts as a trading day.

Which firm's rules does your history fit?

The same history, resampled the same way, under each firm's published rules, from most to least likely to pass every phase of the program within the best-day rule, where the firm has one; ties go by name. It compares rules; it does not recommend buying any challenge. Measured

ChallengePassesPasses within the best-day ruleWhat stops it most
FundedNext · Stellar 2-Step
2 phases
90%no ruleDoes not finish in time
FundedNext · Stellar Lite
2 phases
88%no ruleBreaks the total loss limit
FTMO · FTMO Challenge 2-Step
2 phases
87%no ruleDoes not finish in time
The5ers · High Stakes
2 phases
87%no ruleDoes not finish in time
The5ers · Hyper Growth
1 phase
86%no ruleBreaks the total loss limit
FTMO · FTMO Challenge 1-Step
1 phase
82%82%Breaks the daily loss limit
FundedNext · Stellar 1-Step
1 phase
80%no ruleBreaks the total loss limit
The5ers · Bootcamp
3 phases
64%no ruleBreaks the total loss limit
Topstep · Trading Combine 50K
1 phase
60%60%Breaks the total loss limit
Topstep · Trading Combine 100K
1 phase
50%50%Breaks the total loss limit
Topstep · Trading Combine 150K
1 phase
50%50%Breaks the total loss limit

Questions to ask the vendor

  1. Is there a live or demo account with at least 11 months of auditable history, with the same robot and settings?
  2. Which modelling mode and history quality was the backtest run with (real ticks, 1-minute OHLC, open prices only)?
  3. Which spread, commission and swap were used? Are they your broker's?
  4. Ask for the (floating) equity curve, not only the balance: the balance hides open losses.

Technical detail by dimension

DimensionStatusReasons
Statistical significancePassPSR 1.000 >= 0.95; bootstrap p5 Sharpe > 0
Number of settings triedWeakDSR 0.905 between 0.5 and 0.95 with 120 trials counted in the files
CostsWeaknet pnl at 1x is 6,441.05 > 0 but at 3x is -15,404.86 <= 0
Out of sampleWeakout-of-sample Sharpe 0.54 > 0; gap 1.35
Data quality and trading patternPassno red flags
BenchmarkNot applicableclient declared no applicable benchmark

Thresholds applied: PSR to pass 0.95 · minimum PSR 0.8 · DSR to pass 0.95 · minimum DSR 0.5 · maximum PBO 0.5 · cost multiple it must withstand 3 · minimum out-of-sample Sharpe 0.5 · maximum out-of-sample Sharpe drop 1 · maximum drawdown versus the benchmark (times) 1

Annualised performance

MetricValueEvidenceNote
Total return173.70%Measured
Compound annual return22.75%Measured
Annual volatility11.86%Measured
Sharpe1.79Measured
Sortino2.80Measured
Maximum drawdown-8.22%Measured

Statistical significance

MetricValueEvidenceNote
Observations1,282Measured
Sharpe per period0.1107Measured
Skewness0.0974Measured
Kurtosis4.33Measured
Probabilistic Sharpe (PSR)100.00%MeasuredP[true Sharpe > 0] given length, skew and kurtosis
Minimum track record needed222Measuredobservations needed for PSR to reach 0.95
Observations missing0Measured

Sharpe corrected for autocorrelation (Lo, 2002): it is not appreciably below 1.79, so the order of the returns does not inflate the plain Sharpe appreciably. When the correction raises it, the report does not use it, so as not to favour the file. Measured

The returns do not depend on each other appreciably: taking that into account does not change the probability that the true Sharpe is above zero. Measured

Multiplicity (number of trials)

Trials used in the deflated Sharpe: 120 Measured passes in the MT5 optimisation export

MetricValueEvidenceNote
Trials used120Measuredpasses in the MT5 optimisation export
Sharpe variance used0.0008Measured
Sampling-error floor0.0008Measuredsampling variance of the Sharpe estimator
Variance increase from dependence1.03Measuredhow many times the Sharpe's variance grows when the returns are not taken as independent (1 means no change)
Effective observations after dependence1,244Measured
Observed across variants—Not measuredno variants uploaded
DSR at the declared trials90.49%MeasuredPSR against E[max Sharpe] of 120 trials
DSR at the trials used90.49%MeasuredPSR against E[max Sharpe] of 120 trials, passes in the MT5 optimisation export
Trials that bring DSR to 0.516,384Measuredsmallest power-of-two trial count with DSR < 0.5

Variance used: the larger of the one observed across the variants you uploaded and the one sampling error produces.

trialsExpected max Sharpe without skillDeflated Sharpe (DSR)
10100.00%
50.033899.67%
200.053997.74%
1000.071791.52%
1200.073590.49%

Stationary bootstrap (per period)

Stationary block bootstrap, resamples: 500 · block 20

Estimatep5p50p95
Sharpe per period0.1107 Measured0.0688 Measured0.1109 Measured0.1513 Measured
Total return173.70% Measured84.39% Measured171.78% Measured302.55% Measured

Declared out-of-sample

MetricValueEvidenceNote
Out-of-sample start2024-06-03Declareddeclared by the client; not verifiable
Sharpe gap (in minus out of sample)1.35Measuredin-sample minus out-of-sample annualised Sharpe

In sample

MetricValueEvidenceNote
Observations1,152Measured
Annualised Sharpe1.89Measured
Probabilistic Sharpe (PSR)100.00%Measured
Total return168.44%Measured

Out of sample

MetricValueEvidenceNote
Observations130Measured
Annualised Sharpe0.5448Measured
Probabilistic Sharpe (PSR)64.96%Measured
Total return1.96%Measured

Trading costs

MetricValueEvidenceNote
Reference cost (bps per side)1Declareddeclared by the client; charged on top of the fees the report itemises
Break-even cost (bps per side)1.59Measuredextra cost per side, on top of the report's fees, at which the ledger nets to zero
Break-even cost multiple1.59Measured
Multiplierbps per sideGrossCostNetWin rateTrades
0x0.0026,338.008,974.0017,364.0054.68%1,282
1x1.0026,338.0019,896.956,441.0551.48%1,282
2x2.0026,338.0030,819.91-4,481.9148.52%1,282
3x3.0026,338.0041,742.86-15,404.8645.40%1,282

This table recomputes each trade from its prices and size: with no extra cost it gives 17,364.00, 5.75 away from the trades' net result (17,369.75), from price rounding or currency conversion.

Costs the report itemises

MetricValueEvidenceNote
Commission-8,974.00Measuredsigned total the report itemises; negative is a cost
Swap0.00Measuredsigned total the report itemises; negative is a cost

Supplied benchmark

Not measured no benchmark uploaded

Combinatorially symmetric cross-validation (CSCV) overfitting

Not measured no variants uploaded

Sub-periods (calendar years)

YearReturnMax drawdown
202038.28%-8.22%
202124.87%-6.66%
202227.42%-5.18%
202317.40%-4.30%
20245.96%-5.63%

Rolling windows

WindowMin returnMin drawdownShare negative
65-4.68%-8.22%14.37%
131-3.29%-6.87%2.78%
2613.66%-6.66%0.00%

Red flags

No red flags in the audited files.

Audited files (sha256)

report.htmlf07658c4049d4cc344aece0211cf60babe77cc06eaeb6a9f554bf4b1a804f75b
optimization.xml49227a5fca40ead53d2020bad7b4f19f8723bc7ef6d4079e7ff791e2fce72626
live.csv0648d915126fac0966c5ca86aae7b6a1f10fc8b03b5f7233e1032d070c1b9a4b
Dataset digestced13c6f8a82d6d27bb49448ed86dec90c021c7d46baa31f69d86566e35eaf55

2020-01-01 → 2024-11-29 · daily (trading days) · 1,282 observations · equity curve

Parse warnings

  • report: contract size inferred from reported profit: AUDUSD x100,000, EURUSD x100,000
  • report: the file's times carry no timezone (platform or server time); they were read as UTC
  • report: the balance curve is built from closed trades only; it does not show floating (open-trade) drawdown, so the real drawdown was at least as deep
  • optimization: the pass count is the number of configurations the optimiser tried; a genetic optimisation lists only the passes it evaluated
  • live: contract size inferred from reported profit: AUDUSD x100,000, EURUSD x100,000
  • live: deposits or withdrawals were removed: the curve is a flow-adjusted index that starts at the initial balance
  • live: the file's times carry no timezone (platform or server time); they were read as UTC
  • live: the balance curve is built from closed trades only; it does not show floating (open-trade) drawdown, so the real drawdown was at least as deep

File format: MetaTrader 5 Strategy Tester (HTML)

Optimisation export: 120 configurations tried Measured

Figures the platform states Declared

Balance chain breaks0
End2024-11-29
Largest balance difference0.000000
PeriodH1 (2020.01.02 - 2024.11.29)
Reconstructed final balance27369.750000
Reported final balance27369.750000
Start2020-01-02
StrategySyntheticSampleEA
SymbolEURUSD

Declared by the client

MetricValueEvidenceNote
Trials120Declared
Cost per side (bps)1.00Declared
Out-of-sample start2024-06-03Declared
Benchmark appliesnoDeclared
Initial balance—Not measurednot declared

No strategy description was written.

Not measured

  • Supplied benchmarkNo benchmark uploaded.
  • Combinatorially symmetric cross-validation (CSCV) overfittingNo variants uploaded.

Declared holdout seal

Seal idsample
Selection start2020-01-01
Selection end2024-06-02T23:59:59Z
Holdout start2024-06-03
Holdout end2024-11-29
Sealed at (UTC)2026-09-24
Seal (sha256)6c8325dd86a2f85c1c008ce937dc7426a1984a5d2f7ccc27a3a322c9e60a8fcc
Notice. This audit is a statistical research tool applied to client-supplied data. It is not investment advice, executes no trades, holds no funds or keys, and does not predict future results. Every value carries its evidence tag: Measured was computed from the file, Declared was asserted by the client and could not be verified, Not measured could not be computed from what was supplied.

sha256 of the audit JSONabfe4639a24e7e791f5856be9a7de913d281cafc1f8816c854c4eb63be28c816

Rigor · Independent statistical audit of backtests and track records