Methodology

The 12-gate standard.

Every strategy on this site goes through the same twelve gates, in three layers. A failed veto ends the test: we don't average a fatal bug against good statistics. The standard is written down before the tests, and it changes only with a dated note.

How to read a result

  • R. Results are in multiples of the risk taken on a trade. A trade that loses its full stop is −1R; +0.10R a trade means ten cents earned per dollar risked, on average, after costs.
  • t-statistic. The average result divided by its standard error. Around 2 is what luck produces now and then; a single pre-registered idea must reach 3.43, and a parameter search must beat the best result that noise produces over the same number of tries.
  • True clock. Every data file is checked against a scheduled event it must contain (an exchange open, an economic release, a settlement) before any rule is run. Several of our biggest "edges" were a clock off by a minute or by hours.
  • Costs. We use the venue's own bid/ask where the file has it, the real spread otherwise, and we always report the result at twice the cost too.
  • Discovery, Validation, Holdout. Data is split in time. Ideas are formed and selected on Discovery only. Validation is opened once for frozen candidates. The holdout is opened once, at the end, for the one test that can approve a strategy.
  • Receipts. Each page lists the script and saved output behind every number. Numbers that appear in a chart are recomputed from the trade list when the page is built, and the build fails if they disagree with the text.
Layer 1

Is the backtest real?

Absolute veto. These gates look for bugs and physical limits, not for statistical evidence, so one failure ends the test.

G10

Data clock and leakage

Is every input known at the moment of the decision?

We check the time zone and bar-stamping of every file against an independent source, rerun the rule at −3 to +3 minutes, test every filter at lag 0, 1 and 2 days, and check that merges do not duplicate rows. An effect at lag 0 that vanishes at lag 1 is look-ahead.

Catches: The most common source of spectacular backtests: information from the future.

Failed here: Machine-learning intraday forecaster, Opening Volatility Stretch on DAX, Bund and Nasdaq, USD/JPY Tokyo fix fade

G9

Adverse fills

What is left after pessimistic fills?

Stop entries that gap through the trigger fill at the open, not at the trigger. A stop and a target touched in the same bar count as a loss. No entries in the first minute of the cash session. Spreads widen around midnight and news. The edge must stay above +0.05R per trade and must not live in the gap entries (gap dependency of 0.15 or less).

Catches: Profits that exist only because the simulator filled at prices nobody could trade.

Failed here: ICT Silver Bullet (10:00-11:00 New York), Momentum pullback to the 9 and 21 EMA, Opening Volatility Stretch on DAX, Bund and Nasdaq, Intraday momentum into the close

G7

Engine parity

Does an independent engine produce the same trades?

The fast research simulator is replayed through an event-driven engine on the same bars. The target is a 100.00% identical trade list. This is code parity, not data parity; data is G10's job.

Catches: Simulator bugs: look-ahead in indicators, wrong order of fills.

Layer 2

Is the edge more than luck?

G12, one pre-registered holdout, is the only statistical veto. G1 to G5 and the regime test G6 are always reported; G6 vetoes only a regime that is significantly negative. A strategy with no edge after costs never reaches G12, because there is nothing to confirm.

G1

Multiple-testing bar

Is the result better than the best of all the variants that were tried?

Every variant tested raises the bar. A single pre-registered idea must reach t 3.43; a parameter search must beat the maximum that pure noise produces over the same number of variants (deflated Sharpe ratio, or a family-wise null built by shuffling the calendar).

Catches: Data mining: the best of many backtests looks good by chance.

Failed here: ICT Silver Bullet (10:00-11:00 New York), Momentum pullback to the 9 and 21 EMA, Machine-learning intraday forecaster, Weak-day reversal (lower high, lower low), Opening Volatility Stretch on DAX, Bund and Nasdaq, We mined 10,248 strategy rules on a GPU, 60/40 rebalancing pressure, Intraday momentum into the close, USD/JPY Tokyo fix fade

G2

Placebo and drift

Does the rule beat random entries, a flipped rule and the market's own drift?

The same engine is run on random entry days, on the opposite signal and on always-long or always-short. A real rule must beat all of them; a long-only rule on an index that rose tenfold must beat simply holding the index.

Catches: Results that are just the market going up, or an engine that makes money from noise.

Failed here: ICT Silver Bullet (10:00-11:00 New York), Machine-learning intraday forecaster, We mined 10,248 strategy rules on a GPU, Intraday momentum into the close, USD/JPY Tokyo fix fade

G3

Overfitting probability

How often does the chosen variant fail out of sample when the data are re-split?

Combinatorial purged cross-validation (CPCV) gives a probability of backtest overfitting (PBO). When the test uses one sequential Discovery, Validation and Holdout split instead, the page says so.

Catches: Parameters picked to fit one particular history.

G5

Cost and slippage frontier

Does it survive realistic costs, and twice those costs?

Results are computed at the real spread and commission of the venue, then at 2x and 3x. We report the break-even cost. Most intraday ideas on retail CFDs die here.

Catches: Edges smaller than the spread.

Failed here: ICT Silver Bullet (10:00-11:00 New York), Momentum pullback to the 9 and 21 EMA, Machine-learning intraday forecaster, Opening Volatility Stretch on DAX, Bund and Nasdaq, 60/40 rebalancing pressure, Intraday momentum into the close

G6

Regime stability

Does it hold across 2008, 2011, 2015-16, 2020, 2022 and recent years?

Per-regime t-statistics and a test of equal means. A strategy is not required to win in every regime, but a regime with t below −2 is a veto.

Catches: Strategies that only worked in one market environment.

Failed here: Momentum pullback to the 9 and 21 EMA, Intraday momentum into the close

Layer 3

Can it survive a prop-firm account?

Absolute veto, for strategies meant for funded accounts. The account rules are simulated event by event, not at the end of the day.

G11

Prop-firm accounting

Would the account survive the firm's real rules, event by event?

Daily loss limits reset at the firm's server midnight, floating losses carried over midnight, trailing drawdowns, consistency rules and the largest safe risk per trade, simulated trade by trade.

Catches: Strategies that are profitable on paper but breach a daily limit.

G8

Prop challenge Monte Carlo

Does the edge raise the chance of passing a challenge above what luck alone gives?

Thousands of simulated challenges built from blocks of real trading days, at half the measured edge and at zero edge on the same paths. The difference in pass rate must be positive with 95% confidence, and the expected value after fees must be positive.

Catches: Strategies that pass challenges only as often as a coin flip would.

Failed here: Opening Volatility Stretch on DAX, Bund and Nasdaq

What no standard can check for you

  • Whether you will trade the rule the same way with real money at stake.
  • Whether your broker's or prop firm's execution matches our data, and whether their rules change after our test.
  • A strategy that passes everything is still a historical result. The forward record is the next test, and it is slow: a small edge needs hundreds of trades before it can be told apart from luck.

The prop challenge simulator

The free simulator applies the third layer of this standard, prop-firm accounting and the challenge Monte Carlo, to your own trade history, together with a luck test deflated for the number of strategies you tried. It runs entirely in your browser.

Standard version 2026-10-18. Last updated 19 October 2026.