OPEN-SOURCE SCRIPT
已更新 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.
版本注释
🎯 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.
版本注释
//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
开源脚本
本着TradingView的真正精神,此脚本的创建者将其开源,以便交易者可以查看和验证其功能。向作者致敬!虽然您可以免费使用它,但请记住,重新发布代码必须遵守我们的网站规则。
免责声明
这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。
开源脚本
本着TradingView的真正精神,此脚本的创建者将其开源,以便交易者可以查看和验证其功能。向作者致敬!虽然您可以免费使用它,但请记住,重新发布代码必须遵守我们的网站规则。
免责声明
这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。