Backtest methodology and assumptions

Orders are run by hand, not by an automated engine, so this page is the rulebook the runner actually follows - every rule your run used, in one place, checked and ticked before you pay.

Version 2026-10-19. The version you ticked at checkout is recorded against your order and is the one that governs it.

Time and data

Every clock time - yours and ours - is America/New_York (US Eastern), including the daylight-saving changes. A bar is labelled by its open time.

A range you write as 18:00–19:00 ET includes both ends: on 1-minute bars, that is every bar from the one opening at 18:00 through the one opening at 19:00 - 61 bars. A sweep of the range is counted only from the bar after the range closes: for 18:00–19:00, that is 19:01 onward. (This reverses the previous version's rule, which excluded the end minute - see the header above.)

Data is CME futures from Databento. Available history: NQ and ES - June 2, 2016 through August 27, 2026. MNQ and MES - from their launch in May 2019 through August 27, 2026. GC - September 29, 2016 through September 29, 2026. All dates are trading dates.

A run cannot ask for more history than that - the order form and builder cap the years you can choose to what is actually covered for the symbol you picked, and the server refuses a request that would reach further back regardless.

Roll rule: front month by volume, switching at the 18:00 ET session open. Prices are not back-adjusted. No trade is ever held through a contract change: a position still open at the close of the last session before a roll is exited at that session's final bar close, and nothing is reopened on the new contract.

Gold uses the same method as NQ and ES: the front contract is the one with the highest volume in the prior session, rolling forward only. Prices are not back-adjusted.

Gold is ordered on its own, never together with an index.

Each session trades one contract month. NQ and ES roll independently, so on a few sessions a year (11 of 2,648 so far) they are on different contract months from each other - relevant only to a run that trades both at once.

Costs and contract specifications

Default commission, per contract per side - you can change it on the order: ES $2.00, NQ $2.00, GC $2.00, MES $0.60, MNQ $0.60. (From this version the ES and NQ default is $2.00; earlier versions used $2.50, and an order keeps the commission it was saved with.) Costs are applied after the run and do not move fills, stops or targets.

Contract specifications: ES $50 per point, tick 0.25 = $12.50. MES $5 per point, tick 0.25 = $1.25. NQ $20 per point, tick 0.25 = $5.00. MNQ $2 per point, tick 0.25 = $0.50. GC $100 per point, tick 0.10 = $10.

Direction and signals

Where a setup is built on a time range and what happens at its edge (Power of Three, an opening-range breakout, or the general "time range + edge event" bias), direction is set by the first side swept or broken and does not change for that setup - a second sweep of the other side does not flip it.

IFVG: a candle body closes through the far edge of the gap; that close is the signal.

CISD (change in state of delivery): after a run of consecutive same-direction candles, the signal fires on the first later candle whose body closes back through the open of that run's first candle. A bearish CISD watches a run of bullish candles and fires on a close below the first one's open; a bullish CISD is the exact mirror, watching a bearish run and firing on a close above its first candle's open.

Order block: the last candle of the opposite colour before the displacement move, taken as its body - open to close.

Breaker: an order block that price closes through. It then acts from the other side.

NDOG / NWOG (new day / new week opening gap): the gap between the 16:59 ET close and the 18:00 ET open (daily), and between Friday's 16:59 ET close and Sunday's 18:00 ET open (weekly).

IFVG and CISD both signal on a candle's close, so the earliest either can be acted on is the next candle - entry is that next bar's open.

IFVG and CISD signalling on the same bar: the one whose resulting stop is wider is taken.

Liquidity (a target)

Levels are ICT-style 3-candle fractals on the timeframe you chose for this target, not necessarily the timeframe the run itself trades on.

Short-term: a high with a lower high on the candle immediately before it and the candle immediately after it (a low is the exact mirror - a lower low on both sides).

Intermediate: a short-term high with a lower short-term high on the short-term fractal immediately before it and the one immediately after it (mirrored for lows).

Long-term: an intermediate high with a lower intermediate high on the intermediate fractal immediately before it and the one immediately after it (mirrored for lows).

"Closest" means the nearest untouched level of the chosen tier in the trade's direction, at the time of entry. "N levels away" counts untouched levels of that tier outward from entry, starting at 1 for the nearest.

Two-stage exits (T1/T2)

When a run has both a first and a second target, the first target's own rule (closing a percentage of the position, moving the stop to breakeven, or both) fires exactly once, the moment the first target's price is touched - never partially, never on a close-based test. The remaining position then runs under the stop as it stands at that moment (moved to breakeven if that was chosen) toward the second target, under the same fill rules as a single-target run.

Stops and targets

A swing-based stop (previous swing, or the entry array's own swing) sits at the extreme of the move between the bias event and the signal bar, plus any offset you chose beyond it.

Targets fill on touch, at the exact price - not on a close beyond it. "No trade if the target is reached before an entry" is judged by the same touch rule: if the target price touches before the entry condition is met, the setup is not taken.

If the entry bar opens beyond the stop or the target, the trade is skipped - the report lists it as skipped, not as a loss or a win it never really had the chance to be.

The stop fills at the stop price plus slippage, or at the bar's own open if price gapped through it rather than touching it first.

Entry window and max hold

The entry window - how long a setup keeps waiting for its entry condition after the trigger - counts from the close of the trigger bar itself, whether the trigger is a time range's sweep/break or a written bias event. A setup whose window runs out with no entry taken is skipped, the same as one whose entry bar gapped past the stop or target.

Max hold - how long a position stays open once filled - counts from the fill, not from the trigger. "Flat at a time" exits at that time the same way an ordinary time stop does (see below); "N minutes"/"N bars" counts from the fill's own bar.

Same-bar ties

When the stop and the target both fall inside the same bar on any timeframe above one minute, one-minute bars decide which was actually hit first. If they still land in the same one-minute bar, the stop is taken. This applies to every bar, including the entry bar itself, and these trades are always included in the count - never excluded as ambiguous.

Time stops and session

A time stop at 17:00 means the exit is at the close of the 16:59 bar - the last bar that finishes before the stated time, not the bar that starts at it.

On a holiday or an early close, the shortened session is what runs. If a setup's own range window did not trade that day at all, the day is skipped rather than forced into a partial or invented range.