How a futures backtest works here

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. Start from a preset 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 the commission and slippage you set on your order applied, and each report stating which. Contract rolls are 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.

/sample-report

The Turtle trading rules — Richard Dennis and William Eckhardt's 1983 system

MNQ · Daily signals, one-minute execution · 2013 to 2026 · 202 trades

Trades

202

Terminal equity

$53,642

Max drawdown

−81.59%

Peak open risk

73.4%

Mean units

3.12 of 4

ClosedEntry ruleSideUnitsQtyResult
2026-08-0420-day breakoutShort44−$6,602
2026-08-0355-day breakoutShort44−$6,597
2026-06-0955-day breakoutLong44+$14,204
2026-06-0520-day breakoutLong44+$30,226

The last four of 202 to close, on the study’s two entry rules run on one account. “Units” is how many of the four position-sized blocks the pyramid filled and “Qty” is the contracts those came to; results are dollars on a $100,000 account. The full list is in the report.

What this run assumed

  • Entries, added units and exits are filled at the price level that triggered them, on the one-minute bar that touched it.
  • No commission and no slippage were applied.
  • Where a stop and an exit level fall inside the same one-minute bar, the stop is taken.
  • Front month by volume, switching at the 18:00 ET session open; prices are not back-adjusted. A roll forces the position flat and reopens it on the new contract.
  • This sample was run under our earlier roll method (positions reopened on the new contract). Orders placed now follow the current rule: no trade is held through a contract change.
  • 202 trades over a 13.6-year window of daily bars, 2013-01-07 to 2026-08-17.

16 more, including what the run cannot tell you and the corrections the study made to itself.

Where a run can go wrong

These are the things we look for in every run, 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

GC

Gold futures

COMEX · quarterly roll

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.