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.
No printed balance to reconcile against. The file prints no balance of its own to compare with, so there is nothing independent to reconcile.
Gross − itemised costs = net closed-trade P&L: -551.03 − 193.50 = -744.53
Starting capital + known flows + net P&L = expected closing balance: 1,000.00 + 3,400.00 + -744.53 = 3,655.47
file units; currency not declared| Starting capital | 1,000.00 | Measured |
|---|---|---|
| Flows after the start | 3,400.00 | Measured |
| Gross closed-trade P&L | -551.03 | Measured |
| Itemised costs | 193.50 | Measured |
| Net closed-trade P&L | -744.53 | Measured |
| Open-position value | — | Not measured |
| Expected closing balance | 3,655.47 | Measured |
| Observed closing balance | — | Not measured |
| Difference (observed − expected) | — | Not measured |
| Tolerance | 3.79 | Measured |
Coverage and limits
- Curve: rebuilt from the platform deal rows
- Closed trades: 344
- Trades outside the curve period: 0
- Deposits and withdrawals: listed by the platform
- Open positions: not valued separately
- Currency: not stated; same units assumed
Executive summary
After subtracting what cash in dollars paid over the same dates (3-month US Treasury bills, 3.82% a year on average), the Sharpe is 0.47. 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 Fail
With this data, the result cannot be told apart from coin flips. The curve can look good and still be chance.
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 Fail
At the reference cost, this account's trades lose money net. Its prices are already the broker's fills, so the margin over costs is nil or negative.
Out of sample Not measured
The history does not say since when the robot has run unchanged, so it is not known which part is a test on unseen data. Ask the provider for that date and declare it to measure it.
Data quality and trading pattern Weak
There are warnings in the data worth clearing up before trusting the figures. The full report lists each warning with its explanation.
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.
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.
- 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.
- 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.
- C
One dimension fails, or statistics or number of trials are weak.
- D
The data or the statistics fail, or two dimensions or more fail.
Your report
Charts
| Year | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | Total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | +3.9% | +21.9% | +12.8% | +9.2% | +56.1% | ||||||||
| 2026 | +14.3% | +8.3% | -22.6% | +3.4% | +2.5% | -26.5% | +5.6% | +4.3% | -11.1% | -26.9% |
Red flags found
- WarningExtreme jumps
MAD_SPIKES
- WarningSize grows after losses (martingale)
MARTINGALE_SIZING
- WarningGrid or averaging down
GRID_AVERAGING
- WarningMany positions open at once
MANY_CONCURRENT_POSITIONS
- WarningHidden floating drawdown
HIDDEN_FLOATING_DRAWDOWN
- WarningThe percentage gain does not reflect the money
GAIN_INFLATED_BY_FLOWS
- WarningDeposits in a deep drawdown
DEPOSIT_DURING_DRAWDOWN
- WarningOpen loss the balance does not show
FLOATING_LOSS_AT_END
Internal file consistency
Heuristic checks of rows within this file; they do not compare two independent files or authenticate who created the history.
No calibrated check could be applied to this format: there is no signal either for or against the file, and the absence of one says nothing about whether it was edited. If you can, download it yourself from the platform.
A signal does not prove forgery; no signal does not prove authenticity.
All checks and their status
| Check | Status | Calibration |
|---|---|---|
File trace FILE_TRACE | No finding | No applicable calibration |
Summary totals against the rows TOTALS_VS_ROWS | Data point | No applicable calibration |
Identities between summary totals SUMMARY_IDENTITIES | Data point | No applicable calibration |
Balance chain BALANCE_CHAIN | Data point | No applicable calibration |
Deal and order sequence DEAL_SEQUENCE | Data point | No applicable calibration |
Tester numbering TESTER_NUMBERING | Data point | No applicable calibration |
Ticket order TICKET_ORDER | No finding | No applicable calibration |
Duplicate tickets DUPLICATE_TICKET | No finding | No applicable calibration |
Links between tickets TICKET_LINKS | Data point | No applicable calibration |
Copies between tables CROSS_COPIES | Data point | No applicable calibration |
Stop and take-profit fills SLTP_FILL | Data point | No applicable calibration |
Sign of the result PNL_SIGN | No finding | No applicable calibration |
Result implied by the prices PRICE_IMPLIED_PNL | Data point | No applicable calibration |
Price precision PRICE_PRECISION | Data point | No applicable calibration |
Possible hours TIME_SANITY | No finding | No applicable calibration |
Row order ROW_ORDER | No finding | No applicable calibration |
Market hours MARKET_HOURS | No finding | No applicable calibration |
Hidden content HIDDEN_CONTENT | Data point | No applicable calibration |
Volume in and out VOLUME_IN_OUT | Data point | No applicable calibration |
Statement period STATEMENT_PERIOD | No finding | No applicable calibration |
Digits of the monthly table MONTHLY_DIGITS | Data point | No 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 Supply more history Fail
PSR 0.687 with 258 observations. With the same behaviour, not even 10 times more history would take it to 0.95: on this data the result cannot be told apart from chance.
- Upload a longer period of the same account, with unchanged settings.
- Better still, audit it again once it adds more months with the same settings: each new month counts as data the optimiser never saw.
If this dimension passed and the rest stayed the same, the class would be C.
02 Check the real costs Fail
Even with no extra cost, the trades do not net above zero after the commission and swap in the file.
- 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 Clear the data flags Weak
0 serious flags and 8 warnings in the data.
- Extreme jumps. On some days the account moves more than 15 %: if they come from deposits, withdrawals or bad prices, fix them; if they are real trades, the size is very aggressive for the account.
- Size grows after losses (martingale). Size grows after losses: with a fixed size or fixed risk the curve shows the real risk; upload that version to compare.
- Grid or averaging down. Positions are added against the losing one: also upload a backtest without averaging to see how much depends on it.
- Many positions open at once. Limit the positions open at once or upload the equity curve with floating P&L.
- Hidden floating drawdown. The curve shows only the balance: upload the equity curve (with floating P&L) to measure the real drawdown.
- The percentage gain does not reflect the money. The percentage comes from removing deposits and withdrawals: judge the account by the money its trading made or lost as well.
- Deposits in a deep drawdown. New money arrived in a deep loss: look at the drawdown without those deposits and ask why they were added.
- Open loss the balance does not show. Positions are open at a loss: ask for a history printed after they close to see the real result.
04 Measure how many configurations were tried Weak
DSR 0.677 at 1 trial; it passes at 0.95 or more and fails below 0.5. With 2 or more configurations tried it falls below 0.5.
- Upload the MT5 optimisation XML or the variants matrix: the trial count becomes measured and the PBO is computed.
- The trials you already ran still count: re-optimising around the chosen configuration adds to them, it does not erase them. In the next version, fewer parameters and narrower ranges from the start mean fewer trials.
- Validate the chosen configuration on a stretch not used while optimising.
05 Find out since when it has run unchanged Not measured
The history does not say since when the robot has run with unchanged settings: without that date the best possible class is B.
- Ask the provider since when the settings have not changed and declare it as the out-of-sample start: what follows is measured as unseen data.
- Ask for the backtest of the same robot and upload it with the account: the report compares the two trade by trade.
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.
Percentage gain, as track-record sites show it. Measured
Trading result, in money, on 5,000.00 deposited. Measured
Open loss over the balance when the history was printed. Declared
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Deposits | 2 | Measured | |
| Money deposited | 5,000.00 | Measured | |
| Withdrawals | 1 | Measured | |
| Money withdrawn | 600.00 | Measured | |
| Trading result, in money | -744.53 | Measured | closed trades after commission and swap, in the account currency |
| Percentage gain | 14.11% | Measured | time-weighted: deposits and withdrawals are taken out, as track-record sites compute gain |
| Result on the money deposited | -14.89% | Measured | trading result / money deposited |
| Share of deposits withdrawn | 12.00% | Measured | withdrawn / deposited |
| Deposits after trading began | 1 | Measured | |
| Deposits in a deep drawdown | 1 | Measured | |
| Floating result when printed | -888.84 | Declared | the platform's own summary at the time of the statement |
| Floating result / balance | -24.32% | Declared | floating result / balance rebuilt from the file's deposits, withdrawals and closed trades (the file prints no balance) |
Deposits after trading began, largest first
| Date | Amount | Balance before | Drawdown then |
|---|---|---|---|
| 2026-03-20 | 4,000.00 | 1,486.76 | -27.80% |
Read from the file as uploaded; nothing was checked with the broker.
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.
7 of 8 scenarios end at zero or below.
On the curve (compounded total return)
| Scenario | Left | Change | Still above zero? |
|---|---|---|---|
| Original Measured | 14.1% | ||
| Without the best 1 % of periods (3) | 2.2% | -11.9% | Yes |
| Without the best 5 periods | -3.0% | -17.1% | No |
| Without the best 10 periods | -12.8% | -27.0% | No |
| Without the best month (2025-10) | -6.4% | -20.5% | No |
On the closed trades (net result after commission and swap)
| Scenario | Left | Change | Still above zero? |
|---|---|---|---|
| Original Measured | -744.53 | ||
| Without the best trade | -837.93 | -93.40 | No |
| Without the best 5 trades | -1,046.25 | -301.72 | No |
| Without the best 10 % of trades (35) | -1,850.60 | -1,106.07 | No |
| Without the best month (2026-07) | -1,002.75 | -258.22 | No |
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.
Time without a new high since 18 Mar 2026: still open at the file's end Measured
Worst fall: days from the high (18 Mar 2026) to the low (11 Jun 2026) Measured
Days from that low back to the high Measured
Worst day (19 Mar 2026) Measured
Worst month (Jun 2026) Measured
Months that ended up (10 of 13); longest run of losing months: 1 Measured
Average return per day in the worst 5 % of days (13 of 258) Measured
The worst fall is not regained by the file's last date.
The deepest falls Measured
| Fall | High to low | Back at the high | Total length |
|---|---|---|---|
| -45.1% | 18 Mar 2026 → 11 Jun 2026 (85 days) | still open | 182 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.
| Entry day | Trades | Net result | Win rate |
|---|---|---|---|
| Monday | 73 | -224.47 | 73% |
| Tuesday | 67 | -313.43 | 70% |
| Wednesday | 69 | -451.27 | 70% |
| Thursday | 61 | -171.69 | 74% |
| Friday | 74 | +416.33 | 73% |
| Entry time | Trades | Net result | Win rate |
|---|---|---|---|
| 00:00–03:59 | 52 | -84.98 | 83% |
| 04:00–07:59 | 72 | -192.19 | 67% |
| 08:00–11:59 | 62 | -72.30 | 71% |
| 12:00–15:59 | 63 | -303.10 | 70% |
| 16:00–19:59 | 64 | -29.00 | 70% |
| 20:00–23:59 | 31 | -62.96 | 74% |
Entry times as the file states them (platform or server time); net result after the fees the file itemises per trade.
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.
Changed The average return changed around 18 Mar 2026 (probably between 12 Nov 2025 and 22 Jul 2026): +149.4% a year before and -99.2% a year after. With p = 0.038, chance alone is unlikely to explain a difference like this.
Average return a year before 18 Mar 2026 (90 % band: +117.7% to +181.1%) Measured
Average return a year since 18 Mar 2026 (90 % band: -232.5% to +34.1%) 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 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: 2025-09-19 to 2026-09-16. Measured
| Calm market (VIX < 20) | Turbulent market (VIX ≥ 20) | |
|---|---|---|
| Share of the time | 80% | 20% |
| Returns counted | 207 | 51 |
| Return per month (compounded) | 3.69% | -8.47% |
| Sharpe (return per unit of risk) | 1.60 | -1.16 |
The gap in mean return between the two columns (0.80 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 2025-09-19 to 2026-09-16. 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
The file does not say which currency the account is in, so it is read as dollars. If it is not, this section does not apply.
| Currency | Total return | A year | Worst fall |
|---|---|---|---|
| Dollars (the account) | +14.1% | — | -45.1% |
| Dollars after US inflation (prices through 2026-08) | +10.6% | — | -45.7% |
| Mexican pesos (MXN) | +6.4% | — | -46.5% |
| Mexican pesos (MXN) after its own inflation | +2.9% | — | -46.6% |
| Brazilian reais (BRL) | +10.2% | — | -46.3% |
| Brazilian reais (BRL) after its own inflation | +5.4% | — | -47.1% |
| Euros (EUR) | +16.2% | — | -45.2% |
| Euros (EUR) after its own inflation (prices through 2026-08) | +12.7% | — | -45.7% |
| Pounds sterling (GBP) | +14.4% | — | -45.3% |
| Pounds sterling (GBP) after its own inflation (prices through 2026-08) | +11.0% | — | -46.1% |
| Japanese yen (JPY) | +19.7% | — | -46.1% |
| Japanese yen (JPY) after its own inflation (prices through 2026-08) | +17.2% | — | -47.0% |
| Canadian dollars (CAD) | +15.5% | — | -43.9% |
| Canadian dollars (CAD) after its own inflation (prices through 2026-08) | +12.1% | — | -44.5% |
| Swiss francs (CHF) | +17.6% | — | -44.5% |
| Swiss francs (CHF) after its own inflation (prices through 2026-08) | +16.1% | — | -44.9% |
US inflation over those dates was +3.1% in total. 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.
Losing trades stay open much longer than winning ones.
Ask where the stop is and whether it moves.
It wins less often after a losing streak.
Ask whether size or rules change during those streaks.
How long a losing trade lasts against a winning one (median: 38.0 h against 13.0 h) Measured
Win rate after 2 losses in a row (29 trades; whole history: 72%) 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.
| Instrument | Trades | Net result | Win rate |
|---|---|---|---|
| EURUSD | 180 | +1,152.16 | 78% |
| GBPUSD | 164 | -1,896.69 | 65% |
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 4 in a row, and 1 history in 20 reaches 6. This history had 12. Measured
The losses came closer together than chance explains: a run like this shows up in fewer than 1 in 20 random orders. It usually points to losses that depend on the kind of market, or to positions open at the same time.
How much of this could be chance?
With 344 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.
Win rate Measured
Expectancy per trade Measured
Profit factor Measured
The range of the average per trade or of the profit factor includes break-even (0 and 1): with these trades the system cannot be told apart from one that neither wins nor loses per trade.
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Trades | 344 | Measured | |
| Win rate | 71.80% | Measured | share of trades with a net profit after the fees the file itemises |
| Gross profit of winners | 2,575.81 | Measured | |
| Gross loss of losers | -3,126.84 | Measured | |
| Commission and swap | 193.50 | Measured | commission and swap as reported, a positive cost |
| Net result | -744.53 | Measured | gross pnl minus reported fees |
| Expectancy per trade | -2.16 | Measured | average net result per trade, account currency |
| Win rate before fees | 73.26% | Measured | share of trades with pnl > 0 |
| Profit factor | 0.82 | Measured | gross profit / gross loss, before commission and swap; a platform that counts them inside each trade can show a slightly lower figure |
| Average win | 10.22 | Measured | |
| Average loss | -34.36 | Measured | |
| Average win / average loss | 0.30 | Measured | average win / average loss |
| Share of the largest win | 3.63% | Measured | largest single win / gross profit |
| Most consecutive wins | 13 | Measured | |
| Most consecutive losses | 12 | Measured | |
| Typical longest losing run by chance | 4 | Measured | median longest losing run when trades lose as often as these, in random order |
| Longest losing run by chance, 1 in 20 | 6 | Measured | longest losing run chance reaches once in twenty, at the same loss rate |
| Chance of a run this long | 0.0017% | Measured | chance of a losing run at least this long, at the same loss rate |
| Mean hours per trade | 37.69 | Measured | |
| Median hours per trade | 20 | Measured | |
| SQN | -0.4441 | Measured | sqrt(min(N, 100)) x mean / std of per-trade gross pnl |
| Trades per month | 29.15 | Measured | first entry to last exit |
Long
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Trades | 155 | Measured | |
| Win rate | 80.00% | Measured | |
| Net result | 1,014.26 | Measured | after the fees the file itemises per trade |
Short
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Trades | 189 | Measured | |
| Win rate | 65.08% | Measured | |
| Net result | -1,758.79 | Measured | after the fees the file itemises per trade |
Resampled one-year risk
Open losses The file shows the balance only, and the red flags found open losses the balance hides (Hidden floating drawdown). They are not counted here, so these figures come out optimistic: do not decide with them without the equity curve with floating results.
Maximum drawdown over one year · p50 Measured
Maximum drawdown over one year · p95 Measured
Maximum drawdown over one year · p99 Measured
| Probability of a fall of at least | In the simulations of the history |
|---|---|
| 10% | 96.20% Measured |
| 20% | 88.15% Measured |
| 30% | 60.40% Measured |
| 50% | 21.70% Measured |
Time in a row below the peak in the simulations, counted in trading days: median 120 Measured, in 1 of every 20 248 Measured
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.
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.
The files do not say how many configurations were tried before this one was picked. The table shows how much history each search size would need: ask the vendor.
The file's Sharpe: 0.57. History: 12 months. Measured
| Configurations tried | Sharpe luck would show | History needed | Is this history enough? |
|---|---|---|---|
| 10 | 1.94 | 11.6 years | no |
| 100 | 3.11 | 30.1 years | no |
| 1,000 | 4.01 | 49.8 years | no |
With under a year of history, an annualised Sharpe moves a lot on little data: read it as an order of magnitude.
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
Not measured The trades overlap as a grid or with hidden open losses, so closed trades understate the real fall.
What to do: Upload an equity curve that includes open trades or the platform report with its equity drawdown.
Prop-firm challenge simulator
Rules simulated: Generic · Two-step evaluation, phase 1. Generic reference rules, not any one firm's terms.
Open losses The file shows the balance only, and the red flags found open losses the balance hides (Hidden floating drawdown). They are not counted here, so these figures come out optimistic: do not decide with them without the equity curve with floating results.
| Outcome | In the simulations of the history |
|---|---|
| Reaches the target | 68.44% Measured |
| Breaks the daily loss limit | 31.56% Measured |
| Breaks the total loss limit | 0.00% Measured |
| Does not reach the target within 250 business days (the simulation's cap; the rules set no deadline) | 0.00% Measured |
95 % interval of reaching the target Measured
Business days to the target (p25 / p50 / p75) Measured
How much does it change with what this report found?
The same program (Generic · Two-step evaluation, phase 1), resampled the same way, on different stretches of the history or with what the report discounts. These are scenarios of the same history, not predictions: if the figure drops sharply out of sample or with costs, the full-history figure is optimistic. Measured
| Scenario | Days of data | Reaches the target in every phase | What stops it most |
|---|---|---|---|
| Full history (the figure above) | 258 | 68% | Breaks the daily loss limit |
| In-sample only | — | Not measured no out-of-sample start declared | |
| Out-of-sample only | — | Not measured no out-of-sample start declared | |
| With the reference cost (0.5 bps per side) Not measured | — | Not measured deposits or withdrawals inside the history: the curve is an index, not money | |
| With the luck discounted | — | Not measured trial count not declared: the haircut needs to know how many configurations were tried | |
The same optimistic figures as above apply to this table: the balance hides open losses.
At what size? The challenge at 0.5x, 1x, 1.5x and 2x
The same program as the ladder (Generic · Two-step evaluation, phase 1), at another size. In each row, reaching the target, breaking a loss limit and not reaching the target within the cap share out all the simulations, counting every phase. The table shows what changes with the size; it advises none. “Reaches the target” counts only what gets there within that cap, which the simulation sets and the rules do not. At a smaller size the target takes longer: the simulations that move to “does not reach” ran out of days; they did not break a loss limit, which has its own columns. Measured
1x is the size of the history you uploaded: each simulated day gains or loses the same share of the balance as a day of the file. 0.5x is half that size and 2x is double. The shares at 1x are measured on the file's starting balance (1,000). Declared
Lot or risk per trade at 1x: Not measured the audit keeps neither the lot nor the stop loss of each trade, so the lot or risk per trade at 1x is not known
The simulated rules fix no account size: they are shares (of the starting balance or of the day's), so the table does not depend on the account size.
| Size | Reaches the target in every phase | Breaks the daily loss limit | Breaks the total loss limit | Does not reach the target within 250 business days (the simulation's cap; the rules set no deadline) |
|---|---|---|---|---|
| 0.5x | 50% | 50% | ≤1% | 0% |
| 1x | 68% | 32% | 0% | 0% |
| 1.5x | 76% | 24% | 0% | 0% |
| 2x | 80% | 20% | 0% | 0% |
Method and assumption: the ladder's full-history row with every daily return multiplied by the size; it assumes that changing the size scales every daily return in the same proportion, as linear leverage does when the costs grow in proportion to the size (the same cost per lot) and the execution does not worsen with more volume.
The same optimistic figures as above apply to this table: the balance hides open losses.
- 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
Figures from the full history without the reference cost; the ladder above shows how much they change.
The same optimistic figures as above apply to this table: the balance hides open losses.
| Challenge | Passes | Passes within the best-day rule | What stops it most |
|---|---|---|---|
| Topstep · Trading Combine 100K 1 phase | 77% | 70% | Breaks the total loss limit |
| Topstep · Trading Combine 150K 1 phase | 77% | 70% | Breaks the total loss limit |
| Topstep · Trading Combine 50K 1 phase | 77% | 70% | Breaks the total loss limit |
| The5ers · Hyper Growth 1 phase | 68% | no rule | Breaks the total loss limit |
| FundedNext · Stellar 1-Step 1 phase | 67% | no rule | Breaks the daily loss limit |
| FTMO · FTMO Challenge 1-Step 1 phase | 67% | 62% | Breaks the daily loss limit |
| FundedNext · Stellar Lite 2 phases | 58% | no rule | Breaks the daily loss limit |
| FundedNext · Stellar 2-Step 2 phases | 56% | no rule | Breaks the daily loss limit |
| The5ers · High Stakes 2 phases | 53% | no rule | Breaks the daily loss limit |
| FTMO · FTMO Challenge 2-Step 2 phases | 53% | no rule | Breaks the daily loss limit |
| The5ers · Bootcamp 3 phases | 45% | no rule | Breaks the total loss limit |
Questions to ask the vendor
- Is this the only account running this strategy? Ask for the accounts that were closed or restarted too: showing only the one that went well is common.
- Ask for the backtest of the same robot with the same settings: uploaded together with this account, the report compares the two trade by trade.
- Losing trades last longer than winners: how does the system decide to close a loss?
- What does the system do after several losses in a row: change size, pause, or enter again straight away?
- Ask for the (floating) equity curve, not only the balance: the balance hides open losses.
- Does the robot increase size after a loss? What is the largest size it can open?
- Does the robot add positions against the move when price moves away? How many at most?
- Ask for the full history with every deposit and withdrawal: how much money was deposited in total, when, and how much was withdrawn?
- Which positions are still open, since when, and with what floating loss?
- The history has jumps, gaps or repeated values: where does the data come from and how was it cleaned?
Message for the seller
To paste in the MQL5 chat, on Telegram, in an email or wherever you talk to the seller: the class, a few key figures with their tag and the questions above, in one text.
Technical detail by dimension
| Dimension | Status | Reasons |
|---|---|---|
| Statistical significance | Fail | PSR 0.677 < 0.8; bootstrap p5 Sharpe <= 0 |
| Number of settings tried | Weak | DSR 0.677 between 0.5 and 0.95 with 1 trial not declared (the most favourable case) |
| Costs | Fail | net pnl at 1x the reference cost is -997.86 <= 0 |
| Out of sample | Not measured | no out-of-sample start declared |
| Data quality and trading pattern | Weak | Deposits in a deep drawdown; Open loss the balance does not show; The percentage gain does not reflect the money; Grid or averaging down; Hidden floating drawdown; Extreme jumps; Many positions open at once; Size grows after losses (martingale) |
| Benchmark | Not applicable | client 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
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Total return | 14.11% | Measured | |
| Compound annual return | — | Not measured | under a year of history; annualising it would exaggerate |
| Annual volatility | 40.98% | Measured | |
| Sharpe | 0.5652 | Measured | |
| Sortino | 0.5914 | Measured | |
| Maximum drawdown | -45.10% | Measured |
Statistical significance
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Observations | 258 | Measured | |
| Sharpe per period | 0.0350 | Measured | |
| Skewness | -8.43 | Measured | |
| Kurtosis | 83.88 | Measured | |
| Probabilistic Sharpe (PSR) | 68.75% | Measured | P[true Sharpe > 0] given length, skew and kurtosis |
| Minimum track record needed | 2,913 | Measured | observations needed for PSR to reach 0.95 |
| Observations missing | 2,655 | Measured |
Sharpe corrected for autocorrelation (Lo, 2002): 0.49, against 0.57 from the plain calculation. Returns of nearby periods tend to move together: the plain Sharpe comes out inflated. Measured
When the returns are not taken as independent of each other, the Sharpe's variance grows 1.1 times: the probability that the true Sharpe is above zero goes from 68.75% to 67.70%. Not even ten times the 258 returns it has would take it to 95%. It is informational: the class uses the plain count. Measured
Multiplicity (number of trials)
Trials used in the deflated Sharpe: 1 Not measured not declared; computed with 1, the most favourable case
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Trials used | 1 | Not measured | not declared; computed with 1, the most favourable case |
| Sharpe variance used | 0.0058 | Measured | |
| Sampling-error floor | 0.0058 | Measured | sampling variance of the Sharpe estimator |
| Variance increase from dependence | 1.13 | Measured | how many times the Sharpe's variance grows when the returns are not taken as independent (1 means no change) |
| Effective observations after dependence | 228 | Measured | |
| Observed across variants | — | Not measured | no variants uploaded |
| DSR at the trials used | 67.70% | Measured | PSR against E[max Sharpe] of 1 trial, not declared; computed with 1, the most favourable case |
| Trials that bring DSR to 0.5 | 2 | Measured | smallest 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.
| trials | Expected max Sharpe without skill | Deflated Sharpe (DSR) |
|---|---|---|
| 1 | 0 | 67.70% |
| 5 | 0.0910 | 23.17% |
| 20 | 0.1450 | 7.48% |
| 100 | 0.1930 | 1.92% |
Stationary bootstrap (per period)
Stationary block bootstrap, resamples: 500 · block 20
| Estimate | p5 | p50 | p95 | |
|---|---|---|---|---|
| Sharpe per period | 0.0350 Measured | -0.0660 Measured | 0.0349 Measured | 0.2727 Measured |
| Total return | 14.11% Measured | -52.88% Measured | 13.67% Measured | 130.15% Measured |
Declared out-of-sample
Not measured no out-of-sample start declared
Trading costs
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Reference cost (bps per side) | 0.5000 | Not measured | assumed slippage: no cost was declared; charged on top of the fees the report itemises |
| Break-even cost (bps per side) | -1.47 | Measured | extra cost per side, on top of the report's fees, at which the ledger nets to zero |
| Break-even cost multiple | -2.94 | Measured | |
| Break-even cost (per lot and side) | — | Not measured | the money per lot is given only for MetaTrader 4 and 5 reports, whose volume column is the platform's lots |
| Multiplier | bps per side | Gross | Cost | Net | Win rate | Trades |
|---|---|---|---|---|---|---|
| 0x | 0.00 | -551.03 | 193.50 | -744.53 | 71.80% | 344 |
| 1x | 0.50 | -551.03 | 446.83 | -997.86 | 70.93% | 344 |
| 2x | 1.00 | -551.03 | 700.17 | -1,251.20 | 70.06% | 344 |
| 3x | 1.50 | -551.03 | 953.50 | -1,504.53 | 68.02% | 344 |
In pips, by symbol
the whole history's break-even and reference costs per side, converted to pips at each symbol's median entry price; not a break-even computed from that symbol's trades alone
| Symbol | Median entry price | Break-even cost (pips per side) | Reference cost (pips per side) |
|---|---|---|---|
| EURUSD | 1.09986 | -1.62 Measured | 0.55 Not measured |
| GBPUSD | 1.28383 | -1.89 Measured | 0.64 Not measured |
Costs the report itemises
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Commission | -146.72 | Measured | signed total the report itemises; negative is a cost |
| Swap | -46.78 | Measured | signed 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)
| Year | Return | Max drawdown |
|---|---|---|
| 2025 | 56.09% | 0.00% |
| 2026 | -26.89% | -45.10% |
Rolling windows
| Window | Min return | Min drawdown | Share negative |
|---|---|---|---|
| 65 | -44.55% | -45.10% | 64.95% |
Red flags
- WarningExtreme jumps
2 single-period moves are extreme outliers; check for bad prints.
MAD_SPIKES
- WarningSize grows after losses (martingale)
After a loss the next trade is typically 4.25x the size used after a win.
MARTINGALE_SIZING
- WarningGrid or averaging down
135 of 344 trades (39%) were opened against an open position at a worse price.
GRID_AVERAGING
- WarningMany positions open at once
Up to 6 positions were open at once on one symbol.
MANY_CONCURRENT_POSITIONS
- WarningHidden floating drawdown
The curve is rebuilt from closed trades while positions overlapped; floating losses of open positions are not visible in it.
HIDDEN_FLOATING_DRAWDOWN
- WarningThe percentage gain does not reflect the money
The time-weighted gain is 14% while trading made -744.53 on 5,000.00 deposited; deposits and withdrawals shape the percentage.
GAIN_INFLATED_BY_FLOWS
- WarningDeposits in a deep drawdown
1 deposit arrived while the account was at least 20% below its peak.
DEPOSIT_DURING_DRAWDOWN
- WarningOpen loss the balance does not show
Open positions carried a floating loss of 24% of the balance when the statement was printed; the balance does not show it.
FLOATING_LOSS_AT_END
Audited files (sha256)
| report.csv | 4c6b8aad0b4eb3ba8dfd40bf8c00c69cd0c55068676adb90dd039844422e3f48 |
| Dataset digest | dfbddf979ee86906b37cad4babbb2a499371d846313f0c0ab384a4245626a003 |
2025-09-19 → 2026-09-16 · daily (trading days) · 258 observations · equity curve
Parse warnings
- report: contract size inferred from reported profit: EURUSD x100,000, GBPUSD x100,000
- report: deposits or withdrawals were removed: the curve is a flow-adjusted index that starts at the initial balance
- 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
File format: Myfxbook (CSV)
Figures the platform states Declared
| Floating P/L | -888.84 |
| End | 2026-09-16 |
| Start | 2025-09-22 |
| Symbol | EURUSD, GBPUSD |
What Rigor checked in the file Measured
| Reconstructed final balance | 3,655.47 |
| Balance cells that do not match | 0 |
| Largest balance difference | 0.00 |
Declared by the client
| Metric | Value | Evidence | Note |
|---|---|---|---|
| Trials | — | Not measured | not declared; computed with 1, the most favourable case |
| Cost per side (bps) | 0.00 | Not measured | default value, not declared |
| Out-of-sample start | — | Not measured | not declared |
| Benchmark applies | no | Declared | |
| Initial balance | — | Not measured | not declared |
| Whose strategy it is | I bought it or am about to buy / copy it | Declared |
No strategy description was written.
Not measured
- Declared out-of-sampleNo out-of-sample start declared.
- Supplied benchmarkNo benchmark uploaded.
- Combinatorially symmetric cross-validation (CSCV) overfittingNo variants uploaded.
Declared holdout seal
Not measured no out-of-sample start declared
Check it yourself
Download this sample's PDF and upload it to 'Check a report'. The page computes the file's SHA-256 fingerprint and says whether it left Rigor like this: with this PDF you will see that it is the sample report and that it was not edited. With the PDF or JSON of a client's report it also shows the date Rigor issued it and, when it is on record, its class.
sha256 of the audit JSON27422d2062fcd67eb158a664fee60b8277a9ddf291c4e93f4c07b400b1ee1fe7