OPEN-SOURCE SCRIPT
Actualizado

ICT SIlver Bullet Trading Windows UK times

355
🎯 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.
Notas de prensa
🎯 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.

🕰️ 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=5
indicator("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

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.