Markets › Futures · ES futures, 5-minute
ICT Silver Bullet Strategy Backtest: 6 Years of ES Futures, AM and PM Windows
One hour, one setup: a liquidity sweep, a displacement that leaves a fair value gap, an entry on the retrace. The ICT Silver Bullet is one of the most followed intraday models in smart money trading. We fixed its rules and ran them on every ES session from 2020 to 2026.
Buried · No proven edgeThe right hour was not enough.
Variants tried: 4 · Passed every gate: 0 · Best: 2 of 6 · Holdout opened: yes (already used)
Short answer: not in our test. The ICT Silver Bullet (a liquidity sweep, then a fair value gap entry inside the New York AM or PM window, 2R or a liquidity target, at least 10 points to the target), traded mechanically on ES futures from 2020 to 2026, ended between -$16 and +$14 a trade after costs in its four versions. No version showed a proven edge.How much costs took here, compared across all 62 of our tests →
00The verdict in three lines
- Does the ICT Silver Bullet strategy work? Not in our backtest on ES futures. In the New York AM window with a 2R target it took 673 trades from 2020 to 2026 and ended at -$3 a trade after costs; the other three versions ended between -$16 and +$14.
- Before costs it made a little (+$15 to +$45 a trade), and the cost of a round trip on a stop of a few points took about all of it. The win rate was 33.6% to 37.4%, just above the one in three a 2R target needs before costs.
- All four versions lost in the most recent period and were negative without their 10 best trades. Buried, no proven edge, like the change of character on NQ and the order block on EUR/USD.
01The ICT Silver Bullet: the time windows and the four steps
ICT Silver Bullet time (New York): three one-hour windows, London 03:00 to 04:00, New York AM 10:00 to 11:00 and New York PM 14:00 to 15:00. Inside a window:
- 1. Draw on liquidity: pick the target, a higher-timeframe high or low where stops rest (previous session highs and lows, equal highs or lows).
- 2. Liquidity sweep: price takes a recent short-term low (for a buy) or high (for a sell).
- 3. Displacement: a fast, impulsive move away from the swept level that leaves a fair value gap (FVG) on the 5-minute chart or lower.
- 4. Entry: on the retrace into the gap. Stop just beyond the gap's candle; target 2R or the opposing liquidity.
ICT Silver Bullet rules usually add two more: at least 10 points (index futures) to the next liquidity target, and no trade if no setup forms inside the window. The model is taught by the Inner Circle Trader and repeated by many blogs and videos with small differences; we tested the common version, not one presenter's.
02How we made the rules mechanical
- Windows: AM (gaps completing 10:05 to 11:00) and PM (14:05 to 15:00), each a separate version. The London window was not tested: it is taught mainly for forex, and ES is thin at that hour.
- Sweep: from 30 minutes before the window, a 5-minute bar trades beyond the most recent 5-minute swing (2 bars on each side). The sweep extreme follows price while it keeps going.
- Displacement and gap: three bars after the sweep extreme, the middle one closing in the direction of the trade, the third one not overlapping the first, completing inside the window.
- Draw on liquidity: the nearest of the session high before the sweep, the overnight high and the previous day's high above the entry (lows for a sell); at least 10 points away, or no trade.
- Trade: a limit order at the edge of the gap until the window closes, cancelled if price reaches the stop or the target first; stop one tick beyond the gap's first candle; target 2R or the liquidity level; out at the session close otherwise. One trade per window per day; a newer gap replaces an unfilled order.
These definitions were fixed and dated before any swing or gap was computed (sb_spec.md). The discretionary choice of the draw on liquidity cannot be coded; the fixed levels above replace it.
03How we tested it
ES (E-mini S&P 500 futures), NinjaTrader 1-minute history with the overnight session, back-adjusted, January 2020 to 25 September 2026: 1,737 usable sessions (1,679 with a full PM window; early closes have none). Costs: $30.76 a round trip per contract (commission plus one tick of slippage on each fill), as in all our ES tests, with 1.5 and 2.5 times that shown too. Periods: 2020 to 2023, 2024 to March 2025, and a holdout from April 2025 already used by our earlier ES tests; because fair value gap and sweep ideas have been tried several times on this site (and this test was chosen after the change of character test on NQ failed), the first-period bar is t ≥ 2.5. Control: every trade moved to another day at the same minute, same direction and the same stop and target distances, 500 times. Engine check: 15 groups of hand-made days and an independent re-implementation that matched every trade of all four versions; deliberate errors put into the code (the 10-point rule, a look-ahead in the swings, a gap before the sweep extreme, a newer gap not replacing the order) were each caught (sb_selftest_result.txt).
04ICT Silver Bullet backtest results
| Variant | Version | Trades | Win rate (95% range) | Gross per trade | Net per trade | Net total, 1 contract | Profit factor | Verdict |
|---|---|---|---|---|---|---|---|---|
| SB-AM-2R | New York AM window (10:00 to 11:00), target 2R | 673 | 37.0% (33% to 41%) | +$28 | -$3 | -$2,026 | 0.99 | Buried |
| SB-AM-LIQ | New York AM window, target the nearest liquidity | 669 | 35.7% (32% to 39%) | +$45 | +$14 | +$9,309 | 1.04 | Buried |
| SB-PM-2R | New York PM window (14:00 to 15:00), target 2R | 569 | 37.4% (34% to 41%) | +$15 | -$16 | -$9,090 | 0.93 | Buried |
| SB-PM-LIQ | New York PM window, target the nearest liquidity | 569 | 33.6% (30% to 38%) | +$32 | +$1 | +$723 | 1.01 | Buried |
Cumulative net dollars per contract by month. * Holdout already used before this test.
Silver Bullet strategy win rate: how the trades ended
| Variant | Hit the target | Stopped | Closed at the session close | Median risk | Median target | Median minutes held | Windows with a trade |
|---|---|---|---|---|---|---|---|
| SB-AM-2R | 33.6% | 62.1% | 4.3% | 9.50 pts (+$475) | 2.0 R | 33 | 38.7% |
| SB-AM-LIQ | 27.4% | 63.5% | 9.1% | 9.50 pts (+$475) | 2.5 R | 38 | 38.5% |
| SB-PM-2R | 28.6% | 58.7% | 12.7% | 6.25 pts (+$313) | 2.0 R | 30 | 33.9% |
| SB-PM-LIQ | 14.4% | 61.7% | 23.9% | 6.00 pts (+$300) | 4.0 R | 43 | 33.9% |
With a 2R target a trade needs to win a little more than one time in three to break even before costs; the AM version won 37.0%. The liquidity targets were usually further away (a median of 2.5 R in the AM window and 4.0 R in the PM window), so they were hit less often.
05What costs do to a Silver Bullet trade
| Variant | Cost per trade | Before costs | $30.76 (base) | x1.5 | x2.5 |
|---|---|---|---|---|---|
| SB-AM-2R | 0.075 R | +$28 | -$3 | -$18 | -$49 |
| SB-AM-LIQ | 0.076 R | +$45 | +$14 | -$1 | -$32 |
| SB-PM-2R | 0.115 R | +$15 | -$16 | -$31 | -$62 |
| SB-PM-LIQ | 0.116 R | +$32 | +$1 | -$14 | -$45 |
A stop one tick beyond the first candle of a 5-minute gap is a few points on ES: a median of 9.5 points (+$475) in the AM window and 6.25 (+$313) in the PM window. One round trip is then 0.075 R to 0.115 R, close to what the setup made before costs. At one and a half times our cost the four versions range from -$31 to -$1 a trade.
06Silver Bullet or random entry?
| Variant | Trades | Real net per trade | Random days, median | Random, 5th to 95th | Percentile (95 needed) |
|---|---|---|---|---|---|
| SB-AM-2R | 673 | -$3 | -$28 | -$73 to +$27 | 81.6 |
| SB-AM-LIQ | 669 | +$14 | -$27 | -$71 to +$23 | 92.2 |
| SB-PM-2R | 569 | -$16 | -$30 | -$64 to -$0 | 79.2 |
| SB-PM-LIQ | 569 | +$1 | -$33 | -$67 to +$4 | 94.2 |
The control places every trade on another day at the same minute, same direction and same stop and target distances. The same small stops lost on random days (a median of about -$29 a trade), so the real setups did better than most random runs, between the 79.2th and the 94.2th percentile, but none reached the 95th.
07How often does a Silver Bullet setup form?
| Window | Windows | With a sweep (long / short side) | Gaps rejected: target under 10 points | Gaps rejected: no target beyond the entry | Valid gaps | Windows with a valid gap |
|---|---|---|---|---|---|---|
| AM | 1,737 | 1,465 / 1,496 | 1,069 | 351 | 1,585 | 910 (52.4%) |
| PM | 1,679 | 1,283 / 1,379 | 820 | 105 | 1,264 | 769 (45.8%) |
A sweep of a recent 5-minute swing happened in most windows. A valid setup, a gap after the sweep with a liquidity level at least 10 points away, formed in about half of them; the 10-point rule removed the largest number of gaps. Not every setup became a trade: some orders were never reached before the window closed, others were cancelled by the stop or the target first.
08By period and by year
| Variant | 2020 to 2023 (trades) | 2024 to Mar 2025 (trades) | Holdout* Apr 2025 to Sep 2026 (trades) | t, first period | PF, second period |
|---|---|---|---|---|---|
| SB-AM-2R | +$15,714 (399) | -$6,662 (104) | -$11,079 (170) | 0.92 | 0.83 |
| SB-AM-LIQ | +$19,938 (397) | -$2,537 (104) | -$8,093 (168) | 1.15 | 0.93 |
| SB-PM-2R | -$8,427 (328) | +$6,627 (106) | -$7,290 (135) | -0.76 | 1.31 |
| SB-PM-LIQ | +$455 (329) | +$2,096 (107) | -$1,829 (133) | 0.04 | 1.09 |
| Year | SB-AM-2R net (trades) | SB-AM-LIQ net (trades) | SB-PM-2R net (trades) | SB-PM-LIQ net (trades) |
|---|---|---|---|---|
| 2020 | +$12,281 (101) | +$3,942 (99) | +$1,549 (87) | +$6,669 (90) |
| 2021 | -$2,164 (87) | +$1,399 (87) | -$2,357 (75) | -$2,582 (75) |
| 2022 | +$8,641 (121) | +$21,602 (119) | -$6,761 (93) | -$4,618 (90) |
| 2023 | -$3,043 (90) | -$7,005 (92) | -$858 (73) | +$986 (74) |
| 2024 | -$900 (76) | +$1,012 (76) | -$249 (78) | -$2,387 (78) |
| 2025 | -$27,046 (110) | -$14,178 (109) | +$1,961 (87) | +$6,555 (86) |
| 2026 (to 25 Sep) | +$10,206 (88) | +$2,536 (87) | -$2,375 (76) | -$3,900 (76) |
* The holdout months were already used by our earlier ES tests.
The PM window with a 2R target had a good validation period (a profit factor of 1.31 on 106 trades), after losing in 2020 to 2023 and before losing again from April 2025. That is the pattern of noise around zero, not of an edge.
09Silver Bullet, change of character and order block
Three smart money models, three markets, each made mechanical with its rules frozen before the run. The order block and fair value gap on EUR/USD broke even before costs and lost 0.291 R a trade after them. The change of character on NQ, with a wide stop behind the sweep, made +$6 a trade before costs and -$10 after. The Silver Bullet on ES made a little more before costs, and paid more for its tight stop. In all three, the sweep-and-shift sequence did not pick better moments than chance by enough to survive costs and our gates.
10The gates
| Variant | Trades | 1. PF ≥ 1.2 in validation | 2. ≥ 50 trades in each period | 3. t ≥ 2.5 on development | 4. Above the 95th percentile of the moved-entry control | 5. Positive without the 10 best trades | 6. Holdout net positive (already used) |
|---|---|---|---|---|---|---|---|
| SB-AM-2R | 673 | fail | pass | fail | fail | fail | fail |
| SB-AM-LIQ | 669 | fail | pass | fail | fail | fail | fail |
| SB-PM-2R | 569 | pass | pass | fail | fail | fail | fail |
| SB-PM-LIQ | 569 | fail | pass | fail | fail | fail | fail |
| Variant | Cause | Gates failed | Verdict |
|---|---|---|---|
| SB-AM-2R | Costs | 1, 3, 4, 5, 6 | Buried |
| SB-AM-LIQ | Fragile | 1, 3, 4, 5, 6 | Buried |
| SB-PM-2R | Costs | 3, 4, 5, 6 | Buried |
| SB-PM-LIQ | Fragile | 1, 3, 4, 5, 6 | Buried |
The data-gap check removed 6, 6, 5, 6 trades; no verdict changed. Costs (the 2R versions): a small gross gain turned into a loss. Fragile (the liquidity-target versions): slightly positive overall, but negative without the 10 best trades and in the latest period. Together: no proven edge. This does not show that no trader can use the model with judgement; it shows that these mechanical rules, traded in every window, did not.
TWhat this shows, and what to take into your own tests
What the results show
- The ICT Silver Bullet, made mechanical on ES futures from 2020 to September 2026, made a little before costs in all four versions (+$15 to +$45 a trade) and about nothing after them (-$16 to +$14).
- The stop at the edge of a 5-minute fair value gap is small (a median of 9.5 points in the AM window, 6.25 in the PM window), so the $30.76 round trip cost 0.075 R to 0.115 R a trade: about what the setup made before costs.
- All four versions lost in the most recent period and were negative without their 10 best trades; none beat random days by the margin we require.
What remains unknown
- The discretionary part: choosing the "draw on liquidity" from the higher timeframe and the market narrative. We replaced it with fixed levels (the session, overnight and previous day highs and lows) and a 10-point minimum.
- Other readings: 1-minute gaps, an entry at the middle of the gap (consequent encroachment), the London window, other stops, other markets (NQ, forex).
- Whether a trader who skips the "ugly" setups does better. A backtest of every setup cannot answer that; a forward record of the trades actually taken could.
Why it was buried
None of the four versions passed the development bar (t 1.15 at best, 2.5 needed) or the random-entry control, all four lost in the most recent period, and every one turned negative without its 10 best trades. Before costs the setup made a little; at a stop of a few points, costs took almost all of it.
What you can apply to your own tests
- Divide your round-trip cost by your typical stop before trading a tight-stop model: here it was 8 to 12 per cent of the risk on every trade.
- Test the time window on its own. A window limits when you trade; it does not by itself make the trades better than the same trades at the same minute on other days.
- Write down which setups you skip and why, before you skip them. Otherwise "I only take the clean ones" cannot be checked, by you or anyone else.
A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.
FAQCommon questions
Does the ICT Silver Bullet strategy work?
Not in our backtest on ES futures. The New York AM version with a 2R target took 673 trades from 2020 to 2026 and ended at -$3 a trade after costs; before costs it made a little, and the cost of a round trip on a stop of a few points took about all of it.
What is the ICT Silver Bullet time?
Three one-hour windows, New York time: London 03:00 to 04:00, New York AM 10:00 to 11:00 and New York PM 14:00 to 15:00. Setups are taken only inside a window. We tested the AM and PM windows on ES.
What is the Silver Bullet strategy win rate?
In our ES test, 33.6% to 37.4% of trades won, depending on the window and the target: with a 2R target, just above the one in three needed to break even before costs.
What are the ICT Silver Bullet rules?
Inside the window: a liquidity sweep of a recent short-term high or low, a displacement that leaves a fair value gap, an entry on the retrace into the gap, a stop beyond the gap candle, a target of 2R or the opposing liquidity, and at least 10 points (index futures) to that target; no setup in the window, no trade.
How was the ICT Silver Bullet backtested?
On ES 1-minute data with the overnight session, built into 5-minute bars, with fixed definitions of the swings, the sweep, the gap and the liquidity levels written down before any result, one contract and $30.76 a round trip, and rules written and dated before the data was run, costs included on every trade, results split into development, validation and holdout periods, a random-entry control as the benchmark, and every variant reported. Read the protocol.
11Check our arithmetic
sb_spec.md
sb_lib.js · sb_ref.js · sb_selftest.js · sb_run.js
control_audit_lib.js · em_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rb_lib.js · rsi2_protocol.js
sb_selftest_result.txt · sb_results.txt · sb_summary.json
Code provenance: our own code, written from the model as commonly taught and the readings in the specification. We have no connection with ICT or any course.
12Data notes
Source. NinjaTrader ES 1-minute history, back-adjusted continuous contract, on the New York clock, overnight session included; prices differ from a single contract month by the roll adjustments, not in the size of intraday moves. Known gaps in the file are listed in our data audit and never filled. Fills: limit orders at their level, or at a minute's open if it opened through it; stops and targets at their level or the minute's open if it gapped through; one tick of slippage per fill is in the cost.
13Corrections
27 Oct 2026, navigation: added a link to the new guide comparing trading costs across all our tests (until 28 Oct 2026 this note wrongly gave the date as 22 Oct). No result changed. 27 Oct 2026, navigation: added a link to the new guide comparing trend following and mean reversion across all our tests (until 28 Oct 2026 this note wrongly gave the date as 22 Oct). No result changed.
+More tests and guides
- Change of character strategy
- Order block strategy
- Fair value gap strategy
- Gap fill strategy
- Trend following vs mean reversion: this test next to the others of its style
- Free prop firm challenge calculator
- What all the backtests found so far
- The backtesting protocol
- How to backtest a trading strategy without fooling yourself
- Backtesting glossary