# ICT Silver Bullet on ES futures, 5-minute fair value gaps in the New York AM and PM windows - specification (RIP Backtest protocol v1.0 plus the 8 Oct 2026 rules)

Specification written and **frozen 2026-10-26 (approved by the owner the same day, draft 1 with the "before the sweep" correction made before it was shown: "Da, îngheață specificația ICT Silver Bullet pe ES așa cum e")**. Once frozen, any change of a rule is documented and treated as a separate test; bugs may be fixed. No swing, sweep, gap, signal or trade of this test has been computed.

## Why this test, where the rules come from, and what was looked at before
- **Chosen by the owner** on 2026-10-26 ("pe es"), from a summary he pasted of the **ICT Silver Bullet**, a time-based intraday model taught by the Inner Circle Trader (ICT, Michael J. Huddleston) and repeated by many blogs and videos. **The model:** trade only inside fixed one-hour windows (London 03:00-04:00, New York AM 10:00-11:00, New York PM 14:00-15:00, New York time); identify a draw on liquidity; wait for a **liquidity sweep** of a short-term high or low; then a **displacement** away from it that leaves a **fair value gap (FVG)**, on the 5-minute chart or lower; enter when price retraces into the gap; stop just beyond the gap's candle; target 2R or the opposing liquidity; require at least 10 points (index futures) to the next liquidity target; no setup inside the window, no trade.
- **Not one presenter's rules:** the summary cites several secondary sources that differ on details. The readings below are ours, fixed before any result. Where sources differ, we fix one reading and test at most two choices (the window and the target). The discretionary part (choosing the "draw on liquidity" from the higher timeframe) cannot be coded; we replace it with fixed levels and say so.
- **Market:** **ES**, chosen by the owner the same day. The NQ file was used on the same day by two related tests (below), and no smart-money test has been published on ES.
- **Looked at before (disclosed):**
  - **The change of character on NQ** (26 Oct 2026, buried, all four versions): a sweep of the overnight or previous day's high or low between 09:30 and 11:30, then a change of character with displacement, entry on the shift or the retest, stop behind the sweep. This test was chosen **after** that negative result on a related idea. The Silver Bullet differs in its fixed windows, its short-term liquidity, its entry in the fair value gap, its stop beyond the gap's candle and its 10-point rule.
  - **The first 5-minute candle with a fair value gap on NQ** (21 Oct 2026, buried) and **the order block and fair value gap on EUR/USD** (23 Oct 2026, buried): fair value gap entries.
  - **On ES:** the site has published RSI(2), Supertrend, Bollinger, Donchian, RSI divergence, MACD, golden crosses, Coppock, EMA 9/21, intraday momentum, the noise area breakout, VWAP strategies, Fibonacci scalping, the Initial Balance breakout, the opening gap fill and NR7 (all buried), and the owner tested **opening-range breakouts with fair value gaps on ES** in September 2026, before the protocol (no edge, unpublished).
  - Fair value gap and sweep ideas have therefore been tried several times; that raises the bar below.

## Instrument and data
- **ES** (E-mini S&P 500 futures), `ES_1min.csv` (NinjaTrader, back-adjusted continuous contract, 1-minute bars stamped at their close, New York clock, overnight session included), 2020-01-01 to **2026-09-25 17:00 New York**, the cut of every futures study; the exchange calendar of our other futures tests (`rb_lib.js`) for the regular session (09:30 to 16:00) and early closes. $50 a point, tick 0.25 ($12.50).
- **A usable day** has at least 300 regular-session minutes (150 on an early-close day); trades only on usable days.
- **5-minute bars** on the New York clock (stamped at their close: 09:35, 09:40, ...), built from the minutes that exist, overnight included.
- **Holes (rule 3):** `data_holes.json` (ES); a trade is dropped if a known hole overlaps the span from the start of the previous usable day's session (its levels) to the trade's exit, and every gate and verdict is recomputed without those trades.

## Definitions (fixed now; described for a long, a short is the mirror image)
- **Windows:** **AM** = the 5-minute bars stamped 10:05 to 11:00 (10:00 to 11:00 New York); **PM** = the bars stamped 14:05 to 15:00. The London window is not tested: it is taught mainly for forex, and ES is thin at that hour. A PM window that ends after an early close does not exist that day.
- **Short-term liquidity:** swing lows of the 5-minute bars, a bar whose low is strictly below the lows of the **2 bars before and the 2 bars after** it, known at the close of the 2nd bar after.
- **Sweep:** a 5-minute bar, stamped from **30 minutes before the window opens** (09:35 for AM, 13:35 for PM) to the end of the window, whose low trades **below the most recent known swing low**. The **sweep extreme** is the lowest low from that bar on.
- **Displacement and the fair value gap:** after the sweep, three consecutive 5-minute bars c1, c2, c3 with **low(c3) > high(c1)** (a bullish gap) and c2 closing up (close > open), where **c1 is the bar of the sweep extreme or later**, and **c3 closes inside the window**. The gap is the zone from high(c1) to low(c3). If price makes a new low below the sweep extreme before c3 closes, a later gap needs that new extreme as its sweep extreme (c1 at or after it).
- **Draw on liquidity (the fixed replacement for the discretionary choice):** for a long, the **nearest** of these levels above the entry: the regular session's high **before the sweep** (from 09:30 to the bar before the sweep bar; the displacement's own high is not resting liquidity), the overnight high (18:01 the previous evening to 09:30) and the previous usable day's regular-session high. **The 10-point rule:** no trade if that level is less than **10 points** above the entry, or if there is none.

## Entry, stop, targets
- **Entry:** a **buy limit at the top of the gap, low(c3)**, working from the minute after c3 closes **to the end of the window** (11:00 or 15:00); a minute opening below it fills at its open. Cancelled if price trades at or below the stop first, or reaches the target first.
- **Stop:** **one tick below the low of c1**, the first candle of the gap ("just beyond the candle of the fair value gap"). No trade if the entry is at or below the stop. **R** = entry to stop, in points.
- **Targets (two choices):** **2R** from the entry, or **LIQ** = the draw on liquidity level itself. Stop checked first inside a minute; a level a minute opens beyond fills at the open; on the fill minute of the limit only the stop is checked. A trade still open closes at the **session close** (16:00 or the early close).
- **One trade per window per day:** the first gap of the window whose limit fills; a newer gap replaces an unfilled order (the newer one counts from the minute after its c3). Longs and shorts; a long and a short setup in the same window: whichever order fills first.

## Variants (the only ones tested)
**SB-AM-2R, SB-AM-LIQ, SB-PM-2R, SB-PM-LIQ** (window x target). Each variant trades only its own window. All long and short.

## Costs
- **$30.76 per round trip per contract** (commission $5.76 plus one tick, $12.50, of slippage on each fill), as in all our ES tests; also shown at 1.5x and 2.5x. Results in dollars per contract and in R. With stops at the edge of a 5-minute gap, costs may be a large share of R; that is part of what the test measures.

## Periods, gates, control
- **Periods (by trade date), as in our other ES tests:** development 2020 to 2023; validation 2024-01 to 2025-03; holdout 2025-04 to 2026-09-25 (**already used** by the earlier ES tests).
- **Six gates per variant** (net dollars per contract): validation profit factor >= 1.2; at least 50 trades in each period; development **t >= 2.5** (four variants; fair value gap and sweep ideas have been tried several times); above the 95th percentile of 500 runs of the matched control; positive without the 10 best trades; holdout net positive (flagged used). Fewer than 30 trades in all: Inconclusive.
- **Matched control (moved entries):** every real trade moved, all together, by one random circular offset of whole usable days (at least 5% of them), entered at the open of the first minute of the new day's session at or after the same time, same direction, the same stop distance in points, the same target distance in points, the same session-close exit and costs. 500 runs, seeds 1000 + run. Statistic: average net dollars per trade.
- **Also reported (descriptive, no gates):** how many windows had a sweep, a gap after it, a gap that passed the 10-point rule and a fill; why setups were not traded; the win rate with its Wilson interval; exits by reason; median risk in points and its cost in R; long and short; by year; for LIQ, which level was the target and how far it was in R.

## Engine and self-test (before the run)
New engine `sb_lib.js` (the existing futures loader and calendar), independent re-implementation `sb_ref.js`, `sb_selftest.js` that must pass before any result is printed: hand-made days for the swings and ties, a sweep before and inside the window, a sweep extreme that moves, a gap before the extreme (not valid), a gap whose c3 closes after the window, c2 closing down (no displacement), the 10-point rule (9.75 and 10 points), each of the three liquidity levels as the nearest, the limit filled at its level and through a gap, cancelled by the stop or the target, expired at the window end, a newer gap replacing an unfilled order, a long and a short in the same window, stop and target in one minute, the session-close exit, an early close (no PM window); the reference matched trade by trade on the real data for all four variants; the control at offset 0 reproducing the real entries.

## Before the article
Results go to the owner first: all four variants, every gate, long and short, by year, the exits, the cost in R, and the descriptive counts. One article, published only with the owner's agreement, linked to the change of character (NQ) and order block (EUR/USD) posts. Working title for search: "ICT Silver Bullet Strategy Backtest: 6 Years of ES Futures".

## Reading the result
"Buried" or "Inconclusive" mean a statistically convincing edge was not demonstrated; neither is proof that none exists. One market, one data source, our fixed reading of a model that its teachers apply with discretion (above all, the choice of the draw on liquidity).
