The London Killzone is a time-of-day concept popularised in the smart-money / ICT trading community. It marks a specific window around the London/European session when price activity and volatility in FX tend to be elevated relative to the quieter hours before it. Traders use it as a contextual filter — a "when to pay attention" window — rather than a standalone buy/sell signal. This page explains how the window is defined, how traders layer their own entry, exit, and risk rules on top of it, and the common pitfalls. It is educational only: a time window is not predictive and trading involves risk of loss.
The "killzone" idea groups the trading day into session-based windows and argues that certain windows historically see more activity than others. The London Killzone refers to a period around the London/European session, when European bank and institutional desks come online and overlap for a time with the tail end of the earlier Asian session. In the smart-money / ICT community this window is commonly cited as roughly 02:00-05:00 New York time (US Eastern), which corresponds to about 07:00-10:00 London time — though exact boundaries vary between sources and shift around daylight-saving changes (UK and US DST transitions do not align perfectly, so for short periods each year the London/New York offset is four hours rather than five). Because the boundary is defined in a specific exchange timezone, it must be handled carefully on a chart whose own timezone may differ. Note that this window typically begins a little before the official London open (around 08:00 London / 03:00 ET), so "around the London open" is an approximate label, not an exact match.
The rationale traders give is mechanical, not mystical: more desks active means more order flow, which tends to show up as wider candle ranges and faster moves than the quieter hours that precede it. (Spot FX is decentralised and has no single consolidated volume figure, so any "volume" reference is usually tick volume from one feed, not true market-wide turnover — treat it as a rough proxy.) Many traders also track the high and low formed during the preceding Asian range, then watch how price interacts with those levels once the London window opens — for example a push beyond the Asian high or low that some describe as a "liquidity sweep" before a move develops.
Crucially, the killzone is a CONTEXT filter, not a complete trading system. It tells a trader WHEN they are willing to look for a setup, not WHAT the setup is or which direction to take. On its own it produces no entry signal. Traders combine it with a separate, explicit method — a break of structure, a return to a chosen level, a candlestick pattern, or similar — and use the window only to gate when those rules are allowed to fire. Nothing here is predictive: elevated average volatility is a tendency, not a guarantee, and any individual day can be quiet, choppy, or move against the expected idea.
//@version=6
// London Killzone — ILLUSTRATIVE SESSION MARKER (NOT a strategy / not a signal).
// The killzone is a time-of-day CONTEXT filter. It does not define entries,
// exits, or direction on its own, so this is a marker/detection script only.
// It shades the London window and tracks the prior Asian-session high/low so a
// trader can study how price interacts with those levels. Educational only:
// a time window is not predictive and trading involves risk of loss.
// Note: the developing Asian high/low updates intrabar in real time and only
// settles when the Asian session closes; treat it as a study aid and validate
// any time-based logic for look-ahead/repainting before trusting a backtest.
indicator("London Killzone (illustrative marker)", overlay = true)
// --- Inputs: windows are defined in a FIXED exchange timezone (default NY) ---
tz = input.string("America/New_York", "Session timezone")
londonSess = input.session("0200-0500", "London killzone (HHMM-HHMM)")
asianSess = input.session("2000-0000", "Asian range (HHMM-HHMM)")
shadeCol = input.color(color.new(color.blue, 85), "Killzone shade")
// --- Detect whether the current bar is inside each session, in tz ---
inLondon = not na(time(timeframe.period, londonSess, tz))
inAsian = not na(time(timeframe.period, asianSess, tz))
// --- Track the Asian range high/low, reset at each Asian-session start ---
var float asianHigh = na
var float asianLow = na
asianStart = inAsian and not inAsian[1]
if asianStart
asianHigh := high
asianLow := low
else if inAsian
asianHigh := math.max(nz(asianHigh, high), high)
asianLow := math.min(nz(asianLow, low), low)
// --- Visuals ---
bgcolor(inLondon ? shadeCol : na, title = "London killzone window")
plot(asianHigh, "Asian high", color.new(color.orange, 0), 1, plot.style_linebr)
plot(asianLow, "Asian low", color.new(color.teal, 0), 1, plot.style_linebr)
// Mark the first bar of the London window for visual reference only.
plotshape(inLondon and not inLondon[1], title = "London open",
style = shape.triangleup, location = location.belowbar,
color = color.new(color.blue, 0), size = size.tiny)It is most commonly cited in the smart-money / ICT community as roughly 02:00-05:00 New York time (US Eastern), which is about 07:00-10:00 London time. Boundaries vary between sources and shift around daylight-saving changes — and because UK and US DST do not switch on the same dates, the offset is occasionally four hours instead of five. Always define the window in a fixed exchange timezone and convert it correctly for your chart; timezone mistakes are the most common error.
No. It is a time-of-day context filter that tells a trader when to pay attention, not what to trade or which direction to take. On its own it gives no entry signal. Traders layer their own explicit, pre-defined trigger (such as a break of structure or a reaction at a level) on top of the window, and add their own stop-loss, target, and position-sizing rules.
Many traders watch how price interacts with the prior Asian range once the London window opens — for example a push beyond the Asian high or low. The illustrative marker tracks those levels purely so you can study that interaction. It is a detection/marker tool only; it does not generate signals and is not predictive.
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.