Sessions + Killzones [HermesCore]WHAT THIS INDICATOR DOES
Sessions + Killzones tracks the three desk sessions: Asia, London and New York, plus an optional custom window. While a session is open you see it as a live box. When it closes, its high and low become levels. Each level gets a simple 0 to 6 quality score, and from then on the script tracks what price does with it: swept, run, or held.
Every outcome feeds a statistics engine. It answers the core question of this script: what does the next session usually do with the levels of the previous one? Measured on your own chart, with sample sizes shown.
Killzones are the windows where institutional activity concentrates, around the desk opens. They render as background shading, set in New York time per ICT convention (Inner Circle Trader, the school this session vocabulary comes from). The dashboard shows which session and which killzone are active right now, each with a countdown. It also covers the daily window where nothing is open. I gave that window a name: the Dead Zone.
WHY IT IS DIFFERENT
Most session indicators draw boxes and stop. The few that score sessions usually hide how the score works. My rules are:
- A level gets its score at birth and the score never changes. It is built only from facts about how the session formed: range, volume, how clean the extreme was, and confluence with key levels. What happens later is shown by the lifecycle markings, not by changing the score.
- A sweep and a run are two different events. A wick beyond the level that closes back inside is a sweep. That is information: stops were taken and price came back. A close beyond the level plus a 0.1 ATR buffer (Average True Range, a standard volatility measure) is a run. The level is consumed.
- The statistics are counted honestly. A pair like "AS.H in LDN" only counts what happens while London is actually open. Levels that die before their judging session opens are not counted at all. The dashboard shows the n for every pair, so you always see how much evidence sits behind a percentage.
- Sessions are boxes, because their range matters: it becomes levels. Killzones are background shading, because only their timing matters. Two layers, two visual languages.
- Everything updates on confirmed bars only. No intrabar flicker. No levels that appear and disappear within the same candle.
HOW TO READ THE CHART
- Live session box: bright, thick border, session tag in the corner. Closed boxes fade into quiet history.
- Session levels: horizontal lines starting at the bar that set the extreme. A label like "LDN.H A S:5" reads: London session high, grade A, score 5. The abbreviations: AS is Asia, LDN is London, NY is New York, .H is the high, .L is the low.
- Gold color with a soft glow and larger text: the grade is A or S. Those are the premium sessions.
- Thick border on a level: it was swept. The label gets a "swept" suffix.
- Grey line without text: the level was run. It stays as quiet history, or you can have runs deleted.
- Levels expire when the next session of the same type closes. Yesterday's Asia high stops mattering once today's Asia delivers a fresh one.
- Killzone shading: vertical background bands for Asia, London, NY AM, and optionally London Close. All set in New York time.
- Dotted horizontal line: the midnight open at 00:00 New York.
- Dotted vertical lines to the right of price: the projected next open of each session, in session color. The chart version of the dashboard countdown. They respect the Weekdays Only filter.
- Neutral horizontal lines: previous day high and low (PDH, PDL) and previous week high and low (PWH, PWL), always from the last completed day and week. When a daily and a weekly level are equal they merge into one line with a combined label.
- Session midlines (CE, consequent encroachment, simply the middle of the range): dotted at the middle of each closed session, turning solid gold with a label like "AS CE" on the first touch. On by default.
- Killzone range lines: when a killzone closes, its high and low freeze as dashed lines in the killzone color. They carry no score, no lifecycle and no statistics. They are pure context and expire when the next killzone of the same type closes. On by default.
THE SCORE
Every component is measured at session close against the average of the last 20 sessions of the same type. Asia is always compared with Asia, London with London.
- Range: the session range is more than 1.2x its own average, +2
- Volume: the session volume is above its own average, +2
- Clean extreme: the high or low was set in the first half of the session and never revisited within 0.1 ATR, +1
- Key confluence: the level lies within 0.25 ATR of PDH, PDL, PWH or PWL, +1
Grades: S (6), A (5), B (4), C (3), D (0 to 2). There is no strength filter on purpose. A day produces at most six levels, which is scarce enough to show them all and let the grade speak.
SEQUENCE STATISTICS
Six pairs, following the natural hand-off: Asia levels are judged by London, London levels by New York, New York levels by the next Asia. For each pair the dashboard shows the swept share, run share, held share, and n, the number of judged levels behind those percentages. Held means the judging session closed without resolving the level. The optional custom session gets the full level lifecycle but stays out of these statistics.
This is regime information. If "AS.H in LDN" shows 36 percent swept while the lifetime base is 45, London is currently respecting Asia highs more than usual. An alert can warn you when a pair crosses 70 percent swept.
THE DEAD ZONE
Between the New York close and the Asia open, nothing is open. I named that window the Dead Zone, and it does real work here. Liquidity is thinnest there. A New York level that gets run inside the Dead Zone disappears before Asia ever gets to judge it. That is why the New York pairs always show a smaller n: n only counts levels that survived until their judging session opened. The dashboard names the Dead Zone when you are in it and counts down to the next open. Neutral shading, on by default, makes it visible on the chart. It is defined as "no session live", so it stays correct through every daylight saving (DST) change, and with Weekdays Only on, the whole weekend becomes one long Dead Zone.
DASHBOARD
Session now with a closing countdown, or Dead Zone with an opening countdown. Range and volume of each session against its own average, live sessions marked. The six pairs with percentages and n. Active level count, the lifetime swept versus run ratio, and Killzone now with its own countdown. Heat bars are proportional everywhere.
HOW I USE IT
My preferred timeframes, in order:
- 15m is the home base. Sessions are 30 plus bars wide, so the clean extreme component means something. The 09:30 New York open lands exactly on a bar. And the chart loads the most history, which gives the statistics their highest n.
- 5m is the execution frame. Sweeps and runs resolve on bar closes, so 5m shows the fight around a level in finer detail, and killzones become readable blocks. The cost is sample size: the statistics run on roughly a third of the history, so I treat those percentages as indicative and keep the regime read on 15m.
- 1h works but is the edge case. Hourly bars cut off the 09:30 New York open, and a six bar session makes the score coarse. Above 1h the script draws nothing on purpose.
On 15m I read the dashboard first: which session is live, how its range compares with average, and what the pair stats say about the current regime. Levels graded A or S from a session that expanded on volume are the ones I treat as real liquidity references, especially with key confluence. Then I watch how the next session treats them. A sweep, thick border, stops taken and price rejected, is a different trade than a clean run. I drop to 5m for execution around those levels and during killzones. I do not use this above 1h, and the script will tell you the same.
The way I think about it: session highs and lows are liquidity pools with a clock attached. Equal highs can form anywhere, but a session extreme tells you which desk made the level, when it stops being defended, and, through the statistics, what usually happens to it next.
SETTINGS THAT MATTER
- Sessions: four windows, each with its own IANA timezone (Asia/Tokyo, Europe/London, America/New_York by default). These are real timezone names, not UTC offsets, so daylight saving is handled automatically. The sessions simply follow their local clocks.
- Weekdays Only: off by default. Crypto trades the weekend, and weekend sessions usually grade D by themselves on thin range and volume. Turn this on and everything restricts to Monday through Friday: the weekend becomes one long Dead Zone, Friday New York levels wait for Monday Asia, and the countdown switches to a days format.
- Max Session Boxes: 42 keeps two weeks of session history for a zoomed-out view, 6 keeps two days for intraday focus.
- Run Levels Become: greyed history or deleted. Your choice of how loud the past is.
- Focus Fade: levels more than 6 ATR away from price render dimmed, gold glow included, so your eye goes to what is in play.
- Killzones: four windows in New York time, each with its own color. London Close is off by default. Killzone Range Lines adds the frozen high and low of each completed killzone as dashed lines.
- Timeframe guard: above 60 minutes the script draws nothing and says why. This is an intraday tool, and pretending otherwise would only produce misleading levels.
ALERTS
Session Opened, Session Closed, New A/S Session Level, Session Level Swept, Session Level Run, Killzone Started, Session Midline Tapped, Sweep Rate Threshold (a pair crossing 70 percent swept with n of at least 10).
CALCULATION DETAILS
- All state changes happen on confirmed bars. Sweeps, runs and statistics never repaint within a bar.
- Sessions use Pine session strings with full IANA timezone support. Without a day filter, Pine fires sessions on all seven days. That is correct for 24/7 markets, and it is what the Weekdays Only toggle changes.
- The rolling averages for range and volume use the last 20 completed sessions of the same type, calculated before the current session is added. A session is never compared with itself.
- A sweep needs a wick beyond the level with the close back inside the 0.1 ATR buffer. A run needs a close beyond the level plus the buffer. A first sweep marks the level, a later run still resolves it.
- Outcomes are only recorded while the judging session is open. A level that survives its judge counts as held at the judge's close.
- The statistics are computed from the bars your chart loads. They reload per chart timeframe. 15m loads the most history and gives the highest n. On 5m the same engine runs on roughly a third of the sample, treat those percentages as indicative.
HONEST LIMITATIONS
- The statistics describe the past, they do not predict. They tell you what this chart did over the loaded history, not what it will do next.
- n differs per pair by design. Levels run inside the Dead Zone leave the population before their judging session opens, which is why the New York pairs carry a smaller n. That is honest counting, not a bug.
- Statistics depend on the chart timeframe and the loaded history, so two timeframes show different percentages. Neither is wrong, they measure different samples.
- With Weekdays Only off, weekend sessions are part of the statistics. With it on, both n and the percentages change, because you measure a different market. Neither setting is the truth, they answer different questions.
- Scores compare a session with its own rolling history, so the first 20 sessions of each type on a fresh chart carry less reliable scores while the averages fill up.
- On 1h charts bar alignment can cut off session opens (there is no 09:30 bar on an hourly chart). That is part of why the timeframe guard sits at 60 minutes.
ORIGINALITY
The session and killzone concepts come from the public ICT vocabulary and from years of session-based intraday trading. Every line of code, the scoring system, the sweep versus run grammar, the judged-while-open statistics engine, the Dead Zone concept and the visual language are my own work.
Questions and suggestions are welcome in the comments. If the stats surprise you on your market, that is usually the most interesting place to start reading.
مؤشر Pine Script®






















