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.
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.
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.
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.
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.
Figures, the full trade list, and the assumptions behind them. We do not add an interpretation, because the interpretation is yours to make.
Win rate
41.3%
Profit factor
1.18
Expectancy
$23.40
Max drawdown
−$8,940
Sharpe, net of costs
0.61
| Date | Side | Entry | Exit | Result |
|---|---|---|---|---|
| 2024-11-04 | Long | 5728.25 | 5741.00 | +$637.50 |
| 2024-11-05 | Short | 5766.50 | 5772.75 | −$312.50 |
| 2024-11-06 | Long | 5892.75 | 5889.25 | −$175.00 |
| 2024-11-07 | Long | 5931.00 | 5948.50 | +$875.00 |
Four of 1,284 trades shown. Full list included with every report, plus a CSV export.
What this run assumed
These are the things we look for on Custom and Deep Analysis, and the reason a person reads your rules before the compute runs.
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.
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.
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.
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.
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.
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.
Describe the rules you are already trading and we will take it from there.