Isolated Scroll Container

1. Precision Session Breakout Description

Tracks Asia, London, and New York session ranges with live and final volume profiles, marks Point-of-Control levels, detects post-session breakouts of the session's high/low, projects 3 expanding deviation targets, and tallies breakout/target-hit performance on a live dashboard

1.1 Indicator Concept

This indicator applies the same self-contained logic to three independent trading sessions - Asia, London, and New York - each configured with its own UTC time window. For each session it draws a box spanning the session's evolving high/low range, builds a volume profile of that range (both live during the session and finalized once the session closes), and marks the Point of Control (the price level with the most traded volume). Once the session ends, the indicator watches for price to break above the session's high or below its low; on a confirmed breakout it fires a marker, draws a tether line back to the session box, and projects three progressively farther deviation targets (multiples of the session's own range) that extend forward until price reaches them. A running dashboard tallies, per session, how many bullish breakouts, bearish breakouts, and target hits have occurred since the chart started loading.

  • One function, three independent instances: all the drawing and tracking logic lives in a single reusable function that is called once per session (Asia/London/NY); each call keeps its own separate set of persistent state (arrays, box/line/label references, hit flags) because Pine's var keeps a distinct instance per call site, not a single shared instance across calls.
  • Two volume profiles per session: a lightweight "live" profile is recalculated from scratch every bar while the session is open (to keep the Point of Control marker up to date in real time), and a separate, more complete profile is calculated once, after the session closes, to draw the final stepped volume-profile shape.
  • Deviation targets scale with the session's own range: rather than fixed pip/ point distances, all three target levels are the session's high-low range multiplied by a user-set factor, so targets automatically adapt to how wide or narrow that particular session turned out to be.
  • All session times are UTC-only: the session inputs are explicitly documented as requiring UTC time windows - there is no timezone offset control, so aligning the three sessions to real-world killzones requires converting them to UTC beforehand.

1.2 Indicator Features

  • Three Independently Configurable Sessions: Asia, London, and New York each have their own on/off toggle, UTC time window, and color theme.
  • Session Range Box: a dotted-border box that grows in real time to track each session's evolving high and low while it's active.
  • Live Volume Profile & POC (toggleable per session): during the session, a continuously-updating Point of Control box, line, and label show where the most volume has traded so far.
  • Final Volume Profile (toggleable per session): once the session closes, a stepped polyline outline of the complete session's volume distribution is drawn across the session box, with the POC bin highlighted.
  • Breakout Signals (toggleable): triangle markers (with session-name text) below or above the breakout bar when price closes beyond the completed session's high or low, plus a dashed tether line back to the level that was broken.
  • Deviation Targets (toggleable): three dotted lines (marked "|", "||", "|||") projecting forward from the breakout point at user-defined multiples of the session's range, each extending until price reaches it, then freezing in place.
  • Statistics Dashboard (toggleable, position/size configurable): a live table with one row per active session, showing cumulative counts of bullish breakouts, bearish breakouts, and how many times each of the three deviation targets has been hit since the chart loaded.
  • Volume Profile Resolution: a shared "Profile Rows" setting controls how many price bins every session's volume profile (live and final) is divided into.

1.3 How to Use the Indicator

  • Treat each session's high/low as a liquidity range that price is statistically likely to return to and eventually break, in the classic "killzone" sense - the boxes make each session's actual traded range visually explicit rather than something you have to eyeball from the raw candles.
  • Use the POC as a fair-value anchor within the session - price trading away from the POC after the session closes can be read as moving away from where most of that session's volume actually agreed on value.
  • Watch the breakout triangle plus the first deviation target together - the triangle confirms the range was actually broken (not just wicked), and the "|" target gives the first, most conservative profit-taking or continuation-confirmation level.
  • Read the dashboard's hit-rate ratios as a session-specific edge check - since counts are tracked separately per session, you can compare, for example, how often London breakouts reach the second deviation target versus New York breakouts on the same symbol.
  • Double check your session times are already in UTC before relying on the boxes lining up with real killzone hours - a session window entered in local exchange time instead of UTC will silently shift every box, POC, and breakout calculation.

1.4 How the Indicator Works

Inputs & Their Roles

  • asia_on / lon_on / ny_on ("Show [Session]", default: true for all): master on/off toggle for each session's entire box, profile, breakout, and target pipeline.
  • asia_ses / lon_ses / ny_ses ("[Session] Time (UTC 0)", defaults: 0000-0800 / 0800-1500 / 1300-2000): the UTC session window, in Pine's input.session format.
  • asia_col / lon_col / ny_col ("Session Color", defaults: pink / cyan / orange): the shared color theme used for that session's box, volume profile, POC, breakout markers, tether line, and deviation targets.
  • asia_vp_on / lon_vp_on / ny_vp_on ("Show Volume Profile", default: true): toggles the final stepped-polyline volume profile drawn once the session closes.
  • asia_poc_on / lon_poc_on / ny_poc_on ("Show POC Line", default: true): toggles both the live, continuously-updating POC box/line during the session and the final POC line/label drawn once it closes.
  • asia_dev1/2/3, lon_dev1/2/3, ny_dev1/2/3 ("Dev 1/2/3 Multiplier", Asia defaults: 0.5 / 1 / 1.5, London & NY defaults: 0.5 / 1.5 / 2.0): multipliers applied to the session's own high-low range to compute the three deviation target distances beyond the breakout level.
  • vp_rows ("Profile Rows (Resolution)", default: 24, range 10-100): how many equal-height price bins every session's volume profile - live and final, across all three sessions - is divided into.
  • poc_col ("POC Color", default: red): shared fill/line color for every session's Point of Control box, line, and label.
  • bo_on ("Show Session Breakouts", default: true): toggles the breakout triangle markers and their dashed tether lines (independent of whether deviation targets are shown).
  • dev_on ("Show Deviation Targets", default: true): toggles the three projected target lines/labels drawn after a breakout.
  • dash_on ("Show Statistics Dashboard", default: true) / dash_pos ("Dashboard Position", default: "Top Right") / dash_size ("Dashboard Size", default: normal): toggles and positions/sizes the performance table.

Main Logic Flows

🎯 Flow 1: What You See

  • Up to three colored session boxes (Asia/London/NY) that grow while their session is active, an optional live-updating POC marker inside each while it's open, a final stepped volume-profile outline once each session closes, breakout triangles with tether lines when price later breaks that session's range, up to three expanding dotted deviation-target lines per breakout, and a dashboard tallying breakout/target counts per session.

🏗️ Flow 2: One Function, Three Independent Sessions

  • All the logic below lives in a single function, fn_draw_session() , called three times - once each for Asia, London, and New York - each call passing that session's own inputs. Because every state variable inside the function is declared with Pine's var keyword, each of the three calls gets its own permanently separate copy of that state (its own history arrays, box/line/ label object references, hit flags, and so on) - the three sessions never read or overwrite each other's data despite sharing one function body.

📦 Flow 3: Session Box & Live Data Collection

  • in_session is true whenever the current bar falls inside that session's UTC window; the moment it turns true (a new session begins), any un-hit deviation lines/labels from the previous occurrence of this session are deleted, the running high/low/volume arrays are cleared, and a fresh dotted-border session box is created starting at the current bar.
  • While still inside the session, every bar's high/low/volume is pushed into that session's arrays, the box's top/bottom/right are stretched to the running high/low, and (if the POC toggle is on) a lightweight real-time volume profile is recalculated from the accumulated data to update a live POC box/line/label.

📊 Flow 4: Volume Profile Binning (shared technique, live & final)

  • Both the live and final profiles use the same proportional-overlap method: the session's high-low range is sliced into vp_rows equal bins, and each recorded bar's volume is split across every bin its own high-low range overlaps, weighted by what fraction of that bar's range falls inside each bin. The bin with the highest accumulated volume becomes the Point of Control.

🏁 Flow 5: Session Close - Finalizing the Box & Profile

  • The instant the session's UTC window ends, the session's final high/low are stored (used later for breakout detection), the box's right edge is locked to the last in-session bar, and the live POC box/line/label are deleted to make way for the final versions.
  • A complete volume profile is then computed once more over the full session (this time with a fallback that correctly attributes a zero-range bar's entire volume to whichever single bin contains its price - see the note below). If the volume profile toggle is on, a stepped polyline is drawn tracing each bin's proportional width across the session box, with the POC bin highlighted as its own box; if the POC toggle is on, a static POC line and label extend forward from the session.

💥 Flow 6: Breakout Detection (post-session only)

  • Once the session has closed and its box is finalized, every subsequent bar is checked - but only until the first breakout is confirmed for this session occurrence (has_broken_out then blocks further checks until the next session start resets it). A confirmed close above the session high (or below its low) fires the corresponding breakout: a triangle marker, a dashed tether line back to the broken level, and the three deviation target lines/labels if enabled.

🎯 Flow 7: Deviation Targets - Extend Until Hit

  • Each of the three target levels is the breakout level offset by the session's own high-low range multiplied by that target's own multiplier ("Dev 1/2/3"). Every bar after the breakout, any target not yet hit has its dotted line's right edge and label extended to the current bar; the moment price reaches a target (high/low crossing it, depending on breakout direction), that target's line stops extending and is marked hit, permanently frozen at that point.

📋 Flow 8: Dashboard Tallying

  • Each session's function call returns edge-triggered flags for "just broke up," "just broke down," and "just hit target 1/2/3 this bar." These are tallied into separate, permanently accumulating counters per session (never reset), which populate the dashboard table's Break ▲ / Break ▼ / Hit | / Hit || / Hit ||| columns - the numbers represent totals since the chart started loading, not per-day or per-week counts.
Implementation note - the live POC can miss zero-range bars that the final POC counts: the real-time volume-profile loop (used to keep the POC box/line updated while a session is still open) only attributes a bar's volume to a bin when bar_range > 0 (its high differs from its low), with no fallback for the opposite case. The final, session-end volume profile calculation includes an else branch that correctly assigns a zero-range bar's full volume to whichever single bin contains its price. In practice this means a doji-heavy session's live-updating POC can silently under-count some volume and potentially highlight a different price level than the POC the indicator settles on once that same session closes and the profile is recalculated in full.

Outputs & Usage Roles

  • Session boxes: a visual record of exactly how wide each session's traded range was, growing live and then locking in place at close.
  • POC (live + final): the price level carrying the most traded volume in that session, both as it develops and once finalized.
  • Volume profile shape: the full distribution of volume across the session's range, not just its single busiest level.
  • Breakout markers & tether lines: confirmation that a completed session's range was actually broken, and exactly which level was broken.
  • Deviation targets: three range-relative, self-scaling profit-taking or continuation-confirmation levels per breakout.
  • Dashboard: a running, per-session scoreboard of breakout direction counts and target-hit rates accumulated since the chart loaded.
Zoom/Pan Layered Image
Background Overlay
− +

The indicator above just became a TRADING BOT — 1 AI click

📊Original indicator
→
🤖AI 1-click convert
→
⚙️Bot trading 24/7