OPEN-SOURCE SCRIPT
Actualizado ICT SIlver Bullet Trading Windows UK times

🎯 Purpose of the Indicator
It’s designed to highlight key ICT “macro” and “micro” windows of opportunity, i.e., time ranges where liquidity grabs and algorithmic setups are most likely to occur. The ICT Silver Bullet concept is built on the idea that institutions execute in recurring intraday windows, and these often produce high-probability setups.
🕰️ Windows
London Macro Window
10:00 – 11:00 UK time
This aligns with a major liquidity window after the London equities open settles and London + EU traders reposition.
You’re looking for setups like liquidity sweeps, MSS (market structure shift), and FVG entries here.
New York Macro Window
15:00 – 16:00 UK time (10:00 – 11:00 NY time)
This is right after the NY equities open, a key ICT window for volatility and liquidity grabs.
Power Hour
Usually 20:00 – 21:00 UK time (3pm–4pm NY time), the last trading hour of NY equities.
ICT often refers to this as another manipulation window where setups can form before the daily close.
🔍 What the Indicator Does
Draws session boxes or shading: so you can visually see the London/NY/Power Hour windows directly on your chart.
Macro vs. Micro time frames:
Macro windows → The ones you set (London & NY) are the major daily algo execution windows.
Micro windows → Within those boxes, ICT expects smaller intraday setups (like a Silver Bullet entry from a sweep + FVG).
Guides your trade selection: it tells you when not to hunt trades everywhere, but instead to wait for price action confirmation inside those boxes.
🧩 How This Fits ICT Silver Bullet Trading
The ICT Silver Bullet strategy says:
Wait for one of the macro windows (London or NY).
Look for liquidity sweep → market structure shift → FVG.
Enter with defined risk inside that hour.
This indicator essentially does step 1 for you: it makes those high-probability windows visually obvious, so you don’t waste time trading random hours where algos aren’t active.
It’s designed to highlight key ICT “macro” and “micro” windows of opportunity, i.e., time ranges where liquidity grabs and algorithmic setups are most likely to occur. The ICT Silver Bullet concept is built on the idea that institutions execute in recurring intraday windows, and these often produce high-probability setups.
🕰️ Windows
London Macro Window
10:00 – 11:00 UK time
This aligns with a major liquidity window after the London equities open settles and London + EU traders reposition.
You’re looking for setups like liquidity sweeps, MSS (market structure shift), and FVG entries here.
New York Macro Window
15:00 – 16:00 UK time (10:00 – 11:00 NY time)
This is right after the NY equities open, a key ICT window for volatility and liquidity grabs.
Power Hour
Usually 20:00 – 21:00 UK time (3pm–4pm NY time), the last trading hour of NY equities.
ICT often refers to this as another manipulation window where setups can form before the daily close.
🔍 What the Indicator Does
Draws session boxes or shading: so you can visually see the London/NY/Power Hour windows directly on your chart.
Macro vs. Micro time frames:
Macro windows → The ones you set (London & NY) are the major daily algo execution windows.
Micro windows → Within those boxes, ICT expects smaller intraday setups (like a Silver Bullet entry from a sweep + FVG).
Guides your trade selection: it tells you when not to hunt trades everywhere, but instead to wait for price action confirmation inside those boxes.
🧩 How This Fits ICT Silver Bullet Trading
The ICT Silver Bullet strategy says:
Wait for one of the macro windows (London or NY).
Look for liquidity sweep → market structure shift → FVG.
Enter with defined risk inside that hour.
This indicator essentially does step 1 for you: it makes those high-probability windows visually obvious, so you don’t waste time trading random hours where algos aren’t active.
Notas de prensa
🎯 Purpose of the IndicatorIt’s designed to highlight key ICT “macro” and “micro” windows of opportunity, i.e., time ranges where liquidity grabs and algorithmic setups are most likely to occur. The ICT Silver Bullet concept is built on the idea that institutions execute in recurring intraday windows, and these often produce high-probability setups.
🕰️ Adjusted Windows
London Macro Window
03:03 - 09:30 UK time
This aligns with a major liquidity window after the London equities open settles and London + EU traders reposition.
You’re looking for setups like liquidity sweeps, MSS (market structure shift), and FVG entries here.
New York Macro Window 1
14:50 – 115:10 UK time
New York Macro Window 2
15:50 -16:10 UK time
This is right after the NY equities open, a key ICT window for volatility and liquidity grabs.
Power Hour
Usually 20:15 – 20:45 UK time, the last trading hour of NY equities.
ICT often refers to this as another manipulation window where setups can form before the daily close.
🔍 What the Indicator Does
Draws session boxes or shading: so you can visually see the London/NY/Power Hour windows directly on your chart.
Macro vs. Micro time frames:
Macro windows → The ones you set (London & NY) are the major daily algo execution windows.
Micro windows → Within those boxes, ICT expects smaller intraday setups (like a Silver Bullet entry from a sweep + FVG).
Guides your trade selection: it tells you when not to hunt trades everywhere, but instead to wait for price action confirmation inside those boxes.
🧩 How This Fits ICT Silver Bullet Trading
The ICT Silver Bullet strategy says:
Wait for one of the macro windows (London or NY).
Look for liquidity sweep → market structure shift → FVG.
Enter with defined risk inside that hour.
This indicator essentially does step 1 for you: it makes those high-probability windows visually obvious, so you don’t waste time trading random hours where algos aren’t active.
Notas de prensa
//version=5indicator("ICT Silver Bullet Windows (UK Time, Clean)", overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=200)
// ===== Inputs =====
tz = input.string("Europe/London", "Timezone")
shadeAreas = input.bool(true, "Shade Windows (boxes)")
glowLines = input.bool(true, "Glow Vertical Lines")
fillAlpha = input.int(85, "Shade Opacity (0-100 → more transparent)", minval=0, maxval=100)
showMIC = input.bool(false, "Show Manipulation Window (18:10–18:40 UK)?")
// Colours
colLondon = input.color(color.new(color.teal, 0), "London SB Color")
colNY = input.color(color.new(color.orange, 0), "New York SB Color")
colPwr = input.color(color.new(color.green, 0), "Power Hour Color")
colMic = input.color(color.new(color.blue, 0), "Manipulation Window Color")
// ===== Sessions (UK local 24h) =====
sess_LDN = "1000-1100" // London Silver Bullet
sess_NY = "1500-1600" // New York Silver Bullet
sess_PWR = "2015-2045" // Power Hour
sess_MIC = "1810-1840" // Manipulation Window
// ===== Helpers =====
inSession(sess) => not na(time(timeframe.period, sess + ":1234567", tz))
startOfSession(sess) => inSession(sess) and not inSession(sess)[1]
endOfSession(sess) => not inSession(sess) and inSession(sess)[1]
// Draw vertical line (with optional glow)
drawVLine(idx, col) =>
_main = line.new(idx, 1e10, idx, -1e10, xloc=xloc.bar_index, extend=extend.none, color=col, width=2)
if glowLines
_ = line.new(idx, 1e10, idx, -1e10, xloc=xloc.bar_index, extend=extend.none, color=color.new(col, 70), width=5)
_main
// Label at top
placeTopLabelAt(midIdx, yTop, txt, col) =>
label.new(midIdx, yTop, txt, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_down, textcolor=color.white, color=color.new(col, 40), size=size.small)
// Box helper
makeOrUpdateBox(b, leftIdx, rightIdx, c) =>
_b = b
if na(_b)
_b := box.new(leftIdx, 1e10, rightIdx, -1e10, xloc=xloc.bar_index, bgcolor=color.new(c, fillAlpha), border_color=color.new(c, 85))
box.set_left(_b, leftIdx), box.set_right(_b, rightIdx), box.set_bgcolor(_b, color.new(c, fillAlpha)), box.set_border_color(_b, color.new(c, 85))
_b
// Safe delete
deleteBox(b) =>
if not na(b)
box.delete(b)
// ===== State =====
var int ldnStart = na
var int nyStart = na
var int pwrStart = na
var int micStart = na
var float ldnHigh = na
var float nyHigh = na
var float pwrHigh = na
var float micHigh = na
var box boxLDN = na
var box boxNY = na
var box boxPWR = na
var box boxMIC = na
// ===== LONDON SB =====
if startOfSession(sess_LDN)
ldnStart := bar_index
ldnHigh := high
drawVLine(bar_index, colLondon)
if shadeAreas
boxLDN := makeOrUpdateBox(boxLDN, ldnStart, bar_index, colLondon)
if inSession(sess_LDN)
ldnHigh := na(ldnHigh) ? high : math.max(ldnHigh, high)
if shadeAreas and not na(boxLDN)
boxLDN := makeOrUpdateBox(boxLDN, ldnStart, bar_index, colLondon)
if endOfSession(sess_LDN)
drawVLine(bar_index, colLondon)
mid = math.round((ldnStart + bar_index) * 0.5)
placeTopLabelAt(mid, ldnHigh, "London SB (10:00–11:00)", colLondon)
deleteBox(boxLDN), boxLDN := na
ldnStart := na, ldnHigh := na
// ===== NEW YORK SB =====
if startOfSession(sess_NY)
nyStart := bar_index
nyHigh := high
drawVLine(bar_index, colNY)
if shadeAreas
boxNY := makeOrUpdateBox(boxNY, nyStart, bar_index, colNY)
if inSession(sess_NY)
nyHigh := na(nyHigh) ? high : math.max(nyHigh, high)
if shadeAreas and not na(boxNY)
boxNY := makeOrUpdateBox(boxNY, nyStart, bar_index, colNY)
if endOfSession(sess_NY)
drawVLine(bar_index, colNY)
mid = math.round((nyStart + bar_index) * 0.5)
placeTopLabelAt(mid, nyHigh, "New York SB (15:00–16:00)", colNY)
deleteBox(boxNY), boxNY := na
nyStart := na, nyHigh := na
// ===== POWER HOUR =====
if startOfSession(sess_PWR)
pwrStart := bar_index
pwrHigh := high
drawVLine(bar_index, colPwr)
if shadeAreas
boxPWR := makeOrUpdateBox(boxPWR, pwrStart, bar_index, colPwr)
if inSession(sess_PWR)
pwrHigh := na(pwrHigh) ? high : math.max(pwrHigh, high)
if shadeAreas and not na(boxPWR)
boxPWR := makeOrUpdateBox(boxPWR, pwrStart, bar_index, colPwr)
if endOfSession(sess_PWR)
drawVLine(bar_index, colPwr)
mid = math.round((pwrStart + bar_index) * 0.5)
placeTopLabelAt(mid, pwrHigh, "Power Hour (20:15–20:45)", colPwr)
deleteBox(boxPWR), boxPWR := na
pwrStart := na, pwrHigh := na
// ===== MANIPULATION WINDOW =====
if showMIC
if startOfSession(sess_MIC)
micStart := bar_index
micHigh := high
drawVLine(bar_index, colMic)
if shadeAreas
boxMIC := makeOrUpdateBox(boxMIC, micStart, bar_index, colMic)
if inSession(sess_MIC)
micHigh := na(micHigh) ? high : math.max(micHigh, high)
if shadeAreas and not na(boxMIC)
boxMIC := makeOrUpdateBox(boxMIC, micStart, bar_index, colMic)
if endOfSession(sess_MIC)
drawVLine(bar_index, colMic)
mid = math.round((micStart + bar_index) * 0.5)
placeTopLabelAt(mid, micHigh, "Manipulation (18:10–18:40)", colMic)
deleteBox(boxMIC), boxMIC := na
micStart := na, micHigh := na
Script de código abierto
Siguiendo fielmente el espíritu de TradingView, el creador de este script lo ha publicado en código abierto, permitiendo que otros traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la publicación de este código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.
Script de código abierto
Siguiendo fielmente el espíritu de TradingView, el creador de este script lo ha publicado en código abierto, permitiendo que otros traders puedan revisar y verificar su funcionalidad. ¡Enhorabuena al autor! Puede utilizarlo de forma gratuita, pero tenga en cuenta que la publicación de este código está sujeta a nuestras Normas internas.
Exención de responsabilidad
La información y las publicaciones que ofrecemos, no implican ni constituyen un asesoramiento financiero, ni de inversión, trading o cualquier otro tipo de consejo o recomendación emitida o respaldada por TradingView. Puede obtener información adicional en las Condiciones de uso.