ICT Smart Money Footprint [AGPro Series]ICT Smart Money Footprint
🔷 OVERVIEW
ICT Smart Money Footprint is a multi-timeframe price action engine that maps institutional liquidity behavior directly onto your chart. It combines higher-timeframe reaction zones (BSL/SSL) derived from swing pivots with candle-by-candle lower-timeframe footprint states — Liquidity Grab, Displacement, and Reclaim — into one cohesive visualization. A live panel tracks session bias, daily event counts, and zone lifecycle, giving price action traders a complete context window for ICT-style analysis across every timeframe.
🧭 UNIQUE EDGE
Most Smart Money Concept indicators plot every swing as a zone, producing cluttered charts that obscure the very structure they aim to reveal. This tool takes a different route. It separates the question "where is liquidity?" (answered at HTF with wide, contextual zones) from "what is price doing right now?" (answered at LTF with footprint labels). The two layers communicate through a single panel and a shared color palette, so the trader always sees both the macro landscape and the tactical footprint without layering multiple scripts. Priority filtering ensures only the highest-conviction event is printed per bar, and confluence windowing prevents label clustering.
⚙️ METHODOLOGY
The script runs two parallel engines.
The HTF Zone Engine pulls pivot highs and lows from a higher timeframe using request.security with lookahead disabled. Each confirmed pivot anchors a reaction zone sized by HTF ATR × 1.5, ensuring natural visibility on any chart view. Buy-Side Liquidity (BSL) zones form above price at pivot highs; Sell-Side Liquidity (SSL) zones form below price at pivot lows. Zones extend right via line.new with extend.right and a linefill between the two edges. When price tags a zone, the zone is marked mitigated: its lines switch to dashed style, width drops, color fades, and right extension freezes at the touch point.
The LTF Footprint Engine evaluates each confirmed candle for three events. Liquidity Grab triggers when price sweeps the prior LTF swing with a buffer and closes back inside range in the opposite direction. Displacement triggers when candle range exceeds ATR × multiplier and the candle breaks the prior bar's extreme. Reclaim triggers when price recovers a recently lost swing level within a 20-bar window. A priority filter (DISP > LG > REC) prints only the strongest event per bar and direction. A session bias score accumulates these events and resets daily, tinting the chart background and updating the panel in real time.
📡 SIGNALS & ALERTS
Six alert conditions are built in:
• Liquidity Grab (bull or bear)
• Displacement (bull or bear)
• HTF Mitigation (any zone tagged)
• Reclaim (bull or bear)
• Bias Turned Bullish
• Bias Turned Bearish
All alerts include ticker and interval placeholders for multi-chart monitoring.
🎛️ KEY INPUTS
HTF Source — Auto scales the higher timeframe to your chart (15m→4H, 1H→D, 4H→W, 1D→M), or pick a manual HTF.
HTF Pivot Length — controls strength threshold of liquidity zones.
HTF Zone Height (ATR x) — default 1.5; tune for wider or tighter zones.
LTF Pivot Length — swing sensitivity for LG and REC detection.
Displacement ATR Multiplier — default 2.0; raise for only the most explosive candles.
Sweep Buffer — extra cushion above or below swing levels for LG qualification.
Confluence Window — suppresses back-to-back same-direction labels.
Session Bias Band — subtle background tint reflecting daily event accumulation.
Panel Location, Theme, Font Size — full control over on-chart presentation.
🧩 HOW TO USE
Start with your normal trading timeframe. The HTF Source set to Auto will anchor the zones to a relevant higher timeframe. Watch how price interacts with the BSL and SSL zones: unmitigated HTF zones act as liquidity targets and reaction areas, while mitigated (dashed) zones mark where liquidity has already been absorbed.
Use the LTF footprint labels to read the tactical story inside those zones. A Liquidity Grab near an SSL zone hints at institutional accumulation. A Displacement candle after an LG often precedes a structural shift. A Reclaim of a recently lost level signals inducement and potential continuation. The panel's Session Bias gives you a running directional read; when it flips, an alert can fire.
Traders typically combine this tool with their own execution framework: HTF zones for bias and target selection, LTF footprints for timing and confirmation. The indicator provides the map; risk management, entry rules, and position sizing remain the trader's responsibility.
⚠️ LIMITATIONS & TRANSPARENCY
This indicator is an analytical mapping tool, not a trading strategy. It identifies structural patterns and plots them for visual analysis.
HTF zones rely on request.security with lookahead disabled, which means new zones appear only after the HTF pivot is fully confirmed — this introduces a natural lag consistent with non-repainting practice but means some reactions may occur before the zone is drawn.
LTF footprint labels are confirmed on bar close. Intrabar signals during live bars may flicker until the bar closes.
Different market conditions produce different zone densities. Ranging markets generate more mitigated zones; trending markets leave more unmitigated zones above or below price. Use the Max Active Zones input to cap chart clutter.
Past structural patterns do not guarantee future outcomes. Liquidity sweeps can mark reversals or simply precede continuation moves. Always validate signals with your own analysis and broader market context.
📌 RISK DISCLOSURE
This script is provided for educational and analytical purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any asset. Trading involves substantial risk of loss. Past performance does not guarantee future results. Users are solely responsible for their trading decisions, risk management, and position sizing. The author assumes no liability for any outcome arising from the use of this indicator. Indicator

PivotStructureOutline_UtilitiesThis library contains reusable pivot structure outline helpers for Pine scripts that already work with confirmed pivot highs and lows. It is designed to provide the reusable outline and anchor-box layer for scripts that already have their own pivot-confirmation logic, so those scripts can keep their structure visuals consistent without repeatedly rebuilding the same framework.
It brings together the parts of the workflow that are often rewritten in structure-based scripts: resolving pivot-close anchors, selecting wick vs close anchor behavior, building live outline geometry, building pivot structure anchor-box geometry, and managing the line and box objects that render those visuals.
Everything on the example chart is materially driven by the library, whether through the selected outline anchor source, the outline geometry itself, the midpoint-start logic, the pivot structure anchor boxes, or the shared line/box lifecycle helpers used to keep those visuals updated cleanly on the chart.
How to use
Import the library near the top of your script in global scope, alongside any other imports, before you start calling its helpers. This mirrors the import-first usage pattern shown on your recent library page.
Typical placement:
//@version=6
indicator(...) or strategy(...)
import MYNAMEISBRANDON/PivotStructureOutline_Utilities/1 as PSOutils
This library is engine-agnostic. It does not confirm pivots for you. Instead, it expects your script to already know its confirmed high/low pivot indexes and anchor values, then uses those resolved inputs to build the outline and anchor-box layer.
➖Outline Line Style Helpers➖
These helpers convert simple UI-facing style strings into Pine line style enums so scripts can keep one consistent style resolver across outline lines, midpoint lines, and connector lines.
outlineLineStyle(styleIn)
Resolves a Pine line style from a string input.
Parameters:
styleIn (simple string): Style string. Expected values: "Solid", "Dashed", or "Dotted"
Returns:
Pine line style enum
➖Pivot Structure Outline Helpers➖
These helpers build the actual pivot structure outline framework from already-confirmed high/low pivot anchors. They let a script resolve a pivot-close anchor, choose whether the outline should use wick or close anchors, and generate the live geometry needed for the top line, bottom line, midpoint, and left-side connectors.
outlinePivotCloseFromIdx(pivotIdx, closeValue)
Returns the close value belonging to a confirmed pivot index.
Parameters:
pivotIdx (int): Confirmed pivot bar_index
closeValue (float): Close series
Returns:
Confirmed pivot close value
outlineSelectedAnchors(anchorMode, highWickAnchor, lowWickAnchor, highCloseAnchor, lowCloseAnchor)
Selects the active outline anchors from Wick or Close mode.
Parameters:
anchorMode (simple string): Anchor mode. Expected values: "Wick" or "Close"
highWickAnchor (float): Confirmed high-side wick anchor
lowWickAnchor (float): Confirmed low-side wick anchor
highCloseAnchor (float): Confirmed high-side close anchor
lowCloseAnchor (float): Confirmed low-side close anchor
Returns:
Selected high anchor, selected low anchor, is outline-valid
outlineGeometry(highPivotIdx, lowPivotIdx, highAnchor, lowAnchor, connectorSourceMode, midlineStartMode, highValue, lowValue, closeValue)
Returns the live geometry for the pivot structure outline system.
Parameters:
highPivotIdx (int): Confirmed high pivot bar_index
lowPivotIdx (int): Confirmed low pivot bar_index
highAnchor (float): Selected top outline anchor
lowAnchor (float): Selected bottom outline anchor
connectorSourceMode (simple string): Connector source mode. Expected values: "Wick" or "Close"
midlineStartMode (simple string): Midline start mode. Expected values: "Most Recent Pivot" or "Left Outline"
highValue (float): High series
lowValue (float): Low series
closeValue (float): Close series
Returns:
ok, leftX, rightX, midX1, topY, bottomY, midY, leftTopConnectorY, leftBottomConnectorY
➖Pivot Structure Anchor Box Helpers➖
These helpers build directional top and bottom pivot structure anchor boxes from confirmed pivot bars. They let a script choose whether those boxes use wick-only extension from the candle body or the full candle body, then return the live coordinates needed to render those boxes forward to the current bar.
outlineAnchorBoxGeometry(highPivotIdx, lowPivotIdx, boxAreaMode, openValue, highValue, lowValue, closeValue)
Returns the live geometry for top and bottom pivot structure anchor boxes.
Parameters:
highPivotIdx (int): Confirmed high pivot bar_index
lowPivotIdx (int): Confirmed low pivot bar_index
boxAreaMode (simple string): Box area mode. Expected values: "Wick" or "Body"
openValue (float): Open series
highValue (float): High series
lowValue (float): Low series
closeValue (float): Close series
Returns:
showHighBox, showLowBox, highLeftX, lowLeftX, boxRightX, highTopY, highBottomY, lowTopY, lowBottomY
➖Line Object Helpers➖
These helpers manage the lifecycle of live line objects so scripts can create, update, or delete outline-related lines without rewriting that object-management logic each time.
outlineManageLine(enabled, ln, x1, y1, x2, y2, col, width, style)
Creates, updates, or deletes a line object.
Parameters:
enabled (bool): Whether the line should exist
ln (line): Existing line reference
x1 (int): Start x position
y1 (float): Start y position
x2 (int): End x position
y2 (float): End y position
col (color): Line color
width (int): Line width
style (string): Line style
Returns:
Updated line reference
➖Box Object Helpers➖
These helpers manage the lifecycle of live box objects so scripts can create, update, or delete pivot structure anchor boxes without repeating the same box-management code in every script.
outlineManageBox(enabled, bx, left, top, right, bottom, bgColor, borderColor, borderStyle, borderWidth)
Creates, updates, or deletes a box object.
Parameters:
enabled (bool): Whether the box should exist
bx (box): Existing box reference
left (int): Left x position
top (float): Top y position
right (int): Right x position
bottom (float): Bottom y position
bgColor (color): Box background color
borderColor (color): Box border color
borderStyle (string): Box border style
borderWidth (int): Box border width
Returns:
Updated box reference
Library

Wyckoff Accumulation Phase Map [AGPro Series]Wyckoff Accumulation Phase Map
🟢 OVERVIEW
Wyckoff Accumulation Phase Map is the bullish counterpart of the Wyckoff Distribution Phase Map and completes the AGPro Wyckoff structural cycle. It is a retrospective structural mapping tool that locates and labels the seven core accumulation events — Preliminary Support (PS), Selling Climax (SC), Automatic Rally (AR), Secondary Test (ST), Spring, Last Point of Support (LPS) and Sign of Strength (SOS) — only after a bullish Change of Character (CHoCH) confirms that the prior downtrend has structurally broken. The indicator frames the active trading range as a shaded zone, plots SC and AR horizontal references, tracks the current phase (A, B, C, D, E) in a dedicated info panel, and introduces three accumulation-specific layers absent from the distribution companion: a Spring Quality Score, a Cause-to-Effect markup projection and a rolling volume footprint classifier.
🟢 COMPANION TO THE DISTRIBUTION PHASE MAP
This indicator is intentionally designed as the symmetric counterpart of Wyckoff Distribution Phase Map . The two scripts share a unified AGPro visual language and a CHoCH-gated reveal philosophy, but they operate on opposite market regimes and different event sets:
- Distribution map works on uptrends and draws PSY, BC, AR, UT, SOW and LPSY after a bearish CHoCH.
- Accumulation map works on downtrends and draws PS, SC, AR, ST, Spring, LPS and SOS after a bullish CHoCH.
- Distribution projects a potential markdown line from LPSY.
- Accumulation projects a Cause-to-Effect markup target from SOS.
- Accumulation additionally provides a 0-100 Spring Quality Score, which has no structural equivalent in the distribution schematic.
Both tools are standalone. Users running the full AGPro Wyckoff workflow can apply them together for complete cycle coverage, but neither depends on the other.
🟢 WHAT MAKES IT DIFFERENT
Most Wyckoff scripts on PulseWire react to every elevated swing low during a downtrend and label PS / SC / Spring on every modest dip. The result is a noisy chart, often with contradictory events stacked on top of each other. This indicator takes the opposite approach. During a qualified downtrend, the chart remains completely clean. Rolling trackers silently maintain candidate values for SC, PS and AR in memory, while a live Watching row in the panel shows what the engine is currently monitoring. Events are only drawn on the chart after a bullish CHoCH locks the schematic, at which point PS, SC and AR appear together as a confirmed retrospective bundle. ST, Spring, LPS and SOS then populate as post-CHoCH structure unfolds. A multi-tier expiry system closes both incomplete and fully-played-out accumulations, ensuring the active schematic on screen always reflects current market structure and not stale history.
🟢 METHODOLOGY
The engine runs in three coordinated layers.
Layer one qualifies a prior downtrend. A valid Wyckoff accumulation precondition requires four concurrent factors: structural lower highs and lower lows, a minimum ATR-multiple depth from the lookback-window high, a duration sustained across the full lookback window, and price currently located in the lower portion of that window. All four conditions must hold before any candidate can form.
Layer two rolls candidate values during that qualified downtrend. SC candidate is the running lowest pivot low with elevated or climactic volume. PS candidate is the prior elevated swing low that predates the SC. AR candidate is the highest post-SC swing high that remains within a structurally reasonable distance from SC. Candidates are automatically invalidated if price drifts far above the SC without a structural break or if the candidate ages beyond a configurable maximum.
Layer three watches for a bullish Change of Character, defined as the first bar that closes above the qualified AR candidate. On CHoCH confirmation, PS, SC and AR are snapshotted as labeled events, the trading range is drawn, and the state machine advances to forward detection. ST, Spring, LPS and SOS are then detected in sequence using a combination of price-to-SC, price-to-AR and volume-to-average filters. Volume context is computed against a configurable moving-average baseline with separate climactic, elevated and weak thresholds.
The Spring Quality Score blends four components into a 0-100 rating: penetration depth below SC, volume dry-up on the sweep bar, recovery strength measured by close position within the candle range, and close location relative to SC. The Cause-to-Effect projection draws a symmetrical markup target from the SOS bar using the trading range height.
🟢 SIGNALS AND ALERTS
The indicator fires three categories of alerts, all reserved for confirmed structural events:
- CHoCH Confirmation alert triggers when the structural break locks in, including the resolved SC and AR levels.
- Spring alert fires when the Spring is detected, including the Spring Quality score.
- Sign of Strength alert fires when SOS confirms with climactic volume above AR.
No alerts are emitted during the forming phase. This keeps notification volume low and focused on decisive structural moments.
🟢 KEY INPUTS
Core Engine inputs control swing lookback sensitivity, candidate maximum age, post-CHoCH timeout, prior downtrend lookback, minimum downtrend depth in ATR multiples, and the near-lows threshold used in downtrend qualification. Volume Analysis exposes the moving-average length and three separate multipliers for climactic, elevated and weak volume classification. Visual inputs toggle the trading range zone, SC and AR horizontal levels, the CHoCH dashed break line, the Cause-to-Effect projection, the floating summary label and the keep-historical-events mode, with full control over font size and zone transparency. The info panel can be repositioned to six anchor points and switched between dark and light themes.
🟢 HOW TO USE
Apply the indicator to any liquid instrument and any timeframe. During downtrends, observe the Watching row in the panel to monitor the forming SC candidate. When CHoCH prints, the full PS, SC and AR bundle appears and the trading range is shaded. From that point, use the Next Expected row to track what the engine is waiting for. The Confidence score progresses from 70 at CHoCH to 97 at SOS. The Spring Quality Score becomes populated when a Spring is detected and quantifies the character of the sweep. The Volume Footprint row rolls through Range forming, Supply exhausting, Weak hands shaken, Supply absorbed and Demand in control as the schematic matures. The floating summary label on the right edge of the chart provides an at-a-glance status even when the primary event labels are scrolled off to the left. The indicator works standalone but is designed to complement any market structure, order flow or supply-and-demand workflow.
🟢 LIMITATIONS AND TRANSPARENCY
This tool is a pattern-recognition and labeling engine, not a strategy or a trading signal generator. All events are detected retrospectively after their confirming bar has closed plus the swing lookback period. This is by design to eliminate redrawing. The Wyckoff schematic is a framework, not a deterministic forecast. Not every accumulation completes the full seven-event sequence, and markets frequently fail schematics entirely and resume the prior downtrend. The volume analysis assumes reliable reported volume, so thin or fragmented markets may produce weaker classification. The Spring Quality Score and Confidence score are internal heuristics tied to event progression and are not statistical probabilities. The Cause-to-Effect projection is a classical Wyckoff reference line derived from range height, not a mechanical target guaranteed to be reached. Past schematic completions do not predict future market behavior.
🟢 RISK DISCLOSURE
This indicator is published for educational and analytical purposes only. It does not constitute financial advice, a trading recommendation or an investment solicitation. Trading any financial instrument involves substantial risk, including the potential loss of principal. Past performance does not guarantee future results. Users are solely responsible for their own trading decisions, risk management and independent research. Always backtest thoroughly and trade within a risk framework you understand. Indicator

Wyckoff Distribution Phase Map [AGPro Series]Wyckoff Distribution Phase Map
🔹 OVERVIEW
Wyckoff Distribution Phase Map is a retrospective structural mapping tool built on the classic Wyckoff distribution schematic. It locates and labels the six core distribution events — Preliminary Supply (PSY), Buying Climax (BC), Automatic Reaction (AR), Upthrust (UT), Sign of Weakness (SOW) and Last Point of Supply (LPSY) — only after a bearish Change of Character (CHoCH) confirms that the prior uptrend has structurally broken. The indicator frames the active trading range as a shaded zone, plots BC and AR horizontal references, and tracks the phase state (A, B, C, D, E) in a dedicated info panel with a forming-candidate watchlist before confirmation.
🔹 WHAT MAKES IT DIFFERENT
Most Wyckoff scripts on PulseWire label events reactively on every elevated swing, producing dense, often contradictory signals during ranging or trending markets. This indicator takes the opposite approach. During an uptrend, the chart remains completely clean. Rolling trackers silently maintain candidate values for BC, PSY and AR in memory, while a live watchlist row in the panel shows the forming distribution candidate in real time. Events are only drawn on the chart after CHoCH locks the schematic, at which point PSY, BC and AR appear together as a confirmed retrospective bundle. UT, SOW and LPSY then populate as the post-CHoCH structure unfolds. A two-tier expiry system closes both incomplete and fully-played-out distributions, ensuring the active schematic on screen always reflects current market structure — not stale history.
🔹 METHODOLOGY
The engine runs in two coordinated layers. The first layer tracks higher-high and higher-low sequences to qualify an uptrend and rolls candidate values for the Buying Climax (running maximum swing high), Preliminary Supply (last pre-BC elevated swing high) and Automatic Reaction (running minimum after BC). The second layer watches for a structural break below the last confirmed higher-low, which defines the CHoCH. On CHoCH confirmation, the candidate values are snapshotted as BC, PSY and AR labels, the trading range zone is drawn, and the state machine advances to the forward-detection phase. Upthrust, Sign of Weakness and Last Point of Supply are then detected in strict sequence using a combination of price-to-BC, price-to-AR and volume-to-average filters. Volume context is computed against a 20-period moving average baseline with separate climactic, elevated and weak thresholds tuned for crypto and equities alike.
🔹 SIGNALS AND ALERTS
The indicator fires two categories of alerts. The CHoCH Confirmation alert triggers the moment the structural break locks in, including the resolved BC and AR levels. Event alerts fire for each subsequent UT, SOW and LPSY detection. No alert is fired during the forming phase — alerts are reserved for confirmed structural events, keeping notification noise low. A projected markdown line is drawn forward from LPSY using the trading range height as a symmetrical target, purely as a visual reference point rather than a trade signal.
🔹 KEY INPUTS
Core Engine inputs control swing lookback sensitivity, candidate maximum age and the post-CHoCH timeout window. Volume Analysis exposes the moving average length and three multipliers for climactic, elevated and weak volume classification. Visual inputs toggle the trading range zone, BC and AR horizontal levels, the CHoCH dashed break line, the markdown projection, the confidence halo and the floating distribution summary label, with full control over font size, line widths and zone transparency. The info panel can be repositioned to six anchor points and switched between dark and light themes. A Keep Historical Events toggle allows old schematics to remain on the chart after reset, off by default for a clean view.
🔹 HOW TO USE
Apply the indicator to any liquid instrument and any timeframe. During uptrends, observe the Watching row in the panel to monitor the forming BC candidate. When CHoCH prints, the full PSY, BC, AR bundle appears with the trading range shaded. From that point, use the Next Expected row to track what the engine is waiting for. The confidence score progresses from 70 at CHoCH to 97 at LPSY. The floating summary label on the right edge of the chart provides an at-a-glance status even when the primary event labels are scrolled off to the left. The indicator works standalone but is designed to complement any market structure, order flow or supply-and-demand workflow.
🔹 LIMITATIONS AND TRANSPARENCY
This tool is a pattern-recognition and labeling engine, not a strategy or trading signal generator. All events are detected retrospectively after their confirming bar has closed plus the swing lookback period — this is by design to eliminate redrawing. The Wyckoff schematic is a framework, not a deterministic forecast; not every distribution completes the full six-event sequence, and markets frequently fail schematics entirely and resume the prior trend. The volume analysis assumes reliable reported volume, so thin or fragmented markets may produce weaker classification. Confidence scores are internal heuristics tied to event progression, not statistical probabilities. Past schematic completions do not predict future market behavior.
🔹 RISK DISCLOSURE
This indicator is published for educational and analytical purposes only. It does not constitute financial advice, a trading recommendation or an investment solicitation. Trading any financial instrument involves substantial risk, including the potential loss of principal. Past performance does not guarantee future results. Users are solely responsible for their own trading decisions, risk management and independent research. Always backtest thoroughly and trade within a risk framework you understand. Indicator

Break-Retest Quality [AGPro Series]Break-Retest Quality
🎯 OVERVIEW
Break-Retest Quality is a precision-focused structure toolkit that detects pivot-based breaks of structure (BOS) and grades the first retest of the broken level using a transparent, multi-factor quality score. Instead of only drawing a break line and leaving you to guess whether the retest "looked clean", the script quantifies the retest with a 0-100 score and an A / B / C / F letter grade so you can quickly separate high-conviction pullbacks from low-quality ones. It is a discretionary context tool built for price action traders, SMC / ICT practitioners and anyone who builds setups around break-and-retest logic.
The system is fully automated, non-repainting after confirmation, and works on any symbol and timeframe that PulseWire supports.
📐 UNIQUE EDGE — WHAT MAKES IT DIFFERENT
Most break-of-structure indicators stop at drawing a line and an arrow. Break-Retest Quality goes further:
🔹 Every retest is scored on six independent factors and translated into an A / B / C / F grade
🔹 The acceptance zone is an ATR-scaled rectangle that changes color and state as the setup evolves (live WATCH → graded RETEST)
🔹 A "Min Grade To Display" filter keeps weak retests off the chart, so the visual footprint stays clean
🔹 A right-edge WATCH tag pins the currently active level so you never lose track of the live setup
🔹 A compact two-line retest marker shows grade, score and a short outcome tag in a minimal footprint
🔹 Built-in cooldown and single-retest-per-break logic prevent label clutter on choppy price action
This is not a repackaged BOS indicator — it is a quality filter on top of BOS / retest logic.
🧪 METHODOLOGY
1. STRUCTURE DETECTION
Pivot highs and lows are detected with a user-defined Pivot Length. A break is registered when price clears the most recent pivot by at least Min Break ATR Filter × ATR, either on a close (default) or on a wick.
2. RETEST TRACKING
After a confirmed break, the script opens an acceptance zone of ± Retest Tolerance ATR × ATR around the broken level and watches for the first price revisit within Max Bars For Retest.
3. QUALITY SCORING (0-100)
The first retest is graded on six weighted factors:
🔸 Reclaim (25 pts) — how decisively the close reclaims the correct side of the level
🔸 Rejection (20 pts) — wick / body composition on the retest bar
🔸 Depth (20 pts) — how close the extreme of the retest bar lands to the level (no excessive overshoot)
🔸 Speed (15 pts) — how quickly the retest prints after the break
🔸 Volatility (10 pts) — bar range discipline relative to ATR
🔸 Volume (10 pts, optional) — relative volume vs 20-bar SMA
Final score → Grade: A ≥ 80, B ≥ 65, C ≥ 50, F < 50.
4. CONFIRMATION LOGIC
A retest is marked "confirmed" only if the score meets the Min Grade For Confirmation threshold AND the close lands on the correct side of the broken level.
🔔 SIGNALS & ALERTS
Three PulseWire alert conditions are exposed:
🔹 Structure Break Detected — fires the moment a valid break is registered
🔹 First Retest Detected — fires on the first qualifying revisit inside the acceptance zone
🔹 High-Quality Retest Confirmed — fires only when the graded retest meets the confirmation threshold
⚙️ KEY INPUTS
STRUCTURE
• Pivot Length, Use Close Confirmation, Min Break ATR Filter, ATR Length
RETEST
• Max Bars For Retest, Retest Tolerance ATR, Cooldown Bars After Completed Setup, Resolved Zone Extension
SCORING
• Show Numeric Score / Grade, Use Volume Confirmation, Min Grade For Confirmation, Min Grade To Display
VISUALS
• Show Break Line / Labels / Retest Marker / Retest Zone / Watch Zone Text / Resolved Zone Text / Active Level Glow / Right-Edge Watch Tag / Invalidation Line / Outcome Text, Use Grade Colors, Zone Forward Extension, Label Size
PANEL
• Show Panel, Panel Position, Panel Font Size, Show Last Result Row
RUNTIME
• Keep Last Setups (controls how many historical setups stay on the chart)
🧭 HOW TO USE
1. Add Break-Retest Quality to any chart and timeframe. Adjust Pivot Length to match the structure you care about (lower on intraday, higher on swing).
2. Wait for a BRK▲ or BRK▼ label to print — this confirms a structure break.
3. Observe the live acceptance zone and the right-edge WATCH tag. These mark the level and the remaining retest window.
4. When price returns to the zone, read the two-line retest marker: grade + score on the top line, short outcome tag (Strong / Valid / Weak / Failed) on the bottom line.
5. Use the panel to monitor live state, active level, remaining window and the last completed result with its full outcome description.
6. Combine with your own confluences — higher-timeframe bias, liquidity levels, session context, volume profile — before acting on any signal.
⚠️ LIMITATIONS & TRANSPARENCY
🔹 This is an analytical and educational tool, not a strategy. It does not generate buy / sell orders and does not measure historical performance.
🔹 Grades describe the geometric and relative-volume quality of the retest bar at the moment it prints. They are not predictions of future price movement.
🔹 Scores calculated at bar close are final; intra-bar readings can shift until the bar closes.
🔹 The volume factor depends on exchange-supplied volume data. Turn it off on instruments where volume is unreliable or missing.
🔹 Pivot-based structure is sensitive to the Pivot Length setting. Choose it deliberately for the timeframe and symbol you are analyzing.
📢 RISK DISCLOSURE
Trading involves substantial risk and is not suitable for every investor. Past price behavior is not indicative of future results. This indicator is provided for educational and analytical purposes only and does not constitute financial advice, investment advice, or a solicitation to trade any instrument. Always perform your own research and risk management before acting on any signal. Indicator

Auto Trendlines MTF - Break/Retest [AGPro Series]Auto Trendlines MTF - Break/Retest
🔹 OVERVIEW
Auto Trendlines MTF - Break/Retest is a multi-timeframe trendline visualization engine that automatically detects and draws the most structurally significant trendlines across three complementary scales: Micro (current timeframe), Meso (intermediate pivots), and Mega (HTF weekly/monthly overlay). Instead of relying on a single pivot scan, the engine builds a ranked candidate pool from each scale and selects the lines that best represent the active market structure around current price.
The script is designed as a pure analytical visualization tool — it does not generate trading decisions, forecasts, or directional recommendations. Its purpose is to give the chart a clean, hand-drawn-quality trendline layer that updates automatically as new pivots form.
🎯 UNIQUE EDGE
Most auto-trendline tools scan one timeframe and draw whatever fits. This engine operates differently in four specific ways:
• Three-scale MTF engine. Micro pivots on the current TF, Meso pivots with wider sensitivity, and Mega trendlines derived from Weekly/Monthly HTF pivots are computed independently and rendered together with a visual hierarchy (Mega dominant, Meso intermediate, Micro active).
• Log-space geometry. All trendline math runs in log-price space, so long-dated diagonals on volatile assets (crypto, growth stocks) do not distort visually when the chart is viewed in logarithmic mode.
• Touch-weighted ranking with violation penalty. Each candidate line is scored by touch count, line age, slope sanity, price proximity, and intra-line violations. Weak geometry, over-sloped lines, and frequently violated lines are demoted automatically.
• Q quality score (0–100) and confluence tags (x2/x3). Every drawn line carries a Q score that blends touches, freshness, geometry, relevance, and violations into a single number. Confluence tags surface when a Micro line and a Meso line sit within the same ATR band near price, highlighting multi-scale structure overlap.
🧠 METHODOLOGY
1. Pivot detection. Separate pivot streams are maintained for Micro (tight sensitivity), Meso (wider sensitivity), and Mega (HTF pivots via request.security).
2. Candidate generation. For each scale, the engine pairs anchor pivots with subsequent pivots to form line candidates, discards over-sloped ones, and computes touches, violations, and break status in log space.
3. Ranking. Candidates are scored by a weighted combination of touch count, time span, slope sanity, relevance to current price (distance in ATR), and violation count. The best non-duplicate lines are kept per scale.
4. Clutter guards. A minimum ATR separation rule prevents near-duplicate lines from stacking. Smart Focus hides far-from-price lines in Minimal/Balanced density modes to keep the chart readable.
5. Stability mode. In Locked mode, selected lines persist bar-to-bar and are only replaced when they break or fall out of the candidate pool — reducing visual repainting on lower TFs.
6. Break/Retest detection. Once a line is drawn, the engine tracks close-based breaks (with configurable tolerance) and subsequent retests within a time window, emitting labeled signals on TF ≤ 1D.
⚙️ SIGNALS & ALERTS
Break and retest events are plotted for each scale with short ASCII tags:
• µR / µS = Micro Resistance / Support break
• mR / mS = Meso Resistance / Support break
• MR / MS = Mega Resistance / Support break
• rµ / rm / rM = retest on Micro / Meso / Mega respectively
A dedicated alertcondition is exposed for every break and retest event, plus two aggregate alerts (Any BR, Any RT) for users who prefer a single alert stream. A Min Q filter lets the user suppress low-quality signals.
🛠️ KEY INPUTS
• Profile Mode. Auto by Timeframe or Manual (Clean Trader, Balanced, Analyst, Presentation, Custom).
• Density Override. Minimal, Balanced, or Bold visual density.
• Line Weight Override. UltraThin, Thin, or Normal.
• Labels / Signals / Stability / Broken-line behavior. All individually overridable.
• Mega Overlay. Full (lines + cloud + label), Lines Only, or Off.
• Advanced panels. Micro Engine, Meso Engine, Mega Engine, Ranking, Visuals, and Signals each expose their own fine-tuning controls for experienced users.
• HUD. Position, theme (Classic Gray, Premium Accent, Color Coded, Showcase), and text size.
📘 HOW TO USE
• Add the script to any liquid symbol and start on a 1H or 4H chart.
• Leave Profile Mode on "Auto by Timeframe" for a balanced default that adapts to the active TF.
• Read the HUD in the top-right corner to see the active profile, how many Micro/Meso lines are drawn, whether Mega is active, and current Q scores.
• When a line carries a Q score above ~65 and a Conf tag (x2 or x3) appears nearby, that zone is a multi-scale structural pocket — use it as a planning reference, not as a trade trigger on its own.
• Use the Break/Retest tags for situational awareness around drawn lines; combine with your own confirmation logic before acting.
⚠️ LIMITATIONS & TRANSPARENCY
• Lines are drawn from historical pivots and can only confirm after a pivot is established. The engine avoids repainting in Locked mode but cannot predict future pivots.
• Q scores and confluence tags describe structural quality, not directional probability. A high-Q line can still break.
• Mega lines depend on HTF pivot availability; on very young symbols or thin charts, Mega may fall back to a Macro-pivot source or remain hidden.
• The script is published as Public, Open Source so that every ranking rule, weight, and threshold is fully auditable in the source code.
🛡️ RISK DISCLOSURE
This script is a visualization and analysis tool only. It is not financial advice, not a trading strategy, and not a signal service. No performance claims are made or implied. Past structural behavior of trendlines does not guarantee future behavior. All trading decisions, risk sizing, and execution remain the sole responsibility of the user. Indicator

Pivot Channel Map [AGPro Series]Pivot Channel Map
🔹 OVERVIEW
Pivot Channel Map is a structural channel engine that automatically detects and classifies market structure channels from confirmed swing pivots. It organises every qualified channel into a clear 8-family taxonomy (Major / Minor × External / Internal × Up / Down) and renders them as a living map of trend, range and reversal context. The script works on all instruments and timeframes, with a focus on intraday and swing analysis.
Instead of plotting a single trendline or band, the engine maintains a continuously updated structural map: active channels, their midlines, interaction pockets around the rails, preserved broken channels, and post-break retest / reclaim signals. A compact right-corner panel summarises live channel counts, qualification state, nearest channel distance in ATR units, and the prevailing Major tilt.
The goal is to give discretionary traders a moderation-safe, clutter-controlled view of where price is inside the broader structure — not to predict future prices.
🔸 UNIQUE EDGE
Most channel indicators draw one or two parallel lines and call it a day. Pivot Channel Map adds structural classification, qualification, memory and post-event follow-through on top of the channel geometry:
- Eight channel families instead of a single pair of rails
- ATR-normalised qualification engine (Off / Balanced / Strict) to filter structurally weak channels
- Broken Channel Memory that preserves invalidated structure as faded historical context
- Interaction Zones (right-edge ATR pockets) around active channel rails
- Post-Break Retest / Reclaim tracker that tags the first valid touch after a confirmed break
- Break and React event markers on Major channels
- ATR-based distance tagging in the info panel (Near / Mid / Wide / Far)
The result is a richer structural read than a standard channel script, while still staying visually clean through emphasis, opacity and clutter controls.
🔹 METHODOLOGY
1. Pivot detection. A configurable Pivot Period drives ta.pivothigh and ta.pivotlow to produce confirmed swing pivots. The script then classifies each pivot into H / HH / LH / HL / LL / L roles and promotes / demotes them between Major (M*) and Minor (m*) status based on close breaks versus the current Major range.
2. Channel construction. From the classified pivot stream, eight channel families are built:
- Major External Up / Down
- Major Internal Up / Down
- Minor External Up / Down
- Minor Internal Up / Down
External channels trace structural HH/LL extremes, Internal channels trace LH/HL interior swings.
3. Qualification. Each candidate channel is width-measured against ATR and span-measured in bars. The Qualification Engine (Off / Balanced / Strict) filters out structurally weak channels before they are drawn.
4. Life-cycle management. Active channels are redrawn and extended forward each bar until an origin-rail or channel-rail break is confirmed. On break, the previous structure can be preserved by Broken Channel Memory (Off / Major Only / All) with its own style and opacity.
5. Event detection. Confirmed origin-rail breaks produce BREAK events; wick-through-then-close-back moves produce REACT events on Major channels. A cooldown and an ATR-based price-distance filter prevent label clusters when price oscillates around the same rail.
6. Post-break follow-through. After a confirmed break, the script tracks the first valid touch inside a configurable window and tags it as RETEST (channel-rail break) or RECLAIM (origin-rail break).
🔸 SIGNALS & ALERTS
On-chart events:
- BREAK — confirmed close-based break of a Major channel rail
- REACT — wick through the Major rail with a close back inside, filtered by bar cooldown and ATR distance
- RETEST / RECLAIM — first valid touch of the broken rail inside the post-break window
- Interaction Zone contact — visual ATR pocket around active channel rails
- Channel Quick Tags (MEX / MIN / mEX / mIN, Up / Dn) — compact family labels on active channels
Alert conditions (all 16 toggleable, Major alerts On by default, Minor Off by default):
- Break: Major External Up / Down
- React: Major External Up / Down
- Break: Major Internal Up / Down
- React: Major Internal Up / Down
- Break: Minor External Up / Down
- React: Minor External Up / Down
- Break: Minor Internal Up / Down
- React: Minor Internal Up / Down
Message frequency is configurable (All / Once Per Bar / Once Per Bar Close). Alerts include symbol, timeframe, time zone and event description.
🔹 KEY INPUTS
- Pivot Engine: Pivot Period (default 5)
- Per-family Visibility: 8 Show / Delete-Previous / Color / Style / Extend / Width groups
- Channel Qualification: Mode (Off / Balanced / Strict), Apply To (All / Major Only / Minor Only), ATR Length
- Broken Channel Memory: Scope (Off / Major Only / All), Keep (Last 1 / Last 2), Style
- Channel Midline: Show, Apply To, Scope, Style, Width, Opacity
- Active Map Clarity: Line Emphasis, Base-Line Focus, Event Markers, React Cooldown, React Min Price Distance, Quick Tags, Tag Scope, Tag Size, Event / Quick Tag Vertical Offsets
- Interaction Zones: Scope, Rails, Zone Width ATR, Extend Bars, Opacity, Zone Text
- Post-Break Retest / Reclaim: Scope, Window Bars, Label Offset ATR
- Panel: Show, Position, Font Size
- Alerts: 16 per-family Break / React toggles, Alert Name, Frequency, Time Zone
🔸 HOW TO USE
Getting started:
1. Apply the indicator on any symbol and timeframe.
2. Start with default settings: Qualification Off so the full structural map is visible.
3. If the chart feels busy on lower timeframes, switch Qualification to Balanced or Strict.
Reading the panel:
- Major Live / Minor Live — active channels per class
- Nearest Channel — closest active channel, with ATR distance and Near / Mid / Wide / Far tag
- Qualification — current filter mode and scope
- Interaction — interaction zone scope and rails
- Post-Break — tracker scope, window and prevailing Major tilt
Common workflows:
- Trend continuation: wait for price to hold an Active Major channel and look for a REACT at the rail inside the channel direction.
- Break-and-retest: after a BREAK event, watch for the RETEST / RECLAIM label inside the Post-Break window.
- Confluence: use Interaction Zones to spot where Major and Minor rails meet at the right edge of the chart.
- Higher-timeframe context: open a higher timeframe tab with the same script to map macro structure around your execution timeframe.
Suggested defaults:
- Intraday traders: 15m–1H base TF, Balanced qualification
- Swing traders: 4H–1D base TF, Balanced or Off qualification
- Higher-timeframe context: 1D–1W with Qualification Off
🔹 LIMITATIONS & TRANSPARENCY
- Pivot-based. Pivots require the configured number of bars to confirm, so the most recent swing always lags by Pivot Period bars. This is a structural property of confirmed pivots, not a bug.
- Redraw behaviour. Active channels are extended forward each bar until a break is confirmed on close. Channel end-points can therefore adjust as new pivots qualify.
- Alerts fire on confirmed conditions. Break and React alerts require barstate.isconfirmed, so intra-bar touches do not trigger alerts.
- Timeframe behaviour. On very high timeframes with limited history (e.g. weekly / monthly on newer instruments), the total pivot count can be small. Keep Qualification at Off on higher timeframes to avoid over-filtering.
- This is a visualisation / structure tool. It is not a trading strategy, it does not manage risk, and it does not generate buy / sell recommendations. All entries and exits are the trader’s responsibility.
🔸 RISK DISCLOSURE
This script is a technical analysis tool intended for educational and analytical purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any asset. Past chart behaviour does not guarantee future results. Trading involves significant risk and can result in the loss of capital. Always do your own research, use proper risk management, and consider consulting a licensed financial advisor before making trading decisions. Indicator

Compression Pressure Map [AGPro Series]Compression Pressure Map
⚡ Overview
────────────────────────────────────────
Compression Pressure Map is a structural context tool that measures how tightly price is compressing against the nearest pivot-based level, and evaluates two behavioral scenarios in parallel: breakout anticipation and reversal watch. The output is a visual map of where pressure is accumulating — rendered as an evolving pressure zone that moves through BUILDING, ARMED and READY states.
This is not a signal engine, not a forecast, and not a trading strategy. It is a visualization layer that answers a single question: where is compression building around the active level, and in which direction is that pressure leaning.
🧭 Unique Edge
────────────────────────────────────────
Most compression indicators reduce behavior to a single direction. CPM separates compression into two parallel scoring engines that run on the same structural core:
🔹 Breakout Anticipation — pressure building for a directional break through the level
🔹 Reversal Watch — pressure building for a rejection at the level
In Auto mode the dominant scenario is rendered on the chart (cleaner visual), while the panel shows both scores side by side for transparency. Power users can lock the engine to a single mode. The active level is stabilized with a clustered pivot refinement and a drift-control lock, so the displayed level stays consistent instead of jumping on every new pivot. A compression gate keeps the pressure score aligned with the compression core: when compression is weak, pressure cannot escalate into high states.
🧪 Methodology
────────────────────────────────────────
The pressure score is a weighted composite of six structural components, measured on the active scenario:
🔹 Range compression (short-window range vs long-window range)
🔹 ATR compression (short-window ATR vs long-window ATR)
🔹 Body tightness (average body size relative to average range)
🔹 Quiet-bar persistence (how many recent bars qualify as calm)
🔹 Proximity to the active level (normalized by ATR)
🔹 Directional posture (slope, close position in bar)
Reversal scoring adds wick-rejection weight at the active level (average lower-wick size for bull reversals, upper-wick size for bear reversals). Breakout scoring adds approach slope weight toward the active level. A shared EMA smoothing step produces calmer state transitions. A dominance margin and cooldown prevent rapid scenario flipping. The final score is driven through a BUILDING → ARMED → READY state machine with hysteresis on the zone visibility to avoid flicker.
🎯 Signals & Alerts
────────────────────────────────────────
The state machine produces four transition alerts plus two pace alerts:
🔹 Pressure Armed Near Level — score crosses the armed threshold with an active scenario
🔹 Ready Zone Reached — score crosses the ready threshold with an active scenario
🔹 Armed Bullish / Bearish Scenario — directional armed transitions
🔹 Ready Bullish / Bearish Scenario — directional ready transitions
🔹 Pressure Rising — score is climbing while the zone is live
🔹 Pressure Released — the active scenario resolves (through the level or by decay)
On the chart, state transitions are marked with discrete A and R markers on the active side. A score label near price always shows the current pressure value, bias and state for quick reading without opening the panel.
⚙️ Key Inputs
────────────────────────────────────────
🔹 Engine Mode — Auto, Breakout Anticipation, or Reversal Watch
🔹 Compression Length — main lookback for range, ATR and body tightening
🔹 Trigger Distance (ATR) — how close price must be to a level to start evaluating
🔹 Hold Distance (ATR) — how far price can drift before the active context is cleared
🔹 Pivot Left/Right and Cluster Tolerance — pivot strength and blending behavior
🔹 Compression Gate and Gate Threshold — compression-first discipline control
🔹 Armed / Ready / Zone On / Zone Off Thresholds — state machine calibration
🔹 Full visual controls — zone width, band extend, line width, label size, panel position and font
All defaults are tuned for mid-volatility crypto pairs on 1H and 4H timeframes, but the engine adapts across symbols and timeframes through its ATR-normalized distance logic.
📘 How to Use
────────────────────────────────────────
🔹 Open the indicator in Auto mode and observe which scenario the panel highlights
🔹 Wait for the pressure zone to appear on the chart (BUILD → LIVE transition)
🔹 Read the state: BUILDING means the setup is forming, ARMED means the setup is mature, READY means compression and proximity are both at peak
🔹 Cross-reference with your own structural read — CPM describes the compression landscape, the decision is yours
🔹 If you prefer one behavioral lens only, lock the engine to Breakout Anticipation or Reversal Watch
🔹 Use the Compression Gate to enforce compression-first discipline — when compression is weak, the pressure score stays in WATCH
🔹 The tool is timeframe-agnostic; try it on 15m, 1H, 4H and 1D to see how compression contexts nest
CPM is designed to sit alongside your strategy, not replace it. It maps the compression field; you read the context.
⚠️ Limitations & Transparency
────────────────────────────────────────
🔹 CPM is a context visualization tool, not a signal generator — it does not issue buy or sell calls
🔹 The pressure score is a structural measurement, not a probability estimate
🔹 State transitions describe the compression field at the moment they print; they do not imply what happens next
🔹 Active level refinement is intentionally conservative — the level may feel slower to update than raw pivots, by design
🔹 Very high volatility regimes may keep the compression score low for extended periods, which is the intended behavior
🔹 The tool is deterministic on closed bars; intrabar values are provisional until bar close
CPM is released as Public, Open-source under MPL 2.0. The source is fully readable and auditable.
🛡️ Risk Disclosure
────────────────────────────────────────
This indicator is published for educational and analytical purposes only. It is not financial advice, not a trading strategy, and not a recommendation to buy or sell any asset. Past behavior of any level or pressure state does not predict future behavior. Markets carry risk of loss; users are solely responsible for their own decisions and risk management. Always do your own research and consider consulting a qualified professional before making trading or investment decisions. Indicator

Reference Price Operating Map [AGPro Series]Reference Price Operating Map
🔹 OVERVIEW
Reference Price Operating Map is a focused overlay that consolidates the four most universally watched reference prices — Daily Open, Weekly Open, Monthly Open, and Previous Close — into a single operating map. It tracks how price interacts with each level in real time, attributes control to the reference currently leading price action, groups overlapping references into confluence clusters, and fades distant context so the active map stays clean.
The chart answers one direct question at a glance: which reference is controlling the session right now.
Built for intraday operators, swing traders, and position traders who anchor their bias to session and period opens. Works on any symbol and any intraday or daily timeframe.
🔸 WHAT MAKES IT DIFFERENT
Most open-line indicators simply draw horizontal lines for Daily, Weekly, Monthly, and Previous Close and stop there. This script goes further by adding four layers on top of those lines:
• State tracking — each reference is classified as Untouched, 1st Touch, Tested, Held, Reclaimed, or Rejected, and the state updates bar by bar as price interacts with the level.
• Control attribution — a proximity-weighted scoring system selects one reference as the current "controller" of price action, highlighted with a dominant-row background in the panel and a thicker line on the chart.
• Confluence grouping — when two or more references sit within 0.5 ATR of each other, they collapse into a single cluster label (for example "D-Open + W-Open + PClose") instead of stacking separate labels on top of each other.
• Distance-aware rendering — references far from current price are demoted to a thin gray zone with a dotted line, keeping them visible as structural context without crowding the active map.
The engine also includes a far-aware state machine: references that price has not meaningfully engaged stay in the Untouched state instead of being forced into misleading classifications.
🔷 METHODOLOGY
Reference levels are pulled directly from the higher timeframe open (Daily, Weekly, Monthly) and the previous daily close using lookahead-safe security calls on confirmed bars.
Distance classification uses ATR(14) as a volatility scale. A reference is considered "near" when price is within a configurable ATR multiple and "far" when it exceeds the far-distance threshold. This adapts the map to both low-volatility ranges and high-volatility expansions without manual tuning.
State transitions are driven by a finite state machine with six states. Key transitions:
• Untouched → 1st Touch when price enters the touch zone (default 0.25 ATR) or wicks through it.
• 1st Touch / Tested → Held when price moves cleanly away from the level on the same side.
• 1st Touch / Tested → Reclaimed when price closes on the opposite side (optionally requiring multi-bar confirmation).
• Any engaged state → Rejected when a large wick rebounds from the level with more than 60 percent wick ratio.
• Held / Rejected → Reclaimed on a confirmed cross.
The control score combines proximity (how close price is to the reference relative to ATR) with a state weight (Reclaimed and 1st Touch score highest, Held scores lowest). The reference with the highest score is tagged as controller; if no reference has meaningful engagement the panel reports No Active Control.
🔶 SIGNALS AND ALERTS
Three alert conditions are exposed:
• Reference Touched — fires the first time any reference is touched in its period.
• Reference Reclaimed — fires when any reference transitions into the Reclaimed state.
• Reference Rejected — fires when a large-wick rejection bar is registered at any reference.
On-chart, first-touch diamond markers are placed on recent bars to make period engagement easy to spot in screenshots and reviews. The panel footer reports the current controller and updates in real time.
🔹 KEY INPUTS
Reference Lines — independent toggles for Daily Open, Weekly Open, Monthly Open, and Previous Close.
Display — Show Active References Only (hide untouched references for a cleaner map), Strict Reclaim Confirmation (require multiple confirmation bars for Reclaim), Label Density (Minimal shows only the dominant reference, Normal shows all active, Detailed appends state names to labels), Show Reaction Bands, Mark First Touches.
Panel — position (four corners), font size, label font size. All default to Normal per AG Pro Series visual standards.
Sensitivity — Touch Threshold (ATR multiple defining a touch), Reclaim Confirm Bars (strict-mode confirmation count), Band Width (reaction band width in ATR), Far Distance (ATR multiple beyond which references are faded to context).
All parameters are ATR-scaled so defaults transfer cleanly across instruments and timeframes.
🔸 HOW TO USE
1. Open the panel and read the controller. If the footer shows "D-Open Controls" with a Bull bias, intraday operators treat Daily Open as the session pivot and trade with that bias until the state changes.
2. Watch the confluence label. A grouped label such as "D-Open + W-Open + PClose" means three references are stacked — a cluster of this kind is typically a higher-conviction zone than a single isolated reference.
3. Use state transitions as triggers. A Rejected state at Monthly Open during a rally is a different signal than a Reclaimed state at the same level. The state tells you what just happened at the level, not just where the level is.
4. Use the far zone as context. A Monthly Open plotted as a gray zone five ATR away from price is not an execution level — it is orientation. When price approaches it, the zone transitions into an active band and the state engine re-engages.
5. Combine with your own structure work. This map is designed to sit underneath price action analysis, order flow, or trend tools, not replace them.
🔷 LIMITATIONS AND TRANSPARENCY
• This is an indicator, not a strategy. No entries, exits, position sizing, or backtesting is performed.
• Reference prices are sourced from higher timeframe candles using confirmed lookahead. Results on intraday charts should match the official Daily, Weekly, and Monthly opens of the exchange the chart is connected to.
• State classifications are heuristic. They describe observed behavior at each level in historical terms and should not be read as forecasts. A Reclaimed state is a description of what just happened, not a prediction of what comes next.
• ATR-based thresholds mean the map adapts to volatility but can feel different on very low-volume or very thinly traded instruments. Adjust the touch threshold and far distance inputs if defaults feel too loose or too tight.
• Confluence grouping uses a 0.5 ATR window. On very wide-range days this window can become large; on very narrow ranges it can feel tight.
🔶 RISK DISCLOSURE
This indicator is provided for informational and educational purposes only. It does not constitute financial advice, investment advice, trading advice, or any other form of advice. Past performance of any level, state, or methodology shown on the chart does not guarantee future results. Trading and investing involve substantial risk of loss. You alone are responsible for your decisions, for managing your risk, and for complying with the laws and regulations that apply to you. Test any tool on a demo account or in paper trading before using it with real capital. Indicator

Value Shift Ladder [AGPro Series]Value Shift Ladder
🔹 Overview
Value Shift Ladder is a market-structure mapping tool that extracts the most volume-accepted price shelves from a rolling lookback window and arranges them, in creation order, as the rungs of a ladder. Each rung is a volume-weighted zone where the market has recently spent the most time and traded the most contracts. The script then tracks how price interacts with every rung through a full Held → Broken → Reclaimed lifecycle and summarizes the entire chain into one readable ladder state: Rising, Falling, Mixed, Broken, Reclaiming, Building, or Neutral.
The goal is not to predict direction and not to produce buy or sell signals. The goal is to give the chart reader a continuously updated answer to one question: where is the market's current fair-value region, how is that region moving over time, and which prior value shelves are still relevant versus which have been abandoned. This makes the tool useful as a structural reference for volume-profile readers, auction-theory traders, and anyone who builds a bias from accepted-value migration rather than from trend lines or moving averages.
🔸 Unique Edge
Most volume-based tools either draw a single static profile snapshot, or plot every candidate level and leave the reader to filter. Value Shift Ladder does three things differently:
Multi-shelf chronological ladder. Instead of producing one value band, the script maintains a ranked set of up to eight volume-accepted shelves and arranges them in the order they were first registered. This preserves the migration history of accepted value instead of collapsing it into one average.
Proximity-gated visualization. Only shelves within a configurable ATR distance from current price are drawn on the chart, counted in the panel, and fed into the ladder direction state. Distant historical shelves exist in memory but do not clutter the chart or bias the readout — the ladder always reflects the value structure that is actually relevant to the current bar.
Adaptive, confidence-aware breaks. A shelf is not broken on a single close outside its band. Young shelves are strongly protected (3.0 × ATR), maturing shelves require a medium distance (1.5 × ATR), and fully-aged shelves use the user-defined break distance. Shelves that have been re-confirmed multiple times gain a 2× confidence multiplier on top of that, preventing established value regions from being lost to a single volatility spike.
🔸 Methodology
1) Volume Profile Construction
The script divides the rolling lookback window into equal price bins and distributes each bar's volume across every bin it touches, proportional to range coverage. Zero-range bars are assigned to their single bin. This produces a volume-weighted histogram of the lookback period.
2) Shelf Extraction
The top-K bins by volume are selected iteratively. After each pick, the chosen bin and its ATR-neighborhood are zeroed out before the next pick, enforcing a minimum separation between shelves and preventing a single high-volume cluster from dominating every rung. Each surviving bin becomes a shelf, anchored at its bin-center price.
3) Shelf Merging and Confidence
On every refresh, newly extracted shelves are checked against existing ones. If a new shelf falls within the ATR separation of an existing non-broken shelf, the existing shelf's volume is refreshed and its confidence score is incremented. Otherwise a new shelf is registered. Confidence is capped at ten and used downstream to scale break tolerance.
4) Lifecycle State Machine
Each shelf carries one of three states — Held, Broken, or Reclaimed. Held flips to Broken when price closes beyond an adaptive break distance for three recent bars. Broken flips to Reclaimed when price dwells back inside the band for a user-defined number of bars. Reclaimed auto-promotes to Held once the shelf has stabilized past a short age threshold.
5) Ladder Direction
Proximity-filtered active shelves are sorted by creation order. The last one, two, or three rungs are compared to produce a single state: Rising if the sequence is monotonically higher, Falling if lower, Mixed if non-monotonic, plus transient overrides for Broken, Reclaiming, Building, or Neutral conditions.
6) Pruning
Stale broken shelves expire after a timeframe-aware window. A hard cap of ten active shelves is enforced, with broken shelves removed first when the cap is hit.
🔹 Signals and Alerts
The script provides four deterministic state-change alerts, all tied to closed-bar transitions:
— New Ladder Step Formed: fires when a new volume-accepted shelf is first registered.
— Ladder Step Held: fires when an existing shelf is re-confirmed by the rolling profile.
— Ladder Step Broken: fires when a held shelf transitions to broken.
— Ladder Step Reclaimed: fires when a broken shelf transitions back to reclaimed.
These alerts describe structural state changes inside the indicator logic. They are not trade signals and do not imply expected profitability, win rate, or directional certainty.
🔸 Key Inputs
— Profile Mode (Auto / Manual): Auto derives lookback and refresh from the chart timeframe. Manual exposes both for full control.
— Manual Lookback (bars): Size of the rolling window used to build the profile.
— Manual Refresh Interval (bars): How often the profile is rebuilt.
— Profile Resolution (bins): Number of price bins the range is divided into.
— Target Shelf Count: Maximum number of shelves kept active.
— Min Volume Ratio: Minimum fraction of the top-bin volume a bin must hold to qualify as a shelf.
— Min Shelf Separation (ATR): Minimum ATR distance between two shelves.
— Break Distance (ATR): Fully-aged break tolerance.
— Reclaim Dwell Bars: Bars needed inside the band to flip Broken to Reclaimed.
— Max Visible Distance (ATR): Proximity gate for drawing and counting shelves.
— Display options: panel position, panel font size, on-chart label size, alerts toggle.
🔹 How to Use
Value Shift Ladder is designed as a structural reference rather than a signal engine. Typical reading workflows include:
— Bias framing. Read the Ladder state first. Rising or Falling indicates a one-sided migration of accepted value; Mixed indicates balance; Broken or Reclaiming highlights an active transition.
— Dominant reference. The Dominant row in the panel highlights the nearest held or reclaimed shelf within two ATR of price. Use it as the closest structural reference for scenario planning, not as an execution level.
— Proximity discipline. Because shelves more than the configured ATR distance away are not drawn, the ladder always reflects value structure that is currently relevant. When no shelves are visible, the market is between value regions — a context in which mean-reversion assumptions weaken.
— Confluence. The tool is designed to be combined with independent confirmation such as session structure, higher-timeframe bias, or volume analysis. It is not meant to stand alone as a decision source.
🔸 Limitations and Transparency
— Volume profile quality depends on the instrument's volume reporting. On symbols with unreliable or synthetic volume, shelf placement may drift.
— The profile is recomputed on the close of refresh bars. Intrabar readings on the current bar can change until the bar closes; state transitions evaluate the last three bars for breaks and the reclaim-dwell window for reclaims, so fresh transitions can flip until those bars close.
— On extremely illiquid sessions or instruments with frequent volatility spikes, the adaptive-break logic can delay transitions by design. This is a tradeoff in favor of stability.
— Past structural behavior at a shelf does not guarantee future behavior. The tool does not forecast direction and is not a trading strategy.
🔹 Risk Disclosure
This script is a structural visualization tool provided for educational and analytical purposes. It is not financial advice, not a trading strategy, and not a signal service. All trading involves risk of loss. Past market behavior is not indicative of future results. Users are fully responsible for their own trading decisions and for independently verifying the tool's behavior on their chosen instruments and timeframes before relying on it for any purpose. Indicator

Delivery Regime Map [AGPro Series]Delivery Regime Map
🔹 Overview
Delivery Regime Map classifies the market's delivery character into four distinct regimes — Balanced, Directional, Fragmented, and Exhausted — giving traders instant context on whether the tape is trending with conviction, consolidating, breaking into volatile chop, or fading after an extended move. Rather than asking "is this bullish or bearish?", DRM answers a more useful question: "what kind of market am I in, and what kind of setup is appropriate here?"
The indicator overlays a soft state ribbon across the chart, prints confirmed regime shift labels at the moment of transition, and maintains a compact status panel with the active regime, a composite conviction score, regime duration, and time since the last shift. All outputs are confirmed on bar close with dwell-based hysteresis to suppress noise.
🎯 Unique Edge
Most regime or trend-strength tools collapse the market into a single linear axis (strong ↔ weak, bullish ↔ bearish). Delivery Regime Map is categorical, not linear — it identifies the qualitative character of price delivery by fusing four independent dimensions:
• Displacement quality (how much of each bar's range is body vs. wick)
• Directional persistence (close-to-close consistency + EMA slope alignment)
• Continuity (same-side runs penalized by gap noise)
• Range expansion (current range normalized by ATR baseline)
These dimensions combine into a composite score, but the regime classification uses banded thresholds with hysteresis — meaning a Directional tape must decisively lose its edge before flipping to Fragmented or Exhausted. This produces sparse, high-conviction transitions rather than the constant flipping typical of single-value strength meters.
⚙️ Methodology
The engine computes five rolling metrics across a user-defined window (default 20 bars):
1. Displacement Quality — |close − open| / range, smoothed. High values mean strong, decisive bars with minimal wick rejection.
2. Directional Persistence — average signed close direction plus an EMA slope-alignment check. Rewards tapes that move one way without reversing.
3. Continuity — the proportion of consecutive same-side candles, penalized by an average gap-size term (opens far from prior closes indicate fractured delivery).
4. Range Expansion — current range vs. ATR baseline, clipped to . High expansion combined with low continuity flags Fragmented tapes.
5. Exhaustion Proxy — the decay rate of displacement quality after a period of high persistence. Triggers near trend terminations where bars shrink while direction lingers.
A classifier selects the active regime by priority (Directional → Exhausted → Fragmented → Balanced), and a dwell-bar confirmation (default 5 bars, or 8 under Strict mode) plus a minimum-gap filter (default 10 bars) prevent whipsaw transitions.
🚦 Signals & Alerts
Four alert conditions are built in, each firing only on a confirmed regime shift:
• Regime shifted to Directional — conviction is rising; the tape is trending
• Regime shifted to Fragmented — wide, disconnected bars; chop risk elevated
• Regime shifted to Exhausted — prior trend is losing steam; mean-reversion risk
• Regime shifted to Balanced — low-conviction state; breakout potential building
All alerts include the ticker and interval in the message payload.
🎛️ Key Inputs
• Regime Window (8–60) — length of the measurement window
• Regime Sensitivity (Low / Normal / High) — hysteresis band width
• Strict Classifier — extends dwell requirement from 5 to 8 bars
• Minimum Bars Between Shifts — anti-chop spacing filter
• Show State Ribbon / Regime Shift Labels — visual toggles
• Panel Position + Font Size — 6 anchor positions, 5 size options
• Label Font Size — matches user's chart density preference
Every input carries an inline tooltip explaining its behavior and tradeoffs.
📚 How to Use
• Use Directional regimes to favor trend-following entries and trailing stops
• Use Balanced regimes to prepare for breakouts; volatility compression often precedes expansion
• Use Fragmented regimes as a caution flag — reduce size, widen stops, or stand aside
• Use Exhausted regimes to tighten trailing stops on open trend positions; the edge may be fading
DRM is designed to be asset-agnostic and timeframe-agnostic. On lower timeframes (1m–15m), consider Strict mode and a larger minimum-gap value. On daily charts, defaults typically work well. Combine with any entry framework — order blocks, breakout levels, VWAP reclaims — as a regime filter that answers "should I even be looking for a setup here?"
⚠️ Limitations & Transparency
• The classifier is reactive, not predictive — it confirms regime changes on close, so a Directional label appears a few bars after the trend has begun. This is by design: dwell confirmation is the primary noise filter.
• Regime definitions are categorical interpretations of price statistics. They are not forecasts.
• The composite score reflects regime conviction, not directional bias. A high score in Fragmented means "confidently choppy", not "confidently bullish".
• This indicator is not a strategy. It produces no entry signals, no take-profit targets, and no stop-loss levels. It is a market-context tool intended to be combined with a trader's existing framework.
• Past regime behavior does not guarantee future regime behavior. Market character can change abruptly on news or macro events.
📜 Risk Disclosure
This indicator is published for educational and analytical purposes only. It does not constitute financial advice, a trading recommendation, or an offer to buy or sell any instrument. Trading and investing carry risk of loss, and past performance does not guarantee future results. Users are solely responsible for their own decisions and should consult qualified professionals before committing capital. Indicator

Volume Shelf Reaction Map [AGPro Series]Volume Shelf Reaction Map
🔷 OVERVIEW
Volume Shelf Reaction Map is a structural price-action tool that identifies horizontal zones where volume has historically stacked — "volume shelves" — and classifies, in real time, how price reacts each time it returns to them. Instead of showing a static S/R line, it answers a sharper question: when price revisits this level, does it hold, get reclaimed, get rejected, or lose the level entirely? Fresh shelves (never revisited) are visually separated from reused ones, so the chart communicates not just where the levels are, but which ones still carry unused participation behind them.
🧭 UNIQUE EDGE
Most support/resistance and volume tools stop at drawing a zone. This script adds a reaction-state layer on top of shelf detection:
• Five reaction states per shelf: TOUCH, HELD, RECL (reclaimed), REJ (rejected), LOST
• Fresh vs Reused classification — shelves that have already been tested at least once are faded, so untouched structural levels stand out immediately
• Sticky state logic — a shelf keeps its reaction color until a new transition actually occurs, preventing flicker between bars
• Passive-window coloring — shelves whose last reaction is older than the user-defined active window fade to the neutral accent color, keeping old/stale levels visible without dominating the chart
• Strongest-shelf-only reaction tags with cooldown — reaction labels are printed only for the highest-strength shelf and only on actual state transitions, producing a clean chart even on long histories
The result is a volume-aware reaction map rather than a crowded S/R overlay.
🧪 METHODOLOGY
1. Pivot detection — standard pivot highs and lows over a configurable pivot length act as shelf candidates.
2. Volume qualification — each pivot bar is checked against a rolling 20-bar volume average; bars above the Volume Filter multiplier contribute extra weight to shelf strength.
3. ATR-based clustering — candidates within a configurable ATR multiple of an existing shelf are merged using a touches-weighted mean price, stabilizing the shelf location as evidence accumulates.
4. Confirmation — a shelf must reach the Minimum Touches threshold before it is rendered; weak candidates are pruned after one-third of the lookback window.
5. State machine — on every confirmed bar, a shelf's reaction is updated against the prior close's side (support vs resistance context), using an ATR-scaled buffer to distinguish genuine holds and losses from noise.
6. Ranking and rendering — on the last bar, shelves are sorted by strength; only the top N are drawn, with fresh shelves rendered solid and reused shelves rendered thinner and faded.
🔔 SIGNALS & ALERTS
Three alert types, each debounced per shelf so the same state cannot spam consecutive bars:
• Shelf Touched — price range intersects a confirmed shelf for the first time since its last transition
• Shelf Respected — price HELDs, RECLs, or REJs at a shelf (reaction in favor of the shelf)
• Shelf Lost — price closes through a shelf with the required ATR buffer
Reaction tags on the chart (HELD / RECL / REJ / LOST) are printed only for the strongest shelf and only on a true state transition, with a user-adjustable cooldown for historical cleanliness.
⚙️ KEY INPUTS
Shelf Detection
• Lookback Window (bars) — how far back the pivot scan reaches
• Pivot Strength — bars required on each side of a pivot
• Cluster Distance (x ATR) — how tightly nearby pivots merge
• Minimum Touches — confirmation threshold
Filters & Cleanup
• Volume Filter (x average) — participation threshold for strength weighting
• Show Fresh Shelves Only — hide already-revisited shelves
• Max Shelves to Display — cap visible shelves for chart cleanliness
• Fade Reused Shelves — dim reused shelves so fresh ones stand out
• Reaction Sensitivity (x ATR) — ATR buffer used by the state machine
• Active Window (bars) — how recently a reaction must have occurred to show in full color
Visuals
• Label & Panel Size — Tiny / Small / Normal / Large (default: Normal)
• Show Reaction Tags — toggle on-chart state labels
• Tag Cooldown (bars) — minimum bars between tags on the same shelf
Panel
• Show Info Panel, Panel Location (6 anchors), Panel Theme (Dark / Light)
Alerts
• Shelf Touched, Shelf Respected, Shelf Lost
🧰 HOW TO USE
1. Add the indicator to any liquid symbol and timeframe. Volume-aware markets (crypto, index futures, major FX) and timeframes from 15m upward tend to produce the most structured shelves.
2. Start with defaults. The Active Window of 30 bars is a reasonable middle-ground; reduce it on intraday charts (around 20) or raise it on daily/weekly (30–60).
3. Read the panel:
• Active Shelves — how many of the eligible shelves are currently drawn
• Strongest Shelf — the top-ranked shelf by strength
• Current State — live reaction state of the top shelf
• Fresh / Reused — how the displayed shelves split between untested and already-tested levels
4. Use fresh shelves as higher-quality reaction candidates; treat reused shelves as context, not primary triggers.
5. Combine the HELD / RECL / REJ / LOST reactions with your own trigger logic (e.g. break-retest, liquidity sweeps, momentum shifts). This script is a location and reaction tool — not a standalone trade system.
🧱 LIMITATIONS & TRANSPARENCY
• This indicator describes historical structure and live reactions; it does not forecast price direction.
• Pivot-based detection requires the Pivot Strength window to complete on both sides, so fresh pivots appear with a natural lag equal to the pivot length.
• On very low-volume symbols or illiquid timeframes, shelves may be sparse or unstable.
• The state machine is bar-close based; intrabar wicks can temporarily intersect a shelf without changing its state until the bar confirms.
• Max drawing limits (max_lines_count, max_labels_count, max_boxes_count) are set to 120; extremely long histories combined with large lookbacks may drop the oldest drawings.
⚠️ RISK DISCLOSURE
This script is provided for educational and analytical purposes only. It is not a strategy, not a buy/sell signal generator, and not financial advice. Trading involves substantial risk of loss. Past behavior of levels, volume, or reactions does not guarantee future outcomes. Always apply your own risk management, position sizing, and independent judgment. The author and AGProLabs accept no responsibility for decisions made based on this indicator. Indicator

Rejection Block Quality [AGPro Series]Rejection Block Quality
🔹 OVERVIEW
Rejection Block Quality is an ICT-inspired detector that identifies long-wick rejection candles at swept swing pivots and grades each block by objective quality criteria. Unlike Order Block logic — which anchors to the last opposite-direction body before displacement — a Rejection Block (RB) is born from a wick that pierces a prior swing liquidity pool and closes back inside it, with the body confirming displacement on the follow-through bar. The rectangle is drawn from the wick base to the candle body, capturing the exact zone where smart money absorbed the sweep.
🎯 UNIQUE EDGE
Three design choices separate this tool from generic wick or order block indicators:
• Swing-pivot sweep requirement — a rejection is only counted when price sweeps a confirmed swing high or low before the reversal close. Stand-alone wick patterns without liquidity context are filtered out.
• Displacement confirmation window — the candle following the rejection must travel at least 0.6× ATR in the reversal direction, within a 1–5 bar lookahead. No displacement, no block.
• Quality tiering (A / B / C) from three orthogonal factors — wick-to-body ratio, displacement magnitude, and untested freshness. An exceptional wick ratio (≥5× body) promotes a block to A tier regardless of other scores, preserving rare high-conviction rejections.
🛠️ METHODOLOGY
Detection pipeline on every bar:
1. Confirm a pivot sweep using a user-configurable lookback (default 5 bars each side).
2. Check the wick-to-body ratio against a minimum threshold (default 1.8×), with the dominant wick on the sweep side.
3. Queue the candle as a pending block and wait for displacement confirmation.
4. Measure displacement as price travel from the body reference over 1 to 5 bars, normalized by ATR.
5. On confirmation, draw the RB zone from the wick base to the body, record the tier, and begin lifecycle tracking.
Zone lifecycle tracks four events — test (price enters the zone), hold (price exits without a body close through the far edge), break (body close through the far edge), and near miss (price approaches within a configurable ATR band without entering). All events are edge-detected to prevent inflated counts when price lingers near a zone.
📊 SIGNALS & ALERTS
• New block formation label — A / B / C tier plus wick ratio, placed with anti-collision offset.
• Test markers (T) — one per zone entry event, with cooldown to prevent visual clutter.
• Break markers (B) — placed when a zone is invalidated by a body close.
• Wick border highlight — thick colored line on the originating rejection candle.
• Alerts — configurable minimum tier (A, B, or C) fires once per bar close for each qualifying new block.
⚙️ KEY INPUTS
• Detection — Pivot Length, Min Wick-to-Body Ratio, ATR Length, Min Displacement (× ATR), Displacement Confirm Window.
• Zone Management — Max Active Zones per Side, Zone Right Extension, Near-Miss Distance, Near-Miss Cooldown, Break Requires Full Body Close.
• Visuals — Show Zones, Show Tier Labels, Highlight Rejection Wick Border, Show Test / Hold / Break Markers, Zone Fill Opacity, Label Font Size.
• Panel — Show Panel, Panel Location, Panel Font Size, Panel Theme (Dark / Light).
• Alerts — Minimum Tier for Alerts.
🧭 HOW TO USE
Start on a higher timeframe (4H or 1D) to identify macro RB zones, then drill down to execution timeframes for entries. Treat A-tier blocks as the highest-conviction zones, B-tier as situational, and C-tier as context-only. Combine with trend filters, higher-timeframe structure, and risk management — a Rejection Block is a zone of interest, not a standalone buy or sell signal. Use the panel statistics to evaluate how the selected symbol and timeframe have historically respected these zones before committing to them in live decision-making.
⚠️ LIMITATIONS & TRANSPARENCY
This indicator is a structural detector, not a trading strategy. It does not forecast price direction, generate entry or exit orders, or calculate position sizing. The Success Rate statistic reflects how often past tests on detected zones held versus failed within the visible history — it is a descriptive metric, not a performance projection. Zone detection is historical and reactive: a block only appears after the displacement bar closes, so interpretation on live-forming bars is tentative. Performance varies by symbol, timeframe, and market regime.
⚠️ RISK DISCLOSURE
Trading involves substantial risk of loss. Past behavior of any pattern does not guarantee future outcomes. Use this tool as part of a complete analytical framework that includes your own risk management, position sizing, and broader market context. Nothing in this indicator or description constitutes financial advice. Indicator

Power of Three (AMD) Map [AGPro Series]Power of Three (AMD) Map
🔹 Overview
The Power of Three (AMD) Map visualizes ICT's foundational session-framework concept directly on the chart: Accumulation → Manipulation → Distribution. For each daily or weekly session, the indicator automatically segments the AMD phases, detects classic liquidity sweeps during Manipulation, and projects a distribution target based on the accumulation range. Built for ICT / Smart Money Concept traders who want session-aware bias, transparent sweep validation, and forward-looking expansion projections.
🔹 Unique Edge vs Other PO3 Scripts
Most PO3 indicators on PulseWire simply highlight time-based session blocks and leave liquidity detection to the user's eye. This implementation distinguishes itself through:
• Phase detection by bar count, not timestamps — ensuring consistent AMD ratios across every timeframe from 15m to 1D
• Adaptive sweep confirmation — accepts both same-bar ICT-strict sweeps (wick + close-back) and 2-bar delayed confirmations, significantly improving setup capture without sacrificing quality
• Dual-reference sweep logic — checks both the previous session's accumulation range AND the current session's accumulation range, capturing sweeps that single-reference scripts miss
• TF-adaptive target multiplier — Daily sessions project targets at 0.7× accumulation range, Weekly sessions at 0.3×, aligned with realistic crypto volatility profiles
• Transparent dual-KPI panel — separates Sweep Rate (how often valid sweeps occur) from Target Hit rate (how often the projected expansion completes), giving traders honest, verifiable performance metrics
🔹 Methodology
Each session is divided into three bar-count-based windows:
• Accumulation (first 33% of expected session bars) — tracks the initial range
• Manipulation (next 17%) — scans for liquidity sweeps against the previous session's accumulation high/low and the current accumulation extremes
• Distribution (remaining 50%) — the expected expansion phase, measured against the projected target
A valid Manipulation sweep requires a wick penetrating a reference level followed by a body close back inside (classic ICT definition). In Adaptive mode, sweeps can also confirm within a 2-bar window. The detected sweep direction determines the PO3 bias: sweeping a high produces a Bearish PO3 (expected downside distribution); sweeping a low produces a Bullish PO3 (expected upside distribution). A target price is projected from either the accumulation midpoint (default, symmetrical expansion) or the sweep extreme, multiplied by the configured ratio.
🔹 Signals & Alerts
Four built-in alert conditions:
• Manipulation phase started — Accumulation complete
• Bullish sweep detected — Low was swept, Bullish PO3 forming
• Bearish sweep detected — High was swept, Bearish PO3 forming
• Distribution target hit — Expansion reached projected level
🔹 Key Inputs
• Session Scope — Auto (TF-adaptive), Daily, or Weekly
• Accumulation / Manipulation window percentages (defaults 33% / 17%)
• Sweep Reference — Previous Accumulation, Current Accumulation, or Both (default)
• Sweep Confirmation — Strict (same-bar) or Adaptive (up to 2-bar, default)
• Target Projection Method — From Accumulation Mid (default) or From Sweep Extreme
• Multiplier Mode — Auto TF-adaptive (default) or Manual
• Historical sessions to display (default 5, max 10)
• Full visual customization — colors, label position, font size, panel position & theme
• Premium visuals — sweep triangle markers, target price label (toggleable)
🔹 How to Use
1. Add the indicator to any crypto or forex chart with timeframe 1H–4H (for Daily PO3) or 1D (for Weekly PO3)
2. Watch the Accumulation range form at the start of each session — this defines the sweep reference level
3. When Manipulation phase begins, monitor for a wick that sweeps the previous accumulation high/low with a body close-back (triangle marker appears on confirmed sweeps)
4. Once a sweep confirms, the panel displays the directional bias (Bullish/Bearish PO3), the projected target price, and a dashed target zone extends toward the session end
5. Use the Sweep Rate and Target Hit percentages in the panel to contextualize reliability on your chosen symbol and timeframe
6. The panel's Completion counter grows as new sessions close — give the script enough historical bars to build meaningful statistics
🔹 Limitations & Transparency
• AMD phase windows are bar-count approximations — real sessions do not cleanly segment into 33/17/50 splits. The indicator is a structural guide, not a timing oracle
• Sweep detection requires the chart timeframe to contain at least 4 bars per session. On 1D charts, use Weekly mode; on 1W charts, the indicator will display a warning
• The projected target is a statistical expectation based on the accumulation range. The Target Hit rate (shown in panel) reflects the historical frequency of this expectation being met on the current symbol/timeframe — typically 40–55% on crypto majors
• Sweep Rate shows the percentage of completed sessions where a valid Manipulation sweep was detected; sessions without sweeps produce no bias and no target
• Historical statistics accumulate from the first bar available on the chart and reset only when the chart reloads
🔹 Risk Disclosure
This indicator is a visualization and analysis tool. It does not generate trade signals, predict price movement, or guarantee outcomes. Past Sweep Rate and Target Hit statistics reflect historical behavior only and do not imply future performance. All trading decisions and risk management remain the responsibility of the user. Indicator

MTF Trend Agreement Map [AGPro Series]MTF Trend Agreement Map
🔹 **Overview**
MTF Trend Agreement Map is a multi-timeframe alignment engine that reads the trend across five timeframes at once and distills the result into a single transparent agreement score. Instead of forcing you to flip between charts, the map tells you, on every bar, how many timeframes agree, which side wins, and whether the market is in a locked regime, a forming trend, or a conflict phase. It is built for swing traders, HTF-bias scalpers, position traders, and anyone who uses top-down analysis as part of their process.
🔸 **What Makes It Different**
Most MTF indicators show a single method (usually a moving-average cross) repeated across timeframes, which means five rows that all agree with each other by construction. This map does something different: for each timeframe it runs three independent methods — an EMA regime filter, a pivot-based market-structure read (HH/HL vs LH/LL), and a normalized momentum slope — and blends their individual votes into the final score. You see not only the agreement across timeframes but also the agreement across methods, which exposes weak or borderline regimes that a single-method tool would quietly hide.
🔺 **Methodology**
• EMA Trend: a timeframe is bullish when EMA50 is above EMA200 and price is above EMA50; bearish on the mirror condition; neutral otherwise.
• Market Structure: confirmed pivots are tracked in real time. A timeframe is bullish while the last two confirmed swings form higher highs and higher lows, bearish on lower highs and lower lows.
• Momentum Slope: the change in linear regression across a configurable lookback, normalized by ATR so that fast and slow assets are comparable.
• Consensus per timeframe: each active method casts a vote; bulls minus bears determines the row's net direction and strength.
• Overall alignment: bull and bear votes are summed across all active timeframes; the dominant side's share defines the agreement percentage.
◆ **Three-State Regime Engine**
• **LOCKED** — agreement above the strong threshold (default 80%). High-conviction regime, continuation-friendly, background tint activates.
• **TRENDING** — agreement between 50% and the strong threshold. Directional bias forming but not yet fully aligned. Trade with reduced size or wait for confirmation.
• **SPLIT** — agreement below 50%. Timeframes are in conflict, no majority side. Classic chop phase, favors mean-reversion strategies or standing aside.
🔔 **Signals & Alerts**
• Regime Lock (Bull or Bear): fires the first bar agreement crosses above the strong threshold while one side dominates. Designed as a continuation trigger, not a reversal signal.
• Chop / Conflict: fires when no side holds the majority, a classic filter for mean-reversion systems or a stand-aside cue for trend traders.
• Both generic and directional alertcondition() hooks are exposed so you can wire the map into automations.
⚙️ **Key Inputs**
• Core Engine: toggle any of the three methods on or off, and tune the pivot length and momentum lookback independently.
• Timeframes: four user-selected timeframes plus an optional Current row that auto-adapts to the chart TF. If the chart TF matches any selected TF, the Current row is hidden automatically to avoid double-counting.
• Panel: six location presets, four text sizes (default Normal), dark or light theme, optional per-method breakdown row.
• Background Tint: enable or disable, set the strong-alignment threshold (50–95%) and control transparency (70–99) to keep the chart premium.
📖 **How to Use**
• Top-down confirmation: take trades on your execution timeframe only when the higher rows in the map agree with your thesis.
• Regime filter: enable Regime Lock alerts to catch moments when the full map snaps into alignment — these are typical continuation windows.
• Conflict filter: when the map prints SPLIT, widen stops, reduce size, or step aside; trend strategies historically underperform during these phases.
• Method debugging: turn on the per-method breakdown to see which methods are driving the score and which are fighting it.
⚠️ **Limitations & Transparency**
• All timeframe values are non-repainting at bar close (lookahead is disabled), but intrabar values can update until the parent bar closes — this is expected MTF behavior.
• Market Structure requires enough history on each timeframe to confirm two swings; on very young assets or short charts the structure vote may be neutral until pivots print.
• The map is a context tool, not a standalone entry system — combine it with your own execution logic, risk management, and bias.
📌 **Risk Disclosure**
This script is provided for educational and analytical purposes only. It does not constitute financial advice, a recommendation, or a solicitation to trade any instrument. Markets involve substantial risk and past behavior does not guarantee future results. Always do your own research and manage risk responsibly. Indicator

HH/HL/LH/LL Structure Tracker [AGPro Series]HH/HL/LH/LL Structure Tracker
🔹 Overview
HH/HL/LH/LL Structure Tracker automatically classifies every confirmed swing on your chart using pure Dow Theory — the original price-action framework that precedes and underlies every modern market-structure methodology. Each pivot high is labeled as a Higher High (HH) or Lower High (LH), and each pivot low as a Higher Low (HL) or Lower Low (LL). The sequence of the last four swings derives a live trend state: Bullish, Bearish, or Ranging.
No oscillators. No lagging averages. Just the raw geometry of price.
💎 What Makes This Different
While most "market structure" indicators focus on Break-of-Structure or Change-of-Character logic layered with Smart Money terminology, this script returns to the foundation: the four-swing classification that Charles Dow documented over a century ago. The result is an uncluttered, universally readable overlay that communicates structural context at a glance — regardless of which higher-level methodology you apply next (SMC, Wyckoff, Elliott, or classical technical analysis).
Key differentiators versus generic HH/HL scripts on the public library:
• Live structure range zone that dynamically recolors with the trend state (bullish teal, bearish pink, ranging amber).
• Bull Streak and Bear Streak counters — a quantifiable measure of trend persistence (e.g. "3 consecutive HH-HL swings").
• Semantic break classification: the panel distinguishes a continuation break (HH or LL broken in trend direction) from a reversal break (LH or HL broken against the prior structure).
• Progressive label offset algorithm: when several same-type swings cluster without an intervening opposite swing, each subsequent label is offset further from price, eliminating the overlap that plagues most swing scripts on fast-moving charts.
• AGPro design language: premium info panel, adjustable font size and theme, and a disciplined color palette.
🧠 Methodology
1. Pivot detection. A confirmed swing high is a bar whose high exceeds the preceding and following N bars (N = Pivot Length, default 5). Confirmed swing lows mirror the rule. Confirmation occurs N bars after the pivot bar, never repaints.
2. Swing classification. Each new confirmed high is compared to the previous confirmed high. If greater, it is HH; if lesser, LH. Lows are compared to the previous low: greater means HL, lesser means LL.
3. Trend derivation. If the most recent high is HH and the most recent low is HL, the trend state is Bullish. If LH and LL, Bearish. Any mixed sequence (HH + LL, LH + HL) returns Ranging.
4. Structure range zone. A rectangle is drawn between the most recent swing high and most recent swing low. The zone is always current: as new swings confirm, the zone updates in place. Zone color tracks the trend state.
5. Structure break. A close above the most recent swing high (or below the most recent swing low) fires a break event. The type of swing broken is reported — breaking an LH or HL typically precedes a trend reversal; breaking an HH or LL typically signals continuation.
📊 Signals & Alerts
Three optional alert types are available, each using "once per bar close" frequency to prevent intrabar noise:
• New Higher High confirmed — fires when a fresh HH is classified.
• New Lower Low confirmed — fires when a fresh LL is classified.
• Structure break — fires on a close outside the current structure range, labeled as either (reversal signal) or (continuation).
The live info panel reports: Trend state, Bull Streak, Bear Streak, Last High (with type and price), and Last Break (with type and price).
⚙️ Key Inputs
• Pivot Length — sensitivity of swing detection (2 to 50). Lower values capture minor structure; higher values isolate major swings only. Typical: 3–8 intraday, 5–15 swing trading.
• Max Visible Labels — caps the number of historical labels kept on the chart to preserve a premium uncluttered look.
• Label & Panel Font Size — five sizes from Tiny to Huge, default Normal.
• Label Distance from Price (ATR) — base vertical offset of labels from pivot candles.
• Structure Range Zone — toggle, transparency, and border.
• Trend Background Tint — subtle bullish or bearish chart shading.
• Info Panel — toggle, location (six positions), and theme (Dark or Light).
• Alerts — independent toggles for new HH, new LL, and structure break.
🎯 How to Use
Context tool, not a standalone signal generator. Use the trend state to filter entries from your primary methodology: take long setups only while Trend is Bullish and Bull Streak is building, or vice versa. The structure range zone highlights the active battleground between buyers and sellers — trades taken inside the zone are counter-trend by definition, trades taken on a decisive break of the zone align with the emerging new trend.
Reversal breaks (LH or HL broken) are high-information events — they are often the first objective signal that a prevailing trend is losing conviction, ahead of any moving-average cross or momentum divergence. Continuation breaks (HH or LL broken) are confirmation events that validate staying with the trend.
Works on all markets and all timeframes. Particularly effective on liquid instruments with clear structural rhythm: major crypto pairs, FX majors, index futures, and large-cap equities.
⚠️ Limitations & Transparency
• Pivot confirmation requires N bars after the swing; the most recent unconfirmed swing is never labeled.
• In low-volatility sideways regimes, pivot clustering is inevitable — the Pivot Length input should be raised to filter noise on ranging charts.
• The trend state is derived from only the last two swings; it does not account for higher-timeframe context. Pair with a higher-timeframe version of the same script for multi-timeframe confluence.
• Does not provide entry, stop, or target levels. It is a structural framework, not a complete trading system.
📌 Risk Disclosure
This indicator is for educational and analytical purposes only. It does not constitute financial advice, a trading recommendation, or a guarantee of future performance. All trading involves risk of loss. Past structural patterns do not guarantee future outcomes. Always conduct your own due diligence and use appropriate risk management. Indicator

JOAT Institutional Convergence [JOAT]JOAT Institutional Convergence
Introduction
The JOAT Institutional Convergence strategy is a systematic, rules-based trading framework that unifies the logic from all five JOAT indicators into a single coherent entry and exit engine. Each indicator contributes a specific filter layer: the Volumetric Structure Engine provides directional market structure bias, the Adaptive Spectral Bands Hann ribbon provides the primary entry trigger, the Institutional Session Profiler contributes optional session timing, the Imbalance Zone Classifier contributes optional FVG proximity filtering, and the Fractal Liquidity Map contributes fractal-anchored stop placement. No layer is redundant — each addresses a different dimension of trade selection.
The core problem this solves: most PulseWire strategies use a single indicator as both entry and exit signal, producing over-fitting to one methodology. This strategy uses five independent measurement systems simultaneously. An entry only fires when multiple independent conditions converge — structure, momentum, regime, and optionally session and imbalance context. The result is a strategy that takes trades for quantifiable, multi-factor reasons, not because a single line crossed.
Core Concepts
1. Entry Logic — Hann Ribbon Crossover Primary
The primary entry trigger is the Hann FIR ribbon crossover — when the fastest layer (h0) crosses above the second layer (h1), a potential long entry is flagged. This is the earliest mathematically-grounded signal that momentum is shifting:
bool cross_bull = ta.crossover(h0, h1)
bool cross_bear = ta.crossunder(h0, h1)
bool long_sig = (cross_bull or (bos_bull_sig and h0 > h2)) and
struct_trend >= 0 and
adx >= i_adx_min and adx <= i_adx_max and
sess_ok and fvg_ok
The crossover fires on the bar where momentum begins to shift — not after full ribbon alignment is confirmed. This is intentional: waiting for full alignment reduces trade count significantly and enters late. The structural trend filter (struct_trend >= 0) ensures the crossover is not taken against a confirmed downtrend.
2. Structure Filter — VSE Swing Classification
Market structure is classified using the same non-repainting swing detection as the Volumetric Structure Engine. Higher highs and higher lows (struct_trend = 1) are bullish; lower highs and lower lows (struct_trend = -1) are bearish; a mixed state (struct_trend = 0) is neutral. The strategy allows longs in bullish or neutral structure (>= 0) and shorts in bearish or neutral structure (<= 0):
bool new_sh = high == ta.highest(high, i_sw_len) and high < ta.highest(high, i_sw_len)
bool new_sl = low == ta.lowest (low, i_sw_len) and low > ta.lowest (low, i_sw_len)
This prevents the ribbon crossover from triggering entries during confirmed counter-trend structure without requiring perfect alignment.
3. Regime Filter — ADX Gating
ADX gates entries in both directions. Below the minimum ADX, the market has no directional momentum — ribbon crossovers in flat, dead markets produce noise. Above the maximum ADX, the market is over-extended and new entries chase moves that are already mature:
float adx_val = ta.rma(math.abs(dmi_p - dmi_m) / (dmi_p + dmi_m + 0.001) * 100, i_adx_len)
bool adx_ok = adx_val >= i_adx_min and adx_val <= i_adx_max
Default range: 8–60. This wide range accommodates crypto and forex markets that trend aggressively for extended periods (ADX 40–60) as well as early-stage trends (ADX 8–15).
4. Position Sizing — Percentage Risk per Trade
Position sizing is calculated dynamically based on the user's equity risk percentage and the distance to the stop-loss level:
float sl_dist = math.abs(close - sl_price)
float qty = sl_dist > 0 ? (strategy.equity * i_risk_pct / 100.0) / sl_dist : 1.0
strategy.entry("Long", strategy.long, qty = qty)
This ensures every trade risks the same percentage of equity regardless of market volatility — a wider stop reduces size, a tighter stop increases size. The default is 1% risk per trade.
5. Stop-Loss Placement — Fractal Extreme + ATR Buffer
The stop-loss is placed beyond the most recent 20-bar fractal extreme in the direction of the trade, plus one ATR buffer. This anchors the stop to genuine structural pivots rather than arbitrary fixed-pip distances:
float sl_long = ta.lowest(low, 20) - atr_14 * i_sl_atr_buf
float sl_short = ta.highest(high, 20) + atr_14 * i_sl_atr_buf
Features
Five-Layer Entry Filter: Structure + Ribbon + Regime + Session (optional) + FVG proximity (optional)
Hann FIR Ribbon Crossover: Primary entry trigger — earliest mathematically-valid momentum signal
BOS-Armed Entries: Break of Structure signals additionally arm entries for up to 30 bars
Percentage Risk Sizing: Dynamic position size calculated from equity risk % and SL distance
Fractal-Anchored Stop Loss: Stop at 20-bar fractal extreme + ATR buffer
Fixed R:R Take Profit: Configurable reward-to-risk ratio for TP placement
Trailing Stop: Built-in trail_offset activates immediately from entry, protecting profits
Session Filter (optional): Trade only during Asia, London, and/or New York sessions. Off by default for 24h markets.
FVG Proximity Filter (optional): Require entry to be near an active imbalance zone. Off by default for maximum trade count.
Performance Dashboard: Displays trade count, win rate, average R, last trade result, and active filter states
Realistic Simulation: 2-tick slippage + 0.05% commission built into all backtests
Input Parameters
Structure (VSE):
Swing Length: Lookback for swing high/low detection (default: 20)
Ribbon Filter (ASB):
Hann Base Length: Core FIR filter period (default: 20)
Ribbon Spacing: Gap between ribbon layers (default: 3)
Regime Filter:
ADX Length: Period for ADX calculation (default: 14)
Min ADX for Entry: Minimum ADX to allow entries (default: 8). Lower = more trades. Raise to filter ranging markets.
Max ADX for Entry: Maximum ADX to allow entries (default: 60). Lower = skip over-extended moves.
Session Filter (ISP):
Enable Session Filter: Gate entries by session time (default: off — recommended for crypto and indices)
Trade Asia / London / NY: Toggle per-session entry permission
Imbalance Filter (IZC):
Require Near FVG Zone: Entry must be within ATR proximity of an active imbalance (default: off)
FVG Proximity (x ATR): Distance threshold for FVG proximity check (default: 1.5)
Risk Management:
Risk Per Trade (%): Equity percentage risked per trade (default: 1.0)
Reward:Risk Ratio: Take profit as a multiple of the SL distance (default: 2.0)
SL ATR Buffer: ATR multiple added beyond fractal extreme for stop (default: 0.5)
Trail Offset (ATR): Trail stop distance from price (default: 1.5)
BOS Armed Bars: How many bars a BOS signal remains active for entry (default: 30)
How to Use This Strategy
Step 1: Select Your Market and Timeframe
Start on the 1-hour chart. The strategy is calibrated for 1H on crypto, forex majors, and equity indices with default settings. Shorter timeframes (15m) can increase trade count further but require tighter ADX filtering to avoid noise.
Step 2: Run the Backtest with Defaults
With all optional filters off (session and FVG disabled), the strategy trades every valid ribbon crossover that passes structure and regime. This produces the highest trade count. Review the equity curve for smoothness — you want consistent growth, not reliance on a few large winners.
Step 3: Add Filters Progressively
Enable the session filter to restrict to London and NY on forex pairs. Enable the FVG proximity filter to require imbalance context on entries. Each filter reduces trade count but should improve win rate if the underlying edge is present on your instrument.
Step 4: Interpret the Dashboard
The dashboard shows the current state of every filter layer — which ones are active and whether each condition is currently met. This is the diagnostic view: if no trades are firing, the dashboard tells you exactly which filter is blocking entries.
Originality Statement
This strategy is original as a unified multi-indicator convergence framework where each component is an independently published, standalone indicator. Its publication is justified because:
The five-layer filter architecture uses genuinely independent measurement dimensions — market structure (price action), momentum (FIR frequency domain), trend strength (ADX), session timing, and price inefficiency (FVG) — reducing the risk of correlated signals that appear to confirm each other but measure the same thing
Hann FIR crossover as the primary trigger provides a mathematically grounded entry timing signal with lower lag than EMA crossovers of equivalent period — a meaningful improvement to the timing of systematic entries
Dynamic position sizing calculated from SL distance anchored to fractal extremes creates risk-normalized sizing that adapts to each trade's structural context rather than using fixed lot sizes
The modular filter design allows each filter to be toggled independently, making the strategy adaptable to different asset classes (crypto, forex, equities) without code changes — session filter off for 24h markets, FVG filter off for maximum trade generation
Limitations
Backtesting results depend critically on the instrument, timeframe, and parameter settings. Past performance in strategy tester does not guarantee future live trading results.
The 2-tick slippage and 0.05% commission defaults are approximations. Actual execution costs vary by broker, instrument, and session liquidity. High-slippage instruments (illiquid crypto, micro-cap) will perform worse than the backtest indicates.
The FVG proximity filter references FVG logic computed internally. It does not import live data from the separately published Imbalance Zone Classifier indicator — it recomputes the same logic in isolation.
The strategy does not incorporate news filters or earnings event exclusions. Entering positions around major economic releases (FOMC, NFP) during high-volatility events will produce results inconsistent with normal market behavior.
Trailing stop and take profit interact. If price reaches the TP level before the trail stop triggers, the TP closes the trade. Users should verify via strategy properties which exit is dominant in their use case.
Disclaimer
This strategy is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Backtested strategy results are hypothetical and do not account for the psychological challenges of live trading. Past results do not guarantee future performance. Always use proper risk management and never risk more than you can afford to lose.
-Made with passion by jackofalltrades
Strategy

Trendline Confluence Map [AGPro Series]Trendline Confluence Map
Overview
Trendline Confluence Map automatically draws ascending and descending trendlines from major and minor swing pivots, then maps the zones where two or more of these trendlines intersect with each other or with key horizontal support and resistance levels. Every confluence zone is scored from 0 to 100 based on touch count, line age, trendline angle and volume, so traders can instantly see which reaction levels are backed by the most structural weight. Drawn as long rectangular zones in the classic S/R style, the map stays anchored to current price and hides old, irrelevant levels automatically.
Unique Edge
Most trendline tools either draw a single line or flood the chart with dozens of low-quality lines that never interact with each other. This indicator is built around the opposite idea: confluence is the signal, single lines are just noise. Its three design choices make the difference. First, the script maintains a disciplined pool of only the trendlines whose current projection is on-chart, so a zero-visibility clutter problem cannot happen — the panel count always equals what you actually see. Second, horizontal S/R levels participate as first-class confluence sources alongside trendlines, with a guard requiring at least one real trendline per zone so the tool remains true to its name. Third, every zone label shows a source breakdown such as "2 TL" or "1 TL + 1 SR", giving you immediate insight into why a zone was considered high-probability.
Methodology
Swing pivots are detected at two depths (major and minor) using pivot-high and pivot-low structures, with configurable lookback lengths. Each valid consecutive pivot pair spawns a trendline, and every subsequent bar that wicks into the projected line within an ATR-based tolerance increments its touch count, raising its structural validity. Horizontal S/R levels are extracted from recent major pivots and merged when they fall within 0.4 ATR of each other. On each confirmed bar, the detector builds a combined pool of all on-chart trendline projections plus horizontal levels, then runs a greedy clustering pass using a zone-width-sized tolerance window. Candidate clusters that contain at least one trendline and meet the minimum source count are scored by combining touch strength, line age, slope quality, a rolling volume component and a horizontal S/R bonus. The highest-scoring cluster becomes a confluence zone, drawn as a rectangle whose right edge extends dynamically to the current bar so every active zone stays visually anchored to price. Zones are deduplicated by price and direction, and expire automatically after a configurable age.
Signals and Alerts
Every new confluence zone is announced with a descriptive alert that carries its mid-price, score and source breakdown. A second alert fires when price first crosses into an active zone from outside, helping traders react to the moment a level is tested. Zone colors encode directional bias: green zones indicate support-favored confluence while pink zones indicate resistance-favored confluence, with the bias derived from the dominant trendline direction in the cluster. Labels on the right edge of each zone show the current score, the source breakdown and the bias tag, so at a glance the trader knows which level is strongest and why.
Key Inputs
Major Pivot Length and Minor Pivot Length define the swing-detection depth of the two pivot streams. Max Active Trendlines caps the internal pool, while Min Touches to Validate filters out unconfirmed trendlines from the confluence pass. Touch Tolerance in ATR units controls how generously the script counts interactions. Min Sources for Zone sets the confluence requirement, Zone Width in ATR units determines rectangle thickness, and Zone Forward Extension controls how far each zone reaches to the right. Max Active Zones and Max Zone Age in bars keep the map focused on currently relevant structure. Panel Theme, Panel Location and Font Size cover the full visual customization layer.
How to Use
Start on the timeframe you trade and leave the defaults — they are tuned for 4H crypto and major FX on equivalent timeframes. Scan for zones with a score above 60 in a direction aligned with the higher-timeframe bias. Use the green support-biased zones as pullback entry areas in uptrends and the pink resistance-biased zones as fade or short entry areas in downtrends. Break-and-retest traders can wait for price to pierce a high-score zone and return to its edge; mean-reversion traders can watch for rejection at zones where the source breakdown includes both a trendline and a horizontal level, as those tend to hold more strongly. The panel at the top shows a quick summary of the current map state and the distance to the nearest zone in ATR units, which is useful for position sizing and stop placement.
Limitations and Transparency
This is not a strategy and not a complete trading system. It does not predict price and does not generate buy or sell instructions. Confluence zones are structural context, not entries, and their score is an internal quality estimate derived from visible price action, not a probability of success. The script needs a reasonable amount of historical bars to build a stable trendline pool. Very low timeframes and very illiquid symbols can produce erratic pivot structures and are not the intended use case. Like all pivot-based tools, the indicator reflects past structure, and levels can weaken or become stale as market regimes change. Zones older than the configured age are removed automatically to reduce this risk.
Risk Disclosure
Trading involves substantial risk of loss and is not suitable for every investor. Past performance is not indicative of future results. This indicator is provided for educational and analytical purposes only and should not be interpreted as financial advice, an investment recommendation or a solicitation to trade. Always combine multiple forms of analysis, manage position size responsibly, and never risk capital you cannot afford to lose.
Indicator

Unicorn Model Detector [AGPro Series]Unicorn Model Detector
Overview
The Unicorn Model Detector identifies one of the most discussed setups in Inner Circle Trader (ICT) and Smart Money Concepts literature: the Unicorn Model. A Unicorn forms when a Breaker Block and a Fair Value Gap (FVG) overlap inside the same price zone — a pocket where prior swing liquidity has been swept and an unfilled imbalance still exists at the retest. The detector scans for these overlaps, tracks every occurrence through its full lifecycle, and reports aggregate statistics in a compact on-chart panel. It is a detection and bookkeeping tool, not a trading strategy.
Unique Edge
Most breaker and FVG scripts publish either zones in isolation or require the user to eyeball the overlap. This detector does the overlap match automatically and only draws a zone when both conditions are present on the same chart area with the same directional bias. A strict causality rule is enforced — the Breaker must form first (after liquidity sweep) and the FVG must appear during or after the retest, which matches the true ICT Unicorn definition. A pairing that consumes a given breaker and FVG is removed from future candidate pools, so the chart never stacks redundant zones from the same source structure. A Loose overlap mode is also provided for users who prefer an ATR-based proximity interpretation instead of strict geometric intersection.
Methodology
1. Swing pivots are detected with a configurable left/right length using ta.pivothigh and ta.pivotlow.
2. When a confirmed pivot forms, the body range of the pivot bar is stored as the potential Breaker source zone.
3. A Breaker Block is registered when price closes through the previous-bar swing level in the opposite direction.
4. A Fair Value Gap is registered when a 3-bar formation produces an unfilled imbalance (low > high for bullish, high < low for bearish) and the gap exceeds a user-defined ATR multiple.
5. A Unicorn is spawned when a same-direction Breaker zone and FVG zone overlap vertically AND the FVG formed at or after the Breaker (causality check).
6. A configurable cooldown prevents consecutive spawns from clustering, improving signal hygiene.
7. The overlap rectangle becomes the tracked zone. Zone mid is the reference entry, the stop is placed 0.4 times the zone height beyond the structure boundary, and the target is projected at the user-defined R-multiple.
Signals & Alerts
Four independent alert conditions are exposed:
- New Unicorn Detected — a fresh bullish or bearish Unicorn has just formed.
- Unicorn Triggered — price has entered the overlap zone of a pending Unicorn.
- Target Hit — a triggered Unicorn has reached its R-multiple target.
- Stop Hit — a triggered Unicorn has been invalidated at its stop level.
All alerts fire once per bar close and include the ticker and timeframe in the payload.
Key Inputs
- Swing Pivot Length (default 7) — left/right length used for pivot confirmation.
- Breaker Lookback (default 80 bars) — maximum age for a broken swing to remain a valid Breaker.
- FVG Minimum Size (default 0.25 x ATR) — noise filter for 3-bar imbalances.
- Overlap Mode (Strict / Loose) — geometric intersection vs ATR-tolerance match.
- Reward-to-Risk Target (default 2.0) — multiple used to project the target level.
- Max Active Pending Unicorns (default 3) — chart-cleanliness cap.
- Cooldown After Signal (default 30 bars) — minimum spacing between consecutive spawns.
- Invalidate on Close Through Zone (default off) — optional tighter invalidation rule.
- Visual controls — show/hide per lifecycle state, label size, zone opacity, max recent labels.
- Panel controls — show/hide, location (6 positions), theme (Dark/Light), text size.
How to Use
1. Add the indicator to any timeframe; higher timeframes (1H, 4H, 1D) tend to produce structurally more meaningful Unicorns.
2. Watch for a new Unicorn zone to appear. Pending zones are drawn in the directional state color with a bold border; triggered ones switch to the indigo accent color; TP / SL / Expired zones fade to their respective colors with a thinner border.
3. Each zone carries a tethered flag label outside the price axis — Bullish labels below, Bearish labels above — so they never overlap candles.
4. The panel reports running counts of pending and active Unicorns, historical win rate, average R per setup, and total completed.
5. Use the displayed entry / target / stop reference lines as a structural map for your own analysis. The tool does not place orders and does not recommend position sizing.
6. Combine with higher-timeframe bias (trend, session context, HTF structure) before acting on any zone.
Limitations & Transparency
- The detector is a structural scanner, not a forecasting engine. It reports what has formed, not what will happen.
- Swing detection depends on pivot length; shorter lengths generate more noise, longer lengths miss smaller structures.
- Statistics are calculated on-chart from historical bars loaded by PulseWire and will vary with timeframe, symbol and data range.
- Realtime behaviour: zones are drawn on confirmed events (bar close for breaks, 3-bar-complete for FVGs). Some invalidations are evaluated intrabar on wick touches of the stop level.
- The script is open-source under Mozilla Public License 2.0. Users are encouraged to inspect and adapt the methodology.
Risk Disclosure
This indicator is provided for educational and analytical purposes only. It is not financial advice, a trading signal service, or a strategy. Past structural patterns do not guarantee future outcomes. Trading involves substantial risk of loss; readers are solely responsible for their own decisions and risk management. Indicator

Breaker Block Engine [AGPro Series]Breaker Block Engine
Overview
Breaker Block Engine is a dedicated detection and tracking tool for one of the
most misunderstood concepts in Smart Money trading: the Breaker Block. A
breaker block is an order block that has failed and flipped role — a bearish
order block broken upward now behaves as bullish support, and a bullish order
block broken downward now behaves as bearish resistance. The engine does not
just draw them; it validates each break with displacement strength, tracks
every retest, scores how well each breaker has held its role, and surfaces the
dominant bullish and bearish breakers through a clean info panel.
Unique Edge
Most breaker block scripts stop at drawing a flipped zone. This engine goes
further:
- Each break is validated using an ATR-scaled close-based displacement filter,
optionally combined with above-average volume confirmation, to reject weak
wick-based breaks.
- Every retest of a breaker is counted and evaluated as Held or Lost, and the
state label on the chart shows a live retest hold percentage for each
breaker (for example "Bull Breaker | Held x6 (100%)").
- An invalidation buffer prevents single-wick noise from prematurely killing
otherwise healthy breakers, while genuinely violated zones fade into a gray
"Lost" state and are removed from tracking shortly after.
- Intra-side and cross-side confluence grouping automatically clean up
overlapping labels so the chart stays readable even when several breakers
cluster within half an ATR.
- The info panel summarises the whole picture in one glance: dominant side,
active counts per side, nearest breaker distance in both price and ATR
multiples, and overall retest hold percentage.
Methodology
1. Swing Detection. Confirmed pivot highs and pivot lows are identified using
a configurable pivot length. These pivots anchor the search for order
block candidates.
2. Order Block Candidate. For each confirmed pivot high, the script walks
back up to ten bars looking for the last bearish candle — this is the
bearish order block candidate. The symmetrical process identifies bullish
order block candidates around pivot lows.
3. Break Validation. A candidate is promoted to a breaker only when price
closes past the opposite edge of the order block by at least a
user-defined ATR multiple (default 0.75 × ATR). An optional volume
confirmation filter can additionally require the break candle to trade
above its volume moving average.
4. Retest & Hold Scoring. After formation, each breaker is checked every bar.
If price re-enters the zone and the close respects the breaker's intended
direction, a Hold is recorded; otherwise the retest is counted but not
held. A minimum bar spacing prevents consecutive bars of a sustained
retest from inflating the counter.
5. Invalidation. If price closes past the far edge of the breaker by more
than the invalidation buffer (in ATR), the breaker is marked Lost,
visually faded, and removed from active tracking after a short grace
period.
6. Confluence Grouping. On the most recent bar, breakers whose mid-points
sit within max(0.5 × ATR, 0.5 % of price) of each other have their
overlapping state labels resolved: dead labels yield to alive labels,
older labels yield to newer ones. A cross-side pass prevents stale
opposite-side labels from sitting on top of active ones.
Signals & Alerts
The script provides three alert events:
- New Breaker: fires on the bar a bullish or bearish breaker is confirmed.
- Retest Hold: fires when price retests an active breaker and the close
respects the zone direction.
- Invalidation: fires when an active breaker is broken in the opposite
direction beyond the invalidation buffer.
On-chart signals include the zone itself (coloured by side), a small
directional triangle at the break point, and a dynamic state label on the
right edge showing the breaker's test count and hold percentage.
Key Inputs
- Swing Pivot Length: bars on each side used to confirm swings. Higher values
produce fewer but structurally stronger swings.
- Max Active Breakers per Side: hard cap on simultaneously tracked bullish
and bearish breakers; oldest are pruned when the limit is reached.
- Displacement Strength: ATR multiple required for a close-based break to
validate. Higher values produce fewer, stronger breakers.
- Require Volume Confirmation: when enabled, the break candle must trade
above its volume moving average.
- Invalidation Buffer: ATR buffer added beyond the breaker edge before the
breaker is considered invalidated. Prevents wick-based noise kills.
- Min Bars Between Retests: minimum bar spacing between consecutive retests
of the same breaker, keeping counters from inflating on sustained visits.
- Zone Transparency, Colours, Label & Panel Sizes: full visual control.
- Panel Location, Theme, Far Zone Threshold: the info panel can be placed in
any of six positions, switched between Dark and Light theme, and the
threshold for labelling distant zones as "Far" is user-configurable.
How to Use
- On mid-to-high timeframes (15m and up), leave the defaults. The engine is
tuned for 15m to 4h out of the box but works on any timeframe and
instrument.
- Use the state label hold percentage as a quality gauge. A breaker with a
long history of holds (for example "Held x6 (100%)") has demonstrated
institutional interest at that level; a breaker with mixed results deserves
more caution.
- Use the panel to orient quickly. If the dominant side is Bullish and the
nearest bullish breaker sits within a fraction of an ATR, the chart is in
a supportive regime for long bias; if both nearest values show "Far",
price is floating between structures and caution is warranted.
- Combine with higher-timeframe context. A bullish breaker on the 1h that
aligns with a bullish breaker on the 4h is a stronger zone than either
alone.
Limitations & Transparency
- This is an indicator, not a strategy. It draws zones and tracks their
behaviour; it does not generate buy or sell orders, manage positions, or
calculate performance statistics against a price series.
- Pivot-based detection is inherently lagging by the pivot length: a swing
is only confirmed once the configured number of bars have printed past it.
- Results depend on input choices. Different displacement multipliers, pivot
lengths, and retest gaps will produce different breaker sets. The defaults
are a starting point, not a recommendation.
- No indicator can guarantee future behaviour. A breaker that has held ten
times in the past can fail the next time it is tested.
Risk Disclosure
This script is provided for educational and research purposes only. It is not
financial advice and does not constitute a recommendation to buy, sell, or
hold any instrument. Trading carries substantial risk of loss. Users are
solely responsible for their own trading decisions and risk management. Past
behaviour of a breaker, or of any zone shown by this script, does not
guarantee future results. Indicator

Rolling Midpoint Engine [AGPro Series]Rolling Midpoint Engine
### Overview
Rolling Midpoint Engine is an on-chart study that converts the geometric midpoint of the last N bars' high-low range into a living control line. The midline is tracked through three behavioral states — Accepted Above, Accepted Below, and Fight — and a fourth modifier (Strong) highlights high-conviction acceptance beyond an ATR threshold. The goal is to surface how price behaves around a single dominant reference level, not to predict direction or issue trade signals.
### Unique Edge
Most midpoint tools plot a static line and let the user eyeball whether price accepts or rejects it. Rolling Midpoint Engine formalises that observation into a finite state machine that requires consecutive body-closes on one side of the midline before declaring acceptance. This filters single-bar noise and distinguishes casual tags from genuine commitment. The ATR-based Strong modifier adds a second axis of information — how firmly the current side is being held — without multiplying states or cluttering the chart with additional lines.
### Methodology
The midline is computed as the average of the highest high and the lowest low over a user-defined rolling window. Optional light EMA smoothing reduces visual jitter without materially shifting the level; a Strict Reset mode disables smoothing for pure rolling output.
Acceptance is evaluated through two streak counters tracking consecutive closes (or full bars, if the user prefers a stricter rule) on each side of the midline. When a streak reaches the Acceptance Bars threshold, the state transitions to Accepted Above or Accepted Below. If the running streak is positive but below threshold, the state is Fight. A Strong flag activates whenever the current distance from the midline exceeds a configurable ATR multiple.
All logic uses confirmed bar closes. The script does not repaint historical states once a bar has closed.
### States & Alerts
States:
- Fight — price is oscillating around the midline without sustained commitment
- Accepted Above — body-closes above the midline for the required number of bars
- Accepted Below — body-closes below the midline for the required number of bars
- Strong (modifier) — current Accepted state is held beyond the ATR threshold
Alerts:
- Midline Crossed Up / Down — raw price cross of the midline
- Accepted Above / Below — state transitions into acceptance
- Midline Rejection — state flip between Accepted Above and Accepted Below, or collapse from an Accepted state back to Fight
### Key Inputs
- Rolling Length — number of bars defining the range window
- Strict Reset Mode — toggle between pure rolling midline and lightly smoothed output
- Acceptance Bars — consecutive body-closes required for acceptance
- Use Body Close vs. Full Bar — strictness of the side-determination rule
- Strong Threshold — ATR multiple that qualifies an accepted side as Strong
- Label Style / Size — Edge Only, Edge + Transitions, or Off
- Panel Location / Theme / Font Size — four corners plus Middle Right, Dark / Light / Auto themes
- Color Midline by State — toggle state-coloring on the dominant line
### How to Use
Apply the indicator to any symbol and timeframe. The midline acts as a rolling control level; the state label on the right edge summarises the current behavior. Treat Accepted Above / Below as evidence that the midline is holding as support or resistance on the corresponding side. A transition into Strong indicates the holding is well beyond routine noise. A rejection event — the state flipping or collapsing back to Fight — suggests the prior control has been compromised.
This is a contextual reading tool. It does not produce entries, exits, targets, or stops, and should not be read as a recommendation to transact.
### Limitations & Transparency
The midline reflects past price data only and will adapt as new highs or lows enter the rolling window. On illiquid or very low-timeframe charts, the streak-based acceptance logic can feel slow; increasing Acceptance Bars on noisier instruments or lowering it on cleaner ones is expected tuning. The Strong Threshold is volatility-relative via ATR but still an arbitrary cut — defaults are calibrated for typical liquid markets and may need adjustment for thinly traded symbols.
The script uses confirmed closes and does not alter historical state once a bar has closed. Intrabar, the displayed state can update in line with current price, as with any live indicator.
### Risk Disclosure
This indicator is an analytical study. It is not a strategy, not a signal service, and not financial advice. It does not forecast future prices and does not guarantee any outcome. Past behavior of price around the midline does not imply future behavior. Every trading decision is the sole responsibility of the user. Use appropriate risk management and test the tool in a non-committed environment before incorporating it into any workflow. Indicator

Volumetric Structure Engine [JOAT]Volumetric Structure Engine
Introduction
The Volumetric Structure Engine is an institutional market structure tracker that fuses swing-point classification with real-time buy/sell volume delta analysis. Every confirmed swing high and swing low is measured not only by price, but by the net volume composition of the leg that produced it — revealing whether a structural move was driven by genuine institutional buying or selling, or whether it was a low-conviction, thin-volume probe. The indicator classifies market structure as HH/HL (bullish) or LH/LL (bearish), detects Break of Structure (BOS) and Change of Character (ChoCH) events on bar close, and renders each swing zone with a color gradient that reflects the underlying volume delta of that leg.
The core problem this solves: most market structure tools draw lines or arrows at swing points but say nothing about the quality of that swing. A break of structure on rising volume is categorically different from one on declining volume — the first signals institutional participation, the second suggests a liquidity grab. VSE quantifies that difference on every bar.
Core Concepts
1. Non-Repainting Swing Detection
Swings are confirmed using a lookback comparison pattern that resolves only on bar close:
float H = ta.highest(high, i_len)
float L = ta.lowest(low, i_len)
bool new_sh = high == H and high < H
bool new_sl = low == L and low > L
A swing high at bar N-1 is confirmed when bar N closes lower, meaning the prior bar's high was the highest in the lookback window. This approach never repaints because it always references the closed bar to the left.
2. Volume Delta Accumulation Per Leg
Between each confirmed swing, running buy and sell volume totals accumulate. On each bar, if close >= open the bar's volume is classified as buy-side; otherwise it is sell-side. When a new swing is detected, the accumulated totals are saved to that swing node, and the counters reset for the next leg:
if new_sh or new_sl
run_buy := 0.0
run_sell := 0.0
if close >= open
run_buy += volume
else
run_sell += volume
The delta percentage (buy minus sell divided by total volume) determines the color and transparency of each swing zone box. A leg with 80% buy delta renders as a vivid bull green; a leg with 20% buy delta renders as a vivid bear red. Neutral legs render in the neutral color.
3. BOS and ChoCH Detection
Break of Structure fires when confirmed price closes through the most recent confirmed swing extreme in the opposite direction. Change of Character fires when the first break occurs against the established trend — the earliest signal that the dominant structure may be shifting. Both signals are barstate.isconfirmed, preventing any lookahead.
4. Structure Cloud
A fill between the last confirmed swing high and swing low creates a visual structure range that updates dynamically. The cloud color matches the current trend direction and serves as an at-a-glance bias indicator for the session.
Features
Swing Zone Boxes: ATR-scaled zone boxes at every confirmed swing, colored by the net buy/sell delta of the producing leg
Volume Delta Gradient: Zone colors range from deep bull green (high buy delta) to deep bear red (high sell delta), with transparency encoding conviction
BOS Lines: Dashed horizontal lines drawn at the level where a Break of Structure closes, with text label
ChoCH Highlight: Change of Character events highlighted with a distinct yellow-amber color to distinguish them from continuation BOS signals
Structure Connection Lines: Lines connecting consecutive swing nodes, colored by the delta of each leg
Structure Cloud: Gradient fill between the last swing high and low showing current structural range
Candle Coloring: Optional candle tinting by current trend direction
9-Row Dashboard: Displays trend bias, last swing high/low price levels, structure range percentage, BOS bull/bear counts, ChoCH count, last leg delta percentage, and total swing node count
Alerts: BOS bullish, BOS bearish, ChoCH bullish, ChoCH bearish
Input Parameters
Structure Detection:
Swing Length: Lookback bars for swing high/low detection (default: 20, range: 5-200). Higher values identify fewer, stronger structural swings. Lower values are more reactive.
Show BOS Lines: Toggle BOS line rendering (default: on)
Show ChoCH: Toggle Change of Character highlighting (default: on)
Structure Cloud: Toggle the fill between swing high and low (default: on)
Visualization:
Bullish / Bearish / Neutral / ChoCH colors: Fully customizable
Zone Transparency: Control the base transparency of swing zone boxes (default: 78)
Color Candles: Optional candle tinting by structural trend (default: off)
Dashboard:
Position: Top Right, Top Left, Bottom Right, Bottom Left (default: Top Right)
How to Use This Indicator
Step 1: Read the Current Structure
The dashboard shows the current trend bias (BULLISH / BEARISH / NEUTRAL), the last confirmed swing high and low prices, and the structural range as a percentage. This gives you the directional context at a glance.
Step 2: Interpret Zone Colors
Zones colored in vivid green (high buy delta) represent legs driven by institutional buying. Zones colored in vivid red (high sell delta) represent institutional selling pressure. Faded or gray zones represent low-conviction legs — useful for identifying weak structure that is more likely to be swept.
Step 3: Trade BOS and ChoCH Events
A BOS in the direction of the existing trend is a continuation signal. A ChoCH (against the trend) is a structural shift signal and often marks the beginning of a reversal. Volume delta on the breaking leg adds conviction: a BOS on a high-buy-delta leg is more reliable than one on a low-delta leg.
Step 4: Use Swing Zones as S/R
Each swing zone box represents a price area where a structural pivot occurred. Institutional order flow often returns to these levels. High-delta zones in particular tend to act as meaningful support or resistance.
Originality Statement
This indicator is original in its combination of confirmed non-repainting swing structure with per-leg volume delta measurement. While market structure tools and volume analysis tools each exist independently, this indicator is justified because:
Volume delta is computed per structural leg — not per candle and not as a global indicator — creating a direct mapping between market structure quality and institutional participation
The swing confirmation method using the lookback comparison pattern eliminates repainting while maintaining responsiveness to genuine structural changes
Zone color encoding with delta-driven gradient creates an immediate visual hierarchy — strong zones versus weak zones — without requiring separate panels or indicators
BOS and ChoCH detection with volume delta context provides a more complete signal than either alone
Limitations
The buy/sell volume classification (close >= open = buy) is an approximation. True tick-level direction is not available in Pine Script. On very short timeframes where volume is sparse, classification may be imprecise
Swing length selection significantly affects structure quality. Too short produces noise; too long misses intermediate structure. Users should calibrate to their timeframe and instrument
BOS and ChoCH are confirmed on bar close, so they are identified one bar after the actual breakout candle closes. This is a deliberate trade-off for accuracy over speed
The indicator does not predict direction — it classifies the current structural state. A bullish structure can break down without warning
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Past structural patterns do not guarantee future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Indicator
