How it works

You already have a strategy. This is the part where you find out what it would have done, and exactly what had to be assumed to find out.

  1. 1

    Describe your rules

    Plain language is fine. Pick a template if your setup is a common one - previous day high/low, opening range breakout, moving-average cross - or write out something custom in your own words.

  2. 2

    We run it on real market history

    Your rules execute against actual CME price data, with commission and slippage modeled, and contract rolls handled as forced exits rather than price gaps that could invent a signal.

  3. 3

    You get the numbers and the assumptions

    Every trade, every figure, and a written list of exactly what the run assumed and where those assumptions could be wrong. What the numbers mean for your trading is your call to make.

What a report looks like

Figures, the full trade list, and the assumptions behind them. We do not add an interpretation, because the interpretation is yours to make.

/app/reports/es-orb-30m

Opening range breakout, 30-minute range

ES · 5-minute bars · Jan 2019 - Dec 2024 · 1,284 trades

Win rate

41.3%

Profit factor

1.18

Expectancy

$23.40

Max drawdown

−$8,940

Sharpe, net of costs

0.61

DateSideEntryExitResult
2024-11-04Long5728.255741.00+$637.50
2024-11-05Short5766.505772.75−$312.50
2024-11-06Long5892.755889.25−$175.00
2024-11-07Long5931.005948.50+$875.00

Four of 1,284 trades shown. Full list included with every report, plus a CSV export.

What this run assumed

  • Entries filled at the open of the bar after the signal, not at the signal price.
  • Commission $2.50 per side; slippage one tick per fill.
  • Where a stop and a target both fall inside one bar, the stop is taken first.
  • Four contract rolls in this window. Open positions were forced flat at each roll and reopened on the new contract.
  • Range length was not varied. A different range length would produce a different result.

Where a run can go wrong

These are the things we look for on Custom and Deep Analysis, and the reason a person reads your rules before the compute runs.

Rules that quietly look ahead

A rule written as "enter when the day closes above the opening range" needs the close to exist before it can fire. A template tool will run it and hand back a number. We flag it and ask what you meant.

Fills that would not have happened

Limit orders filled at prices that only printed once, stops assumed to fill at exactly the stop price, both a stop and a target hit inside the same bar. Each one has an assumption behind it, and we write down which we used.

A sample too thin to mean much

Fourteen trades over eight months is a number, not a pattern. We put the sample size next to every figure so it is impossible to miss.

Parameters fitted to the past

A setup tuned until the backtest looked right will keep looking right on that same window. We report how much the result moves when the parameters move.

How contract rolls are handled

A futures contract expires, and the trading moves to the next month. The price of the new contract is usually not the price of the old one, and that difference is not a market move - nobody could have traded it.

Continuous-contract data chains the months together but leaves those differences in the series. Run a backtest straight over that and a roll can trigger an entry, or take out a stop, on a price change that never happened.

We store roll dates as explicit events. Raw, unadjusted prices are what the simulation executes against, and at a roll the position is forced flat and reopened on the new contract, the way it would be in a real account. Every report tells you how many rolls fell inside your date range.

Charts may show a back-adjusted series so the line is continuous to look at. That series is for display only. It is never what the simulation trades.

Markets we test

ES

E-mini S&P 500

CME · quarterly roll

MES

Micro E-mini S&P 500

Rolls with ES

NQ

E-mini Nasdaq-100

CME · quarterly roll

MNQ

Micro E-mini Nasdaq-100

Rolls with NQ

More CME products are on the way. Forex is not supported.

Ready to check yours?

Describe the rules you are already trading and we will take it from there.