The ICT Silver Bullet is a time-based intraday concept popularized by the "Inner Circle Trader" community. It focuses on a fixed one-hour window each session, looks for a liquidity sweep followed by a Fair Value Gap (FVG), and uses that gap as a reference area for entries. This page explains how traders define and interpret the setup and shows a validated Pine Script v6 example so you can study the logic on a chart. It is educational only — nothing here predicts price, and trading carries the risk of loss. "ICT" and "Inner Circle Trader" are referenced descriptively; any related trademarks belong to their respective owners.
The Silver Bullet is built around a recurring intraday time window rather than a traditional indicator crossover. The common version centers on the New York session — for example a one-hour window such as 10:00–11:00 ET — though the exact window is a parameter traders choose. The idea traders describe is that during this window the market may make a short-term high or low that "takes liquidity" (runs stops just beyond a recent swing) and then reverses. This is a description of a recurring observation, not a rule that price must follow.
After a liquidity sweep, traders watch for a Fair Value Gap: a three-bar imbalance where the first and third bars do not overlap, leaving a price "gap" that the middle bar created. In a bullish FVG the high of the bar two periods back is below the low of the current bar; in a bearish FVG the low of the bar two periods back is above the high of the current bar. The FVG is treated as an imbalance — an area the market may revisit before continuing — not a forecast that it will.
The plain-English sequence most traders describe is: (1) wait for the defined time window to open, (2) note a liquidity sweep of a recent high or low, (3) identify the FVG that forms in the direction opposite to the sweep, and (4) treat the FVG as a reference zone for a possible entry, with a stop beyond the swept extreme and a reference target at the next pool of liquidity (a prior swing high or low). None of these steps guarantee a move; they are simply a framework for organizing observations. Because the setup hinges on a specific clock window and on multi-bar pattern detection, it is unusually easy to code in a way that secretly looks ahead or repaints — exactly the kind of thing the ForexCodes Strategy Validator is designed to catch. Paste your version into the Validator (or try it free) to confirm it is clean before you read anything into a backtest.
//@version=6
strategy("ICT Silver Bullet (Educational)", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Educational example only. Not financial advice and not predictive.
// Backtest results are illustrative; past behavior does not indicate future behavior.
// --- Inputs ---
sessionWindow = input.session("1000-1100", "Silver Bullet window (exchange time)")
swingLen = input.int(10, "Swing lookback (bars)", minval=2)
useLongs = input.bool(true, "Allow longs")
useShorts = input.bool(true, "Allow shorts")
// --- Time window (uses chart/exchange timezone) ---
inWindow = not na(time(timeframe.period, sessionWindow))
// --- Reference swing levels (shifted so they are fully formed) ---
swingHigh = ta.highest(high, swingLen)[1]
swingLow = ta.lowest(low, swingLen)[1]
// --- Liquidity sweeps (price runs beyond a prior, completed swing) ---
sweptLow = low < swingLow
sweptHigh = high > swingHigh
// --- Fair Value Gaps (3-bar imbalance) ---
bullFVG = high[2] < low
bearFVG = low[2] > high
// --- Entry conditions: confined to the window and acted on closed bars only ---
longSignal = useLongs and inWindow and sweptLow and bullFVG and barstate.isconfirmed
shortSignal = useShorts and inWindow and sweptHigh and bearFVG and barstate.isconfirmed
// --- Reference stop/target levels (target = next prior swing pool) ---
longStop = swingLow
longTarget = swingHigh
shortStop = swingHigh
shortTarget = swingLow
if (longSignal and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=longStop, limit=longTarget)
if (shortSignal and strategy.position_size >= 0)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=shortStop, limit=shortTarget)
// Flatten when the window closes (strictly intraday)
if (not inWindow and inWindow[1])
strategy.close_all(comment="Window close")
// --- Visuals ---
bgcolor(inWindow ? color.new(color.blue, 90) : na, title="SB window")
plotshape(longSignal, title="Long", style=shape.triangleup,
location=location.belowbar, color=color.teal, size=size.tiny)
plotshape(shortSignal, title="Short", style=shape.triangledown,
location=location.abovebar, color=color.maroon, size=size.tiny)It is a fixed one-hour window during the trading day that the setup focuses on, most commonly framed around the New York session (for example 10:00–11:00 ET). The exact hour is a parameter you choose. Because it depends on the clock, the single most important thing is making sure your chart's exchange timezone matches the window you intend — otherwise every signal is shifted.
A Fair Value Gap (FVG) is a three-bar imbalance where the first and third bars leave a price gap that the middle bar created. In Pine v6 terms, a bullish FVG is high[2] < low (a gap up) and a bearish FVG is low[2] > high (a gap down). Traders treat the gap as an area price may revisit. It is a way to mark imbalance, not a prediction that price will fill it.
We can't and won't make profit or win-rate claims — nothing about this concept is predictive, and trading carries the risk of loss. It is a framework for organizing observations about time, liquidity, and imbalance. Whether any rule set behaves a certain way for a given market depends on testing, costs, and risk management, and even a clean backtest is illustrative only because past behavior does not indicate future behavior.
Use shifted, fully formed reference levels, act only on closed bars (barstate.isconfirmed), and keep any higher-timeframe requests on standard lookahead-off settings. Then paste your script into the ForexCodes Strategy Validator — it is built to flag look-ahead bias, repainting, and intent mismatches before you read anything into a backtest. You can also try it free from any page.
Educational & software only — not financial advice, not a recommendation to trade. Backtests are illustrative; past performance does not predict future results. Trading involves substantial risk of loss.