Breaker Block Identifier [algo_aakash]Breaker Block Identifier is a market structure indicator that converts failed order block retests into scored, non-repainting breaker zones. Rather than flagging every order block that gets invalidated, the script requires a complete sequence of confirmed price events — order block formation, an opposing structure break, a retracement into the invalidated zone, and a failed retest of that zone — before a breaker is created, and then ranks the result with a transparent quality score.
Problem Statement
Order blocks are frequently invalidated by a structure break and later retested, but a retest failing to continue in the original direction is not automatically a tradable breaker block. Many public scripts draw a zone as soon as an order block is broken, without verifying that the subsequent retest actually failed, how deep that retest penetrated, or how convincingly price rejected the zone. This produces a high volume of low-quality zones that require manual filtering by the trader.
This indicator addresses that gap by treating breaker formation as a multi-stage state machine rather than a single condition, and by scoring every candidate that completes the sequence so weak retests can be filtered out programmatically instead of visually.
Methodology
Swing highs and lows are identified with ta.pivothigh/ta.pivotlow using a user-defined bar count on each side, so every structural level referenced by the script is a confirmed pivot, never a forming one.
An order block source candle is located as the last opposite-colored candle at or immediately before each confirmed swing pivot, within a fixed lookback. The candle must exceed a minimum size expressed as a multiple of ATR, and can optionally be required to close on above-average volume. Zone boundaries can be set to the candle body (open/close) or the full wick range (high/low).
Every order block candidate then moves through three internal states. In the Pending state the script waits for an opposing structure break (a close beyond the relevant swing high or low, optionally required to clear the level by a minimum ATR multiple). Once that break occurs the candidate becomes Flipped, and the script waits for price to retrace back into the now-invalidated zone. On entry into the zone the candidate becomes Retesting, and the script tracks the deepest penetration price reaches inside the zone on a bar-by-bar basis.
A Retesting candidate resolves in one of two ways. If price closes back through the zone in its original direction by the confirmation displacement threshold, the retest is judged to have held and the candidate is discarded with no breaker created. If price instead closes through the opposite edge of the zone by the same displacement threshold, and the tracked penetration depth met a minimum percentage of the zone's height (the Retest Qualification Filter), the retest is judged to have failed and the order block is converted into a breaker in the opposite direction of its original bias.
Each confirmed breaker is then scored from 0 to 100 using six independent, user-weighted factors: the displacement strength of the invalidating structure break, the ATR-relative size of the original order block candle, how closely the retest penetration matched a user-defined ideal depth (scored on a curve, so both shallow touches and near-total breaches score lower than a clean mid-zone tag), the wick-rejection ratio of the confirming candle, how quickly the retest resolved relative to the retest window, and the ATR-normalized distance price traveled before returning to retest. The six sub-scores are combined using auto-normalized weights, so a breaker only appears on the chart, gets drawn, and triggers alerts if it clears the configured minimum quality threshold.
Confirmed breakers remain in an Active/Touched state until price closes through the far edge of the zone by the invalidation displacement threshold, at which point the zone is marked invalidated, visually dimmed, and removed after a configurable linger period. A hard maximum-age limit and a per-direction cap on active zone count prevent unbounded object growth.
Signal Workflow
Step 1 — a confirmed swing pivot forms and an order block candidate is registered from the qualifying source candle behind it.
Step 2 — the candidate waits in a Pending state until an opposing structure break (BOS/CHoCH) closes beyond the originating swing level.
Step 3 — once flipped, the candidate waits for price to re-enter the invalidated zone, entering the Retesting state and tracking maximum penetration depth.
Step 4 — the retest resolves: a displacement close back through the zone in the original direction discards the candidate, while a displacement close through the opposite edge with sufficient penetration confirms a breaker.
Step 5 — the confirmed breaker is scored across six weighted factors and only drawn, labeled, and alerted on if it meets the minimum quality threshold.
Step 6 — the active breaker zone extends forward until price closes through its far edge by the invalidation displacement threshold, at which point it dims and is scheduled for removal.
Why This Indicator Is Different
Most public order block or breaker scripts draw a zone the moment an order block is invalidated by a structure break, without separately validating whether the ensuing retest actually failed.
This script models breaker formation as an explicit four-state pipeline (source candle, pending, flipped, retesting) and only creates a zone after the retest resolves against its original direction with a minimum measured penetration depth.
The Breaker Quality Score converts six independently disclosed factors, including retest penetration depth scored on a curve around a configurable ideal value rather than a simple threshold, into a single adjustable ranking rather than a cosmetic label.
Quality-score weighting is fully exposed, allowing the ranking to be tuned toward structure strength, retest precision, wick rejection, confirmation speed, or impulse distance depending on the trader's approach.
Zone fill transparency scales with the quality score, so higher-ranked breakers render more opaque and lower-ranked ones fade into the background without adding separate visual elements.
An optional formation preview renders the retest phase of a candidate before it resolves, giving visibility into why a breaker did or did not form without permanently cluttering the chart.
Inputs
Structure Settings
Swing Pivot Length
Displacement Filter on Structure Break
Structure Break Displacement (x ATR)
ATR Length
Order Block Detection
Use Candle Body for Zone Boundaries
Min Order Block Size (x ATR)
Candidate Expiry (bars)
Volume Confirmation Filter
Volume MA Length
Volume Multiplier Threshold
Breaker Conversion Rules
Retest Window (bars)
Confirmation Displacement (x ATR)
Min Retest Penetration (%)
Quality Score
Filter Breakers by Quality Score
Minimum Quality Score
Ideal Retest Penetration Ratio
Advanced weight sliders for structure break strength, impulse size, retest precision, wick rejection, confirmation speed, and distance traveled
Visual Settings
Bullish/Bearish Breaker Colors
Min/Max Fill Transparency
Show Zone Midline
Show Quality Label
Label Size
Formation Preview toggle and color
Lifecycle & Cleanup
Max Active Breakers (per side)
Invalidation Displacement (x ATR)
Invalidated Linger (bars)
Max Breaker Age (bars)
Info Panel
Show Info Panel
Panel Position
Alerts
Alerts are available for:
Bullish Breaker Block formed
Bearish Breaker Block formed
Structure confirmation on breaker conversion
Price entering an active breaker zone
Breaker invalidated
Practical Usage
Use the info panel's structure bias reading as directional context before evaluating individual breaker zones.
Treat a fresh, high-quality breaker aligned with the prevailing structure bias as a potential continuation zone rather than a standalone entry signal.
Raise the minimum quality threshold on lower timeframes or noisy instruments to reduce the number of marginal zones drawn.
Use the retest penetration and displacement settings together to control how strict the failed-retest qualification is for your instrument and timeframe.
Combine the alert feed with a broader trade plan, since each alert marks a structural event, not an execution signal.
Limitations
Swing pivots require bars to form on both sides before they confirm, so structure breaks and order block placement are inherently delayed by the swing pivot length.
The order block source candle is located within a fixed lookback behind each pivot; if no qualifying candle exists in that window, no candidate is created for that pivot.
Quality scoring is a relative ranking based on disclosed, adjustable factors and does not predict the outcome of any individual breaker zone.
Volume-based filtering depends on the data provider's reported volume and may behave inconsistently on instruments with limited or unreliable volume data.
As with any structure-based tool, results will vary across instruments, timeframes, and market regimes.
Notes
This indicator is a market structure analysis tool intended to organize and rank breaker block formation through a disclosed, multi-stage validation process.
All structure breaks, state transitions, breaker confirmations, and invalidations are evaluated on confirmed bar closes only, so no element of the script repaints once drawn.
The output is intended to support structural analysis and is not a standalone buy or sell recommendation.
Indicador

Change of Character (CHoCH) Alert System [algo_aakash]Change of Character (CHoCH) Alert System is a market structure signal tool focused on a single event: a confirmed shift in directional bias. Rather than labeling every Break of Structure and CHoCH the way many public structure scripts do, this indicator deliberately ignores continuation breaks and limits both the chart and the alert feed to the moments where the prevailing character of the market actually flips.
Problem Statement
Most public CHoCH implementations classify a character change purely on the direction of a swing break, with no measure of how convincing that break actually was. This creates two practical issues for anyone building alerts around structure. Every minor swing wobble can trigger a notification, producing alert fatigue, and there is no way to separate a decisive character change from one that barely closed beyond the swing level. This script addresses both issues with a close-confirmed CHoCH-only detection engine and a built-in confidence grading step applied to every signal.
Methodology
The script maintains a single structure register holding the most recent confirmed swing high and swing low, located with standard pivot detection over a user-defined pivot length. When the adaptive swing filter is enabled, a newly confirmed pivot only replaces the stored swing if its distance from the last opposite-type pivot exceeds a configurable ATR-relative threshold, which keeps insignificant micro-swings out of the structure register before they can influence a signal.
A Change of Character is only evaluated on a confirmed candle close, so nothing in the detection logic repaints once a signal has printed. A bullish CHoCH requires a close above the last swing high while the tracked bias is bearish or undefined. A bearish CHoCH requires a close below the last swing low while the tracked bias is bullish or undefined. A break that occurs while the bias already agrees with the break direction is treated as ordinary continuation and is not flagged.
Two optional filters gate confirmation further. A displacement filter requires the breaking close to clear the swing level by a minimum ATR multiple, removing marginal breaks. A momentum filter requires the breakout candle's body to represent a minimum percentage of its total range, removing breaks driven mostly by wick with little real conviction behind the close.
Once a CHoCH is confirmed, the broken swing level is projected forward on the chart as an active structure line. If a later confirmed close moves back through that level, the structure is marked invalidated and the projection line is dimmed, separately from the detection of any new CHoCH.
Signal Workflow
Track the most recent confirmed swing high and swing low using pivot detection.
Apply the adaptive swing filter to reject pivots too close to the last opposite-type pivot.
On each confirmed candle close, test for a close beyond the stored swing level against the current bias.
Apply the displacement filter to confirm the close cleared the level by a minimum ATR multiple.
Apply the momentum filter to confirm the breakout candle's body-to-range ratio meets the minimum threshold.
Score the confirmed breakout candle on displacement in ATR units and body-to-range ratio to produce a Weak, Moderate, or Strong confidence grade.
Flip the tracked bias, plot the CHoCH label with its grade, and project the broken level forward as an active structure line.
Continue monitoring the active structure line and mark it invalidated if a later confirmed close moves back through it.
Why This Indicator Is Different
Many structure tools plot every Break of Structure alongside every CHoCH, leaving the trader to filter out which events represent an actual change in character.
This script omits BOS events entirely and reports only confirmed CHoCH signals, which are the events that correspond to a bias flip.
Each confirmed CHoCH is scored using two independent factors measured on the breakout candle itself, its ATR-normalized displacement past the level and its body-to-range ratio, rather than being treated as a single undifferentiated event.
The confidence grade is written into the alert message text at the moment the event fires, which requires composing the message dynamically rather than relying on a fixed template.
The swing level broken by a CHoCH remains tracked after the signal fires, so a later close back through that level produces a distinct invalidation alert rather than silently vanishing into the next structure calculation.
Detection is restricted to confirmed candle closes throughout, so the bias, the grade, and the invalidation state cannot change intrabar once printed.
Inputs
Structure Engine
Swing Pivot Length
Adaptive Swing Filter
Filter Threshold (ATR multiple)
Break Confirmation
Displacement Filter
Displacement Multiplier
Momentum Filter
Minimum Body % of Range
ATR Length
Visual Settings
Show Swing Points
Show Structure Projection
Projection Extension
Show Trend Background Wash
Color Candles After CHoCH
Show Confidence Grade
Label Size
Bullish, Bearish, and Projection colors
Status Panel
Show Status Panel
Panel Position
Alerts
Alert: Bullish CHoCH
Alert: Bearish CHoCH
Alert: Bullish Structure Invalidated
Alert: Bearish Structure Invalidated
Alerts
Alerts are available for:
Bullish CHoCH confirmed on a closed candle, with the confidence grade included in the alert message
Bearish CHoCH confirmed on a closed candle, with the confidence grade included in the alert message
Bullish structure invalidated after a confirmed close back below an active bullish level
Bearish structure invalidated after a confirmed close back above an active bearish level
Practical Usage
Use a shorter pivot length on intraday charts to react to structure earlier, combined with the displacement and momentum filters to avoid marginal breaks.
Use a longer pivot length on higher timeframes to isolate structurally significant character changes only.
Treat a Strong-grade CHoCH as a higher-conviction event than a Weak-grade CHoCH when weighing entry timing or position sizing.
Watch for a structure invalidated alert shortly after a CHoCH, since it indicates price has returned through the level that produced the signal.
Use the status panel as a quick reference for the current bias and the most recent CHoCH grade without needing to scan the chart for labels.
Limitations
Swing highs and lows depend on confirmed pivots, which require the full pivot length of bars to close on both sides before becoming available, introducing a disclosed confirmation lag.
The displacement and momentum filters reduce signal frequency by design, which means fewer but more selective CHoCH events compared to unfiltered structure break detection.
Structure invalidation reflects a return through a previously broken level and does not attempt to forecast subsequent price direction.
This indicator identifies structural events only and does not constitute financial advice or a complete trading system on its own.
Notes
All structural state, including the tracked bias, the active levels, and the confidence grade, is evaluated only on a confirmed candle close, so nothing in this script repaints once printed.
The only lag in the system is the standard pivot confirmation lag inherent to pivot-based swing detection, which is disclosed above rather than hidden.
Designed for dark theme charts. On light themes, consider darkening the projection line color for improved contrast.
Indicador

Indicador

Volume Force FieldVolume Force Field — TradingView publication kit
Volume Force Field turns a volume profile into a force map. A normal profile shows you where value is. This overlay shows you the net pull on price at every level — the slope of the volume landscape toward the nearest magnet — and then it measures, on your own history, whether that pull actually leads price. One plain-language panel tells a non-technical trader what it means at a glance.
What it plots
The force field — coloured bands across price. Green means price at that level is being drawn up toward a high-volume magnet; red means drawn down. Band opacity scales with how much volume sits there.
POC and magnets — the yellow line is the Point of Control (the single strongest magnet); green lines are secondary magnets; dashed red lines are low-volume ridges that price tends to cross quickly.
Value Area — the shaded band holding your chosen % of volume around the POC: the range where trade has been accepted.
Value centre ± band — a moving equilibrium (rolling VWAP / adaptive MA / EMA) with a σ band: the drift level price is pulled back toward.
Guidance panel — plain English: the current bias (pulling up / down / balanced), location vs value (inside / stretched above / stretched below), the nearest magnet and distance, and one line on what to watch.
Past signal marks — small triangles wherever the net pull historically turned strongly up or down, so you can eyeball how the field has behaved.
Why these components are one tool (not several indicators stacked)
Each part answers a question the others cannot, and removing any one breaks the read:
Volume kernel density builds a smooth value landscape whose peaks are magnets. Optional lower-timeframe slicing distributes each bar's volume across its true intrabar path; an optional half-life lets recent volume outweigh old, so the field is a living map, not a flat lookback.
The density gradient turns that landscape into a force — the direction and steepness of attraction at each level, which a plain density cloud never exposes.
The Value Area frames where price is accepted versus stretched, so the force is read in context.
The moving value centre adds the mean-reversion pull toward equilibrium.
The calibration harness back-measures the whole thesis: when the pull is strong, did price actually travel toward the magnet more often than the base rate? It reports Hit %, Base % and Edge.
Density is a picture; the gradient makes it a force; the Value Area frames it; the centre adds drift; the harness keeps it honest. Together they are one decision object.
How to use it
Read the guidance panel first — it states the bias, where price sits versus value, the nearest magnet, and what to watch. On the chart, treat green bands as upward pull toward the magnet above and red as downward pull; the POC and magnet lines are targets; dashed lines are fast low-volume gaps; the Value Area is the accepted range; the centre ± band is the drift equilibrium. Turn on the Calibration table and read Edge: a strong pull with a positive, matured Edge is the context this tool is built to surface. An Edge near zero means the attraction is not exploitable on that symbol/timeframe — that is useful information, not a trade trigger. This is a context map, not a signal generator; combine it with your own risk and execution rules.
Universal across markets
Price source and volume feed are inputs, so it runs on any symbol. Instruments without real volume fall back automatically to a price-density field. Default settings target an index-futures 1-minute chart; change the lookback, centre and slice resolution to suit other assets and timeframes.
Originality
The building blocks are standard and credited below; the original work is the coupling and the rendering — a volume kernel density whose gradient is drawn as a directional force field, fused with a Value Area and a moving value centre, with magnet/ridge extraction and a forward base-rate harness that reports each strong-pull setup's realised Edge instead of asserting that magnets work. No third-party Pine code is reused.
Concept credit
Kernel density estimation — Emanuel Parzen (1962) and Murray Rosenblatt (1956); bandwidth rule — B. W. Silverman (1986). Point of Control / Value Area / Market Profile — J. Peter Steidlmayer. Moving-equilibrium ("price in a moving potential") market models — Hideki Takayasu, Takayuki Mizuno and Tsutomu Watanabe. Not affiliated with, nor endorsed by, any third party.
Honesty / limitations
No tick or order-book tape is available to scripts, so the density is built from OHLCV and optional lower-timeframe slices — a proxy, not the true traded distribution. Lower-timeframe slices exist only for recent bars; older bars use bar price automatically. "Force" is a hypothesis the Edge stat exists to falsify. The harness uses a light proxy of the field (the full grid cannot be recomputed on every bar), so it tests the idea rather than the exact drawn object. Like any volume profile, the last (forming) bar's field refreshes in real time; on closed bars it is fixed. Edge figures are in-sample, close-to-close, without costs — a study aid, not a verified backtest. Nothing here predicts price.
Disclaimer
For research and educational purposes only. This script is not financial advice, not a recommendation, and not a guarantee of future results. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test on out-of-sample data and make your own decisions. The author accepts no liability for any use of this script. Indicador

COT Heatmap [invincible3]COT Heatmap
COT Heatmap is a professional Commitment of Traders dashboard designed to visualize historical positioning pressure between two selected markets, currencies, commodities, indices, or crypto futures. The indicator converts weekly COT positioning data into an easy-to-read heatmap table, allowing traders to compare Non-Commercial and Commercial positioning strength, extremes, long/short participation, and A-B spread pressure directly on the chart.
The tool is built for macro, forex, commodities, futures, and intermarket analysis. It can automatically detect the current chart symbol or allow the user to manually select Pair A and Pair B from a predefined COT market list.
-----------------------------------------------------------------------------------------------
Main Features
Historical COT heatmap table
Auto symbol detection from the chart
Manual Pair A / Pair B selection
Futures Only or Futures + Options data mode
Non-Commercial, Commercial, or Both participant modes
Separate metric control for Pair A and Pair B
Historical weekly values displayed by date
Adjustable table size, position, start date, and number of periods
Heatmap coloring for fast visual interpretation
Optional A-B positioning spread columns
-----------------------------------------------------------------------------------------------
Data Source
The indicator uses weekly COT data through TradingView’s COT Library.
Available data modes:
Futures Only
Uses futures positioning data only.
Futures and Options
Uses combined futures and options positioning data.
The indicator uses Legacy COT report categories:
Non-Commercial Positions
Commercial Positions
Open Interest
All COT calculations are performed on the weekly timeframe.
-----------------------------------------------------------------------------------------------
Participant Modes
The indicator supports three participant display modes:
Non-Commercial Only
Shows speculative positioning metrics.
Commercial Only
Shows hedger/commercial positioning metrics.
Both
Shows both Non-Commercial and Commercial metrics side by side.
-----------------------------------------------------------------------------------------------
Core Positioning Formulas
For each selected market:
Open Interest
OI = Total Open Interest
Non-Commercial Net Position
NC Net = NC Long − NC Short
Commercial Net Position
Commercial Net = Commercial Long − Commercial Short
Long Change
Long Change = Current Long − Previous Week Long
Short Change
Short Change = Current Short − Previous Week Short
Net Change
Net Change = Long Change − Short Change
-----------------------------------------------------------------------------------------------
Long% and Short% Formulas
The indicator normalizes long and short positions against open interest.
Long Percentage
Long% = Long Positions / Open Interest × 100
Short Percentage
Short% = Short Positions / Open Interest × 100
These values show how much of total open interest is held on the long or short side by a specific participant group.
-----------------------------------------------------------------------------------------------
Flip% Formula
Flip% measures the net long/short bias as a percentage of open interest.
Flip%
Flip% = Long% − Short%
Interpretation:
Positive Flip% = participant group is net long
Negative Flip% = participant group is net short
Higher positive values show stronger bullish positioning
Lower negative values show stronger bearish positioning
Example:
If Non-Commercial Long% = 42%
and Non-Commercial Short% = 25%
Then:
NC Flip% = 42 − 25 = +17%
This means Non-Commercial traders are net long by 17% of open interest.
-----------------------------------------------------------------------------------------------
Difference Metrics
The indicator compares Non-Commercial and Commercial net positioning.
Non-Commercial Difference
NC Difference = NC Net − Commercial Net
This measures how strongly speculative positioning differs from commercial positioning.
Commercial Difference
Commercial Difference = Commercial Net − NC Net
This is the inverse view, useful when analyzing commercial hedger pressure.
-----------------------------------------------------------------------------------------------
Diff13 / Diff26 / Diff52 Formulas
The Diff columns are stochastic-style normalized scores of the positioning difference over different historical windows.
Stochastic Positioning Score
Stoch(X, Length) =
(X − Lowest(X, Length)) / (Highest(X, Length) − Lowest(X, Length)) × 100
If the range is zero, the value returns 50.
Where:
X = selected positioning series
Length = 13, 26, or 52 weeks
NC Diff13 *
NC Diff13 = Stoch(NC Difference, 13)
NC Diff26
NC Diff26 = Stoch(NC Difference, 26)
NC Diff52
NC Diff52 = Stoch(NC Difference, 52)
Commercial Diff13
Commercial Diff13 = Stoch(Commercial Difference, 13)
Commercial Diff26
Commercial Diff26 = Stoch(Commercial Difference, 26)
Commercial Diff52
Commercial Diff52 = Stoch(Commercial Difference, 52)
Interpretation:
Values near 100 show positioning is near the upper extreme of the selected lookback period
Values near 50 show neutral/mid-range positioning
Values near 0 show positioning is near the lower extreme of the selected lookback period
-----------------------------------------------------------------------------------------------
COT Index Formulas
The COT Index measures where current net positioning stands relative to its own historical range.
COT Index
COT Index =
(Current Net Position − Lowest Net Position over N weeks) /
(Highest Net Position over N weeks − Lowest Net Position over N weeks) × 100
If the range is zero, the value returns 50.
-----------------------------------------------------------------------------------------------
Non-Commercial COT Index
NC Index 52
NCIdx52 = Stoch(NC Net, 52)
This shows where current Non-Commercial net positioning stands within its 1-year range.
NC Index 156
NCIdx156 = Stoch(NC Net, 156)
This shows where current Non-Commercial net positioning stands within its 3-year range.
-----------------------------------------------------------------------------------------------
Commercial COT Index
Commercial Index 52
ComIdx52 = Stoch(Commercial Net, 52)
This shows where current Commercial net positioning stands within its 1-year range.
Commercial Index 156
ComIdx156 = Stoch(Commercial Net, 156)
This shows where current Commercial net positioning stands within its 3-year range.
-----------------------------------------------------------------------------------------------
A-B Spread Formulas
The indicator can also compare Pair A and Pair B positioning directly.
A-B Non-Commercial Flip%
A-B NC Flip% = Pair A NC Flip% − Pair B NC Flip%
A-B Commercial Flip%
A-B Commercial Flip% = Pair A Commercial Flip% − Pair B Commercial Flip%
Interpretation:
Positive A-B Flip% means Pair A has stronger positioning than Pair B
Negative A-B Flip% means Pair B has stronger positioning than Pair A
Useful for forex pair analysis, relative commodity analysis, and intermarket comparison
Example:
If EUR NC Flip% = +20%
and USD NC Flip% = +5%
Then:
EUR − USD NC Flip% = +15%
This suggests stronger speculative positioning in EUR relative to USD.
-----------------------------------------------------------------------------------------------
Heatmap Color Logic
The table uses color gradients to make positioning extremes easy to identify.
For score-based columns such as Diff13, Diff26, Diff52, NCIdx52, NCIdx156, ComIdx52, and ComIdx156:
High values move toward the positive color
Mid-range values move toward the neutral color
Low values move toward the negative color
Default colors:
Positive: Blue
Neutral: Pink
Negative: Red
For Long% columns:
Higher Long% is treated as stronger
Lower Long% is treated as weaker
For Short% columns:
Higher Short% is treated as weaker
Lower Short% is treated as stronger
For Flip% columns:
The heatmap uses a signed scale.
Signed Heatmap Normalization
Normalized Flip Value =
(Flip% + Flip Scale) / (2 × Flip Scale)
The value is clamped between 0 and 1.
Default Flip Scale = 35%
This means:
+35% or above = strong positive color
0% = neutral color
−35% or below = strong negative color
-----------------------------------------------------------------------------------------------
How to Read the Table
Each row represents one weekly COT snapshot.
The Date column shows the COT week.
Pair A and Pair B are displayed in separate grouped sections. Each section can include Non-Commercial metrics, Commercial metrics, or both, depending on user settings.
Important interpretation guidelines:
Diff13 / Diff26 / Diff52
Shows short-term, medium-term, and 1-year positioning extremes between Non-Commercial and Commercial groups.
NCIdx52 / NCIdx156
Shows whether speculative positioning is historically stretched or depressed.
ComIdx52 / ComIdx156
Shows whether commercial hedger positioning is historically stretched or depressed.
Long%
Shows the long-side participation as a percentage of open interest.
Short%
Shows the short-side participation as a percentage of open interest.
Flip%
Shows the net directional bias after subtracting short exposure from long exposure.
A-B Flip%
Shows relative positioning pressure between the two selected markets.
-----------------------------------------------------------------------------------------------
Example Use Cases
Forex Analysis
Use Pair A and Pair B to compare currency futures positioning.
Example:
Pair A = EUR
Pair B = USD
This allows EUR/USD positioning analysis using COT data.
Commodity Analysis
Compare metals, energy, or agricultural markets.
Example:
Pair A = Gold
Pair B = Silver
This helps identify relative speculative or commercial positioning strength.
Index Analysis
Compare equity index futures.
Example:
Pair A = NASDAQ
Pair B = S&P 500
This can help identify relative risk appetite and index positioning rotation.
Macro Sentiment Analysis
Use Non-Commercial positioning to track speculative crowding and Commercial positioning to observe hedging pressure.
-----------------------------------------------------------------------------------------------
Notes
COT data is weekly and is not designed for intraday signals. This indicator is best used as a macro positioning tool, sentiment confirmation tool, or higher-timeframe market context dashboard.
The heatmap does not generate direct buy or sell signals. Instead, it provides a structured view of positioning extremes, participant behavior, and relative strength between selected COT markets.
Extreme readings can remain extreme for long periods, so COT data should be combined with price action, trend structure, volatility, liquidity, and broader market context.
-----------------------------------------------------------------------------------------------
Summary
COT Historical Heatmap transforms weekly Commitment of Traders data into a clean, customizable, and visually intuitive positioning dashboard. By combining Net Positioning, Long%, Short%, Flip%, COT Index, Difference Scores, and A-B relative spread analysis, it helps traders understand how Non-Commercial and Commercial participants are positioned across major futures markets.
Indicador

Ease-of-Movement Flow OscillatorEase-of-Movement Flow Oscillator
A volume oscillator that measures how easily price moves — distance travelled relative to the volume required to travel it. Large travel on light volume = high ease (a frictionless drift); small travel on heavy volume = low ease (absorption — effort without result). Above zero, price advances with little resistance; below zero, it declines with little resistance. It adds an absorption warning and a plain-language forward-calibration layer, so you can tell at a glance whether a move is frictionless or being absorbed, and whether the signal has actually paid here.
Why these parts are combined (not a mashup for show). Ease of movement relates distance to the volume needed for it — a different question from "buying vs selling." A frictionless advance and an absorbed advance look identical on a price chart but behave differently next, so that's the core read. An effort-vs-result check (price making a new extreme while ease does not) flags absorption — heavy volume no longer moving price — which the raw line alone misses. Forward calibration removes blind faith: instead of assuming a cross "should" pay, it measures whether it actually has, with realistic profit/stop outcomes. Together they form one coherent volume-flow tool.
How it works. Distance moved = midpoint change; box ratio = (volume ÷ scale) ÷ range. Ease = distance ÷ box ratio, smoothed, standardized and soft-bounded to ±100 that auto-fits its own magnitude. A signal fires only when ease decisively clears a confirmation band beyond zero (filtering the constant zero-line chatter). Absorption divergence is detected from confirmed price pivots versus the ease line. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Long/Short, Absorption, or Wait) and the Conviction row, which reads "High" only when that signal type shows a positive edge that survives the test on this symbol. Green above zero = easy up, red below = easy down; shaded bands = strong ease; the faint band lines mark where signals fire. Best used with your own trend and risk plan, not alone.
What's original. The absorption (effort-vs-result) flag, auto volume scaling, a noise-filtering signal band, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Volume note. This needs real volume — use a futures contract such as NSE:NIFTY1!. On a cash index it reports "No volume" rather than printing noise.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Volume quality varies by feed and instrument.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicador

Order Blocks with Volume [Quantum Algo]Order Blocks with Volume
OVERVIEW
This indicator finds order blocks — the candles where a directional move originated before price broke market structure — and measures the buy and sell volume that traded inside each one. Every zone is drawn as a box that extends forward until price returns to it, and each active zone is labelled with its total volume and its buy/sell split, so you can tell at a glance which blocks were built on heavy participation and which were not.
It is built entirely from price and volume on the chart you apply it to. There is no repainting of confirmed zones: detection runs only on closed bars.
HOW DETECTION WORKS
1. Market structure. Confirmed swing highs and swing lows are located using a pivot of configurable length (Swing Length). A larger value isolates more significant structure and produces fewer, larger zones.
2. Break of structure. When a candle closes above the most recent confirmed swing high (bullish) or below the most recent confirmed swing low (bearish), the indicator treats it as a break of structure and looks for the order block that produced the move.
3. The order block candle. Starting from the breakout, the script steps back over the impulse candles and marks the last opposite-close candle before the move began — the last down-close candle for a bullish block, the last up-close candle for a bearish block. This is the origin of the displacement and the level price often revisits.
4. Zone range. The block is drawn from that candle using either its full high-to-low range (Wick) or its open-to-close body (Body).
VOLUME ENGINE
For each order block candle the indicator estimates how much of the traded volume was buying versus selling, using where the candle closed within its own range:
- Buy volume is weighted by how close the candle closed to its high.
- Sell volume is weighted by how close it closed to its low.
This split is shown two ways:
- Buy / Sell volume bars: two horizontal bars anchored at the left of the zone — buy on the top half, sell on the bottom half — with lengths proportional to each side. The Volume Bar Length setting controls how long they can extend (they are automatically kept inside the zone).
- Volume label: written inside the zone on the right edge, showing the total volume of the block and the buy% / sell% balance.
Volume strength is the block's volume divided by the average volume over a configurable baseline (Volume Baseline Length). It is used by the optional filter below to keep only the heaviest blocks.
ZONE LIFECYCLE
- Active. A live zone extends to the current bar and shows its volume bars and label.
- Mitigation. When price first trades back into a zone, the 50% line marks the equilibrium and an alert can fire.
- Invalidation. A zone is invalidated when price moves through its far edge. The source can be a wick touch or a candle close (Invalidation Source).
- Breaker. If "Flip Broken Zones to Breaker Blocks" is on, an invalidated zone is kept and re-coloured as a breaker, since broken support can act as resistance and vice versa.
- Historic. If "Keep Invalidated Zones (Historic)" is on, finished zones are frozen at the bar they died, re-coloured neutral, and their volume bars and text are removed to keep the chart clean.
- If neither option is on, invalidated zones are removed.
To avoid clutter the indicator will not stack a new zone on top of an existing active zone in the same area, limits the number of active zones per side, and automatically drops any zone older than the drawing range.
ON-CHART ELEMENTS
- Coloured boxes: bullish and bearish order blocks (and a neutral colour for breaker/historic).
- Two inner bars per active zone: buy (top) and sell (bottom) volume.
- A dotted line through the middle of active zones: the 50% mitigation / equilibrium level.
- Text inside active zones: total volume and buy% / sell%.
SETTINGS
Structure & Detection
- Swing Length — pivot length used to define structure. Higher = larger, more significant zones.
- Impulse Lookback (bars) — how far back to search for the origin candle after a break of structure.
- Zone Range — Wick (full range) or Body (open-to-close).
- Max Active Zones / Side — cap on simultaneously active zones per direction.
Invalidation
- Invalidation Source — Wick (a high/low piercing the zone) or Close (a candle closing beyond it).
- Flip Broken Zones to Breaker Blocks — keep and re-colour broken zones as breakers.
- Keep Invalidated Zones (Historic) — freeze finished zones instead of deleting them.
Volume Engine
- Show Volume Label — write volume and buy/sell% inside active zones.
- Show Buy / Sell Volume Bars — draw the proportional buy/sell bars.
- Volume Baseline Length — averaging length used to rate volume strength.
- Volume Bar Length (bars) — maximum length of the buy/sell bars.
Filters
- Only Show High-Volume Zones — hide blocks below the strength threshold.
- Min Volume Strength (x avg) — threshold as a multiple of average volume.
- Filter Oversized Zones — skip blocks taller than the ATR limit.
- Max Zone Height (ATR x) — the height limit, in multiples of ATR.
Style
- Bullish Zone, Bearish Zone, Buy Volume, Sell Volume, Breaker / Historic, Text — colours.
- Zone Extension (bars) — how far active zones project past the current bar.
- Show 50% Mitigation Line — toggle the equilibrium line.
ALERTS
Alerts are raised through the alert() function for two events: an order block being tapped (mitigation) and an order block being broken (breaker formed). To use them, create an alert on the indicator and choose the "Any alert() function call" condition.
HOW TO USE
Order blocks mark areas where significant orders were likely placed. Traders commonly watch for price to return to an un-mitigated block and react there, and use the buy/sell volume split and strength to judge how meaningful a block is — a block built on high, one-sided volume is generally treated as more significant than a thin one. Combine the zones with your own confirmation and risk management; this tool highlights levels, it does not generate buy or sell signals.
DISCLAIMER
Nothing here is financial advice or a guarantee of any outcome. Past behaviour of price around order blocks does not predict future results. Always do your own research and manage risk. Indicador

Volume Profile Composite, Naked POC & Value-AreaVolume Profile — Composite, Naked POC & Value-Area
==================================================
WHAT IT IS
A volume-at-price profile built for depth and decisions. It measures where trade
actually concentrated across the loaded history, distils that distribution into
the levels traders use — Point of Control (POC), Value Area (VAH/VAL), High and
Low Volume Nodes (HVN/LVN), and untested "naked" prior-session POCs — and then
converts those levels into a plain-language read of where price sits in the
auction (premium, discount, or inside value; balancing or migrating).
It is a study for chart analysis and education. It plots levels and context; it
does not place orders and does not output buy/sell signals.
HOW IT WORKS (ENGINE)
Volume is accumulated bar by bar into a price-keyed map on a fine grid (the
symbol's minimum tick multiplied by a user factor), then re-aggregated to the
chosen number of display rows. Because the engine uses a map rather than a fixed
lookback array, the profile can span every loaded bar instead of only a recent
window, and it is not limited by the historical bar-reference ceiling.
Each bar's volume is distributed across that bar's high-low range over a capped
number of samples, and tagged buy or sell by bar direction, producing a two-tone
histogram and a per-level delta. Where intrabar (lower-timeframe) data is
available, recent history can optionally be refined from it; older bars fall back
to the bar-range method. The Value Area is grown outward from the POC bin until
the chosen percentage of total volume is captured. Prior-day, prior-week and
full-history composite levels reuse the same value-area routine on their own maps.
The heavy redraw runs on bar open/close rather than on every realtime tick, to
keep live charts responsive.
WHY THESE COMPONENTS ARE COMBINED (MASHUP JUSTIFICATION)
This is one volume-profile engine, not a stack of independent indicators. Every
layer is computed FROM THE SAME accumulated volume map, and each one exists to
remove a specific blind spot of the raw histogram. A bare histogram only answers
"where did volume happen"; it cannot tell you whether price is rich or cheap,
which level matters next, or whether the market is balancing or trending. The
combined layers answer those questions, and they work together as follows:
- POC and Value Area transform the raw distribution into a fair-value frame, so
every other reading can be expressed as premium, discount, or inside value.
- HVN and LVN classify each price level produced by that same distribution as
acceptance (a volume shelf where reactions are more likely) or a thin gap
(where price tends to move quickly). This tells you how a level is likely to
behave, which the POC/Value Area alone do not.
- Naked prior-session POCs carry acceptance forward in time: they are POCs from
earlier sessions that price has not yet traded back through, derived from the
same per-session maps, and they act as revisit references.
- Value migration is simply the sequence of those session POCs read as a
direction, turning the profile history into a balancing-versus-trending read.
- The composite overlay keeps the full-history POC and Value Area in view while
you work a shorter, more legible recent window, so context is never lost.
- VWAP, Initial Balance, an expected-move band, and cumulative-volume-delta
divergence are confluence layers. They are optional and each degrades
gracefully if its data is absent. They are included because volume-profile
levels are used in context: VWAP gives the session's volume-weighted mean,
Initial Balance gives the opening reference, the expected-move band frames a
realistic day's range, and CVD-versus-price flags exhaustion. Each one answers
"does independent volume/price information agree with what the profile shows
here?", which is exactly how these levels are traded in practice.
- The Auto-Read is the synthesis step: it does not add new data, it ranks the
levels the engine already produced by distance to price and states the auction
context in words.
In short, the histogram is the raw material and every other element is a
transformation of that same data into a level, a classification, a confluence
check, or a written read. That shared derivation is the reason they belong in a
single script rather than as separate indicators.
WHAT IT PLOTS
- Buy/sell two-tone histogram, drawn in the clear space to the right of price so
candles stay visible.
- POC, Value Area (VAH/VAL, adjustable percentage), HVN/LVN nodes.
- Naked daily POCs, with a creation-time check that skips levels already traded
through and an optional age-out so the list stays meaningful.
- Polarity flip: a prior-day Value Area edge that price closes decisively beyond
and holds changes role (broken VAH becomes support; broken VAL becomes
resistance) and feeds the support/resistance read.
- Prior-day and prior-week POC/Value Area, full-history composite overlay,
developing POC.
- VWAP with standard-deviation bands, Initial Balance, expected-move band,
cumulative-volume-delta divergence, buy/sell imbalance shelves, poor highs/lows,
single-print gaps.
- Higher-timeframe POC bias (a light proxy — see Limitations).
- Auto-Read dashboard (full or compact), one-line headline, and an on-chart
identity strip showing the script name, symbol and timeframe.
HOW TO USE
1. Choose a scope: Rolling (default), Composite (all history), From date, or
Fixed range. The composite overlay keeps the big-picture levels visible.
2. Read location first from the headline or dashboard: inside value, premium, or
discount, and whether value is migrating up, down, or flat.
3. Treat the levels as a map, not a signal. POC acts as a mean-revert magnet;
Value Area edges are balance boundaries; HVN suggests stalls; LVN suggests
fast moves; a naked POC is a revisit reference.
4. Look for confluence with VWAP, Initial Balance, and prior-session levels, and
treat CVD divergence as a caution flag.
5. Detail presets (Simple / Standard / Pro) gate how much is shown. A compact
dashboard toggle trims the table to the key decision fields.
WHAT MAKES IT ORIGINAL
- Full-history depth via the price-keyed map, beyond a fixed lookback window.
- A built-in, past-only calibration of the profile's own claims: it logs
value-edge and POC-stretch reversion events against the prior-day Value Area
(which exists on every bar, so the measurement backfills over history), waits a
fixed horizon, and reports the realised hit-rate with a 95% confidence
interval. This is descriptive of past behaviour on the specific instrument; it
is explicitly not a backtest and not a forecast.
- A decision-ordered, plain-language Auto-Read derived entirely from the engine's
own levels.
DATA SOURCE AND ANY-MARKET USE
The volume source is user-selectable (Settings > Data source), so the profile can
be built from the symbol's own volume or from any other series your feed
provides. For symbols that report no native volume (some cash indices and FX
feeds), an optional "borrow volume" field lets you supply a volume-bearing proxy
for the same instrument; it only activates when the charted symbol genuinely has
no volume. The volatility-index symbol for the expected-move band is also
user-set and falls back to a daily-ATR band when left blank. An optional
asset-class auto-tune adapts the grid and node percentiles to the detected class.
All of these are blank or off by default, so nothing is tied to one market.
CALIBRATION NOTE
The calibration panel is descriptive only. It reports how often, in the past, on
the current symbol, price followed through after the logged events. Small samples
are flagged. It is not a probability of future results.
LIMITATIONS (HONEST)
- This uses a BAR-RANGE volume distribution (optionally refined by lower-timeframe
bars). It approximates where volume traded within each bar. It is NOT exchange
price-by-price volume, tick data, or order-flow/footprint, and it cannot see
bid/ask.
- It needs real volume. Cash indices often report none — use the matching future
or continuous contract, or the borrow-volume field.
- The higher-timeframe POC is a light single-bar proxy (the price of the
highest-volume higher-timeframe bar over a lookback), not a full higher-
timeframe profile.
- All readings are probabilistic context, not predictions.
DISCLAIMER
This script is a study/indicator for chart analysis and education only. It is NOT
a strategy, NOT a recommendation, and NOT financial advice. It places no orders
and guarantees no result. Trading involves substantial risk; a level's past
behaviour does not assure future behaviour. Do your own research and manage your
own risk.
Indicador

Market Structure Target Tracker [MarkitTick]💡 An advanced, multi-faceted analytical suite designed for traders who rely on price action and logical trend progressions. By systematically identifying structural pivots in the market, this tool automatically maps out Break of Structure (BOS) and Change of Character (CHoCH) events. Rather than simply plotting support and resistance, it integrates a sophisticated risk-management framework directly onto the chart, calculating dynamic Entry, Stop Loss (SL), and multiple Take Profit (TP) levels based on market volatility.
Price action trading requires constant vigilance to identify local maxima and minima. This script relieves the trader of manual chart marking by perpetually analyzing rolling windows of price data. When an established swing high or low is breached, the indicator locks in the structural shift, evaluates higher timeframe momentum to filter out false breakouts, and establishes a forward-looking target zone.
✨ Originality and Utility
Most market structure indicators limit their functionality to placing historical labels on the chart. The originality of this script lies in its forward-looking, state-aware tracking mechanism. It operates not just as an indicator, but as a simulated trade management dashboard.
Once a structural break occurs, the indicator shifts into an active tracking state. It dynamically projects Entry and SL/TP bands anchored to the breakout, using Average True Range (ATR) to adapt to the asset's current volatility. Furthermore, it continuously evaluates the life-cycle of the structural break, monitoring price action to determine if the target is successfully hit or if the setup is invalidated by an opposing swing breach. This level of state persistence provides traders with an objective, real-time assessment of trade feasibility, risk-to-reward ratios, and trend duration.
🔬 Methodology and Concepts
The script is built upon four foundational technical concepts, woven together into a unified logic sequence:
• Pivot Detection
The core engine scans for Pivot Highs and Pivot Lows. A Pivot High is confirmed when a specific bar's high is strictly greater than the highs of a defined number of bars both preceding and following it. This creates a fractal representation of market turning points.
• Break of Structure (BOS)
A bullish structure break occurs when the closing price of a confirmed bar exceeds the most recent Pivot High. Conversely, a bearish break occurs when the close drops below the most recent Pivot Low. The script categorizes the first break in a new direction as a CHoCH, and subsequent continuous breaks as BOS.
• Higher Timeframe (HTF) Alignment
To prevent trading against the dominant macroeconomic trend, the script optionally queries the Relative Strength Index (RSI) from a higher timeframe. If this filter is engaged, bullish breakouts are ignored unless the HTF RSI indicates bullish momentum, adding a crucial layer of directional confirmation.
• Volatility-Adjusted Target Mapping
Upon a valid breakout, the script captures the current ATR. It then maps out a predefined trade setup. The Entry is plotted slightly past the breakout line, the Stop Loss is placed at a multiple of the ATR away from the entry, and up to three Take Profit levels are projected using independent ATR multipliers.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The indicator translates discretionary price action theory into a strict, rule-based algorithmic framework grounded in discrete mathematics and statistical dispersion.
• Local Extrema in Discrete Time Series
The pivot detection relies on the mathematical definition of local extrema within a bounded domain. For a given time series of high prices $H_t$, a local maximum is identified at time $t$ if $H_t \ge H_{t \pm k}$ for a defined neighborhood $k$ (the Swing Length). By anchoring structural logic to these extrema, the script removes the subjectivity of trendline drawing, relying strictly on empirical data points that define the boundaries of recent market equilibrium.
• Measurement of Dispersion via True Range
The risk management module utilizes the Average True Range. The True Range ( NYSE:TR $) is defined as the greatest of the following: the current high minus the current low, the absolute value of the current high minus the previous close, or the absolute value of the current low minus the previous close. The ATR is a smoothed moving average of this NYSE:TR $. In academic finance, variance and standard deviation are common measures of risk; however, ATR is particularly robust for trading applications as it accounts for overnight gaps and limits, providing a highly adaptive measurement of kinetic market energy to appropriately size stop-loss thresholds.
• Relative Momentum Standardization
The Higher Timeframe filter utilizes the Relative Strength Index. The RSI standardizes the velocity of price movement onto a 0-100 scale by comparing the exponential moving average of recent gains to recent losses. By enforcing a rule where NYSE:RSI > 50$ is required for bullish structural breaks, the algorithm mathematically demands that the higher-degree derivative of price (momentum) aligns with the lower-degree breakout, statistically reducing the probability of mean-reverting false breakouts.
🎨 Visual Guide
The script provides a rich, non-intrusive visual overlay to keep the trader informed of all active states and historical context.
• Structure Break Lines
Dashed Green Lines: Indicate historical and active Bullish breakouts.
Dashed Red Lines: Indicate historical and active Bearish breakouts.
Trend Labels: Triangles and markers (▲ BOS / ▼ CHoCH) appear at the midpoint of the break line to clearly annotate the structural shift.
• Trade Projection Lines
When a break is active, a cluster of dashed lines projects to the right of the current price action:
Blue Line (►): Proposed Entry level.
Red Line (✕): Stop Loss level based on ATR.
Green Lines (●, ★, ◆): Three tiered Take Profit targets based on escalating ATR multiples.
• The Heads-Up Dashboard
Located in the top right corner, this table is the operational nerve center. It displays:
Asset Ticker and Current Trend status.
HTF Direction and a visual block-bar representation of the HTF RSI.
Active BOS Level and Target Status (⏳ Pending or ✓ Hit).
Exact price coordinates for Entry, SL, and all TPs.
The active Risk-to-Reward (R:R) ratio for the first target.
Statistical tracking of Total BOS counts and the duration (in bars) of the active setup.
📖 How to Use
Traders can utilize this script as a complete ruleset for navigating trend continuations and reversals.
When observing the chart, wait for the script to print a new BOS or CHoCH label. This signifies that a confirmed candle has closed beyond a significant structural pivot. If the HTF filter is enabled, this break already has the backing of higher timeframe momentum.
Once the break prints, look to the dashed projection lines and the dashboard. The dashboard will display exact coordinates for a theoretical trade setup. You can use the blue Entry line to plan limit orders or market execution upon pullbacks. Set your structural stop-loss according to the red SL line, and place limit orders to secure profits at the green TP lines.
Monitor the Dashboard's "Tgt Status". If price action reverses heavily and crosses the opposing pivot point before reaching the target, the script will trigger its auto-invalidation sequence, clearing the active lines and returning to a neutral scanning state. This helps in dynamically cutting risk when a setup structurally fails.
⚙️ Inputs and Settings
The indicator is highly customizable, allowing adaptation to any asset or timeframe.
• BOS Group
Swing Length: Determines the lookback and lookforward period for pivot detection. Lower values react faster but produce more noise; higher values identify major macro swings.
• Visibility Group
Show BOS Line / Labels: Toggles the historical structural break drawings.
Auto-Invalidate: When enabled, the script will cancel an active setup if the opposing structural extreme is breached.
Color settings: Fully customize the hues for Bullish breaks, Bearish breaks, and Targets.
• SL/TP Group
Show Entry/SL/TP: Toggles the projection lines on the chart.
ATR Length: The lookback period for calculating market volatility.
Multipliers: Adjust the SL ATR Multiplier and the individual TP1, TP2, and TP3 multipliers to define your specific risk-to-reward parameters.
• HTF Group
HTF: Select the resolution for the higher timeframe filter (e.g., 240 for 4-hour, D for Daily).
HTF Filter: Toggle the momentum alignment requirement on or off.
HTF RSI Len: The period for the higher timeframe momentum oscillator.
• Alerts Group
The script features built-in webhook-ready JSON alerts that can notify external services the moment a BOS occurs or a target is successfully hit.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicador

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 TradingView 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. Indicador

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 TradingView 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 TradingView 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. Indicador

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 TradingView 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. Indicador

Live HTF Volume POC - ChartDNAThis indicator displays a real-time volume profile with a dynamic Point of Control (PoC) line on any higher timeframe, from 15-minute sessions up to 3-month periods.
HOW IT WORKS
The script divides the selected timeframe's price range into configurable bins and accumulates normalized volume at each level. The bin with the highest volume is highlighted as the PoC. A stepping PoC line tracks how the highest-volume level shifts as the session develops in real time.
When a new HTF session begins, the previous session's profile is frozen on the chart, building a visual history of volume distribution across sessions.
FEATURES
- Flexible timeframe selector supporting intraday (15m, 30m, 1h, 2h, 4h, 8h, 12h) through higher timeframes (Daily, Weekly, Monthly)
- Dynamic PoC plotted as a stepline showing real-time PoC migration
- 8 profile color styles: Default, Monochrome, Blue, Cyan, Green, Red, Orange, Purple (all gradient-based)
- Adjustable bin count and PoC line width
- Clean overlay with minimal chart clutter
HOW TO USE
- Use on lower timeframes (e.g., 5m or 15m chart) with a higher session timeframe (e.g., 1D or 1W) to see where volume is concentrating
- The PoC level often acts as a magnet for price, useful for identifying support/resistance and mean-reversion zones
- Combine with your existing price action or order flow analysis
LIMITATIONS
- Volume data quality depends on your broker/exchange feed
- On very low-liquidity instruments, the profile may appear sparse
- The indicator uses request.security() with a offset and lookahead to detect HTF boundaries; this does not introduce future data
CREDITS
Based on "Real-Time HTF Volume Footprint" by BigBeluga (open-source, CC BY-NC-SA 4.0). Modified with added timeframe flexibility, multiple gradient color styles, PoC line customization, and UI cleanup.
Indicador

AG Pro BOS & CHoCH Auto Detector [AGPro Series]AG Pro BOS & CHoCH Auto Detector
OVERVIEW / WHAT IT DOES
AG Pro BOS & CHoCH Auto Detector is a market structure overlay designed to organize swing-based price action into a more readable workflow. Instead of leaving the chart covered with disconnected pivot labels or generic break markers, this script tracks structural swing progression, identifies when prior highs or lows are broken, and classifies those breaks as either BOS (Break of Structure) or CHoCH (Change of Character). The goal is not to predict the next move, but to help traders read whether price is continuing an existing structure or beginning to challenge it.
The script monitors HH, HL, LH, and LL development using pivot logic, then uses those reference points to detect structural breaks. A break in the direction of the active structure is treated as BOS, while the first meaningful break against the prior directional structure is treated as CHoCH. This distinction matters because many charts show every break in the same visual language, even though continuation and character shift do not carry the same analytical meaning. Here, those events are separated clearly.
A second layer of usefulness comes from presentation discipline. This script is built to keep structural information visible without turning the chart into a wall of labels. Swing density can be reduced, major structures can be emphasized, and the higher timeframe overlay can remain active in the background to keep local execution aligned with broader structure. The result is a structure map that stays informative without becoming visually noisy.
This tool is intended for traders who already use price structure as part of their chart reading and want a cleaner way to monitor continuation versus transition. It can support discretionary workflows around trend continuation, pullback analysis, structure failure, and higher timeframe context, while still remaining transparent about how its signals are formed.
UNIQUE EDGE
Many market structure tools stop at plotting swing points or printing BOS / CHoCH text when a level is crossed. AG Pro BOS & CHoCH Auto Detector is built around a more organized structure engine approach.
Its edge is not based on trying to forecast direction or force trade entries. Its edge is based on classification, hierarchy, and chart readability:
- It separates continuation breaks from character-change breaks instead of treating all structural violations as equivalent.
- It preserves the swing chain context behind each event, so BOS and CHoCH are not isolated labels detached from surrounding structure.
- It allows confirmation mode selection, so the user can decide whether structure breaks require close confirmation or can react to intrabar violations.
- It includes higher timeframe structure context directly on the chart rather than forcing the user to reconstruct that context manually.
- It includes swing-density controls so the visual output can be kept clean even when structure is active.
This makes the script less like a simple labeling utility and more like a workflow layer for structure-based chart reading.
METHODOLOGY
1) Swing Structure Detection
The script uses pivot-based highs and lows to identify structural reference points. Those pivots are then classified into HH, HL, LH, and LL sequences, allowing the chart to reflect whether structure is strengthening, weakening, or transitioning.
2) BOS Logic
When price breaks a prior structural level in the direction of the active trend, the event is labeled as BOS. In practical terms, this represents structural continuation rather than directional reversal.
3) CHoCH Logic
When price breaks against the previously established directional structure, the event is labeled as CHoCH. This is treated as a possible character shift, not as a guaranteed reversal. It highlights that the prior structure has been challenged.
4) Confirmation Mode
Users can choose whether structure breaks are confirmed by candle close or by intrabar price action. Close mode is more conservative and can reduce noise. Intrabar mode is more responsive and may show earlier breaks.
5) Higher Timeframe Overlay
An optional MTF layer allows the script to bring higher timeframe structure context onto the active chart. This can help users avoid reading local swings in isolation when broader structure is still dominant.
6) Visual Hierarchy
The script uses horizontal structure levels, event labels, optional arrows, controlled swing density, and a compact information panel to keep key structure events readable. The design priority is to preserve analytical clarity.
SIGNALS & ALERTS
This script can generate structure-based alerts for the following event types:
- Bullish BOS
- Bearish BOS
- Bullish CHoCH
- Bearish CHoCH
- Any structure break
These alerts are event-driven and tied to the script's structural logic. They are intended to notify the user when a relevant break occurs according to the selected confirmation mode. They are not trade instructions and should be interpreted within the user's broader process.
KEY INPUTS
Swing Pivot Length
Controls pivot sensitivity. Lower values detect swings faster but may produce more noise. Higher values are more selective.
Confirmation Mode
Choose between Close and Intrabar logic for structure break confirmation.
Max Structures to Show
Limits how many structural events remain plotted on the chart.
Swing Label Density
Lets users choose between fuller swing annotation and a cleaner major-structure view.
Max Swing Labels on Chart
Helps prevent excessive label build-up in active market conditions.
Enable MTF Overlay
Adds higher timeframe structure context to the active chart.
MTF Timeframe
Defines which higher timeframe structure layer is projected onto the chart.
Label Size / Panel Font Size / Line Settings
Allow visual tuning without changing structural logic.
LIMITATIONS & TRANSPARENCY
This script uses pivot-based structure logic. That means swing points are confirmed only after the required pivot bars are completed. Because of this, the tool is confirmation-based by design and does not attempt to label unfinished pivots as confirmed structure.
BOS and CHoCH are structural events, not certainty statements. A CHoCH may signal that the prior directional structure is being challenged, but it does not guarantee a lasting reversal. Likewise, a BOS indicates continuation within the script's structural framework, but not guaranteed follow-through.
The higher timeframe overlay is designed to add context, not to replace direct higher timeframe chart review. Users should still interpret local and higher timeframe structure together rather than relying on a single signal state.
This script is best used as a structure-mapping tool within a broader analytical framework. It is not a standalone trading system, not a predictor, and not a substitute for risk management.
RISK DISCLOSURE
This indicator is for chart analysis and educational use. It does not provide financial advice, does not guarantee outcomes, and should not be treated as a complete trading methodology on its own. Market structure tools can help organize price action, but all trading decisions remain the responsibility of the user.
Indicador

AG Pro ROC Momentum Shift Map [AGPro Series]AG Pro ROC Momentum Shift Map
Overview / What it does
AG Pro ROC Momentum Shift Map is a momentum-regime tool built around the Rate of Change (ROC) concept, but organized as a transition map rather than a standalone oscillator. Instead of treating ROC as a simple line that moves above or below zero, this script tracks how momentum shifts from one regime to another, whether that transition is strengthening or fading, and whether the current phase is fresh, mature, or beginning to stall.
The script is designed to help users read momentum behavior in a more structured way. It separates bullish and bearish momentum into shift and expansion phases, then adds context through transition-zone logic, baseline separation, freshness tracking, and exhaustion risk. This allows the chart to show not only direction, but also the condition of that direction.
This publication is not intended to forecast tops, bottoms, or future price movement. It is a context tool that organizes ROC behavior into states that may help users evaluate whether momentum is attempting to change character, continue, or lose efficiency.
Unique Edge
The main difference between this script and many ROC-based publications is that it does not present ROC as a raw crossing signal. It reframes ROC as a regime map with state logic, quality scoring, and momentum-stage classification.
Within the AG Pro series, this script also has a different purpose than the previously published tools. It is not a breakout-quality model, not a pullback validator, not a support/resistance reaction map, not a relative-strength rotation framework, and not a correlation-stress tool. Those scripts focus on structure, levels, cross-asset comparison, reclaim behavior, or directional pressure. This script focuses on internal momentum state transitions derived from ROC behavior itself.
More specifically:
- It differs from breakout or retest-oriented scripts because it does not judge price interaction with a key level.
- It differs from reaction-map scripts because it does not score how price behaves around predefined structures such as pivots, support/resistance, or moving-average reclaim zones.
- It differs from pressure or trend-strength tools because its goal is not to estimate directional force in isolation, but to classify whether momentum is transitioning, expanding, contracting, or stalling.
- It differs from relative-strength tools because it does not compare one symbol against another symbol or benchmark.
That distinction is the core of the script’s originality: it uses ROC to map momentum regime transitions, not merely to display momentum magnitude.
Methodology
The script begins with a Rate of Change calculation over a user-defined length and optionally smooths that series to reduce small fluctuations. A regime baseline is then derived from the ROC series to establish whether current momentum is operating above or below its local equilibrium.
A dynamic transition zone is built from ROC volatility. This zone is used to identify areas where momentum is attempting to move from one regime into another. Instead of using a rigid zero-line interpretation alone, the script evaluates whether ROC is operating inside or outside this transition area and whether slope supports the move.
The internal state engine classifies momentum into five main conditions:
- Bull Shift
- Bull Expansion
- Bear Shift
- Bear Expansion
- Neutral / Compression
To add structure beyond simple state assignment, the script estimates Shift Quality using a combination of zone positioning, slope behavior, separation from the regime baseline, and acceleration. A whipsaw-sensitive penalty reduces the score when repeated zero-line crossings suggest unstable momentum behavior.
The script also tracks how long the current state has been active. That information is used to classify the move as Fresh, Active, Mature, Stale, or Stalling. Expansion and contraction logic are then layered on top to provide a clearer view of whether momentum is broadening or fading. Finally, an exhaustion-risk estimate is derived from adverse slope, adverse acceleration, and contraction behavior against the current state.
Signals & Alerts
This script provides state-based informational events rather than trade promises. The built-in alert set is designed to mark notable momentum transitions in a deterministic way:
- Bull Shift Detected
- Bull Expansion Active
- Bear Shift Detected
- Bear Expansion Active
- Momentum Stalling
These alerts are best interpreted as momentum-context events. They are not guarantees of continuation, reversal, or trade outcome.
Key Inputs
Important inputs include:
- ROC Length: defines the main lookback used for Rate of Change.
- ROC Smoothing: reduces short-term noise in the raw ROC series.
- Regime Baseline Length: sets the local reference used for momentum separation.
- Transition Zone Length and Multiplier: control the width and sensitivity of the transition area.
- Quality Normalization Length: affects how the quality model normalizes slope and ROC magnitude.
- Whipsaw Lookback: influences how aggressively unstable zero-line rotation is penalized.
- Freshness thresholds: define how quickly a state progresses from fresh to mature or stale.
Users can also customize visual behavior such as histogram visibility, transition-zone display, background shading, labels, and panel presentation.
Limitations & Transparency
This script is an analytical indicator, not a prediction engine. ROC is a momentum derivative, so it can react quickly but can also become unstable in choppy or mean-reverting environments. During low-quality market conditions, momentum may rotate repeatedly around the transition zone and generate less reliable state changes.
Shift Quality is an internal scoring framework created to organize momentum transitions more clearly. It is not an objective universal measure of trade quality, and it should not be interpreted as proof of future performance.
Freshness, expansion, contraction, and exhaustion labels are contextual classifications based on the script’s internal logic. They are intended to help users structure momentum analysis, not to replace broader chart reading, trend assessment, market structure work, or risk management.
As with any indicator, outputs can vary depending on symbol characteristics, volatility regime, timeframe, and user settings. This script should be used as one analytical layer within a broader decision process.
Risk Disclosure
This indicator is for chart analysis and educational use. It does not provide investment advice, trading advice, or guaranteed results. Financial markets involve risk, and no indicator can ensure favorable outcomes. Users should evaluate the script in their own workflow, test settings carefully, and apply independent judgment before making trading decisions.
Indicador

AG Pro Volume Profile POC Magnet Map [AGPro Series]AG Pro Volume Profile POC Magnet Map
Overview
AG Pro Volume Profile POC Magnet Map is a chart-overlay indicator built around one practical question: how strongly is the current Point of Control attracting, holding, or losing price?
Instead of trying to replicate a full volume-profile workstation, this script focuses on the behavior of the active POC and the surrounding value area. The goal is to turn a familiar volume-profile concept into a cleaner decision-support map that helps users judge whether price is still interacting with the current fair-value center, rejecting it, reclaiming it, or beginning to establish value elsewhere.
The script is designed for users who want a visual framework around POC behavior without covering the chart with heavy histogram structures or overly complex dashboards. It highlights the active POC, the current Value Area High (VAH), the current Value Area Low (VAL), a compact magnet band around the POC, and a small set of reaction labels that describe how price is interacting with that area.
In short, this indicator is not trying to tell users what to buy or sell. It is trying to make one specific market reference more readable: the relationship between price and the current POC region.
What the script does
At a high level, the script does five things:
1) It builds a fixed-lookback volume-distribution map from recent chart data.
2) It derives the active POC, VAH, and VAL from that distribution.
3) It measures how close price is to the current POC and how often price revisits or accepts that region.
4) It converts those observations into a compact Magnet Score and state readout.
5) It marks a small set of price/POC interaction events such as Tag, Reject, and Reclaim.
The result is a visual tool that combines reference levels and contextual interpretation in one overlay.
Unique edge
Many indicators can show a POC. This script is built to answer a more specific question: what is the quality of the current POC as a magnet for price?
That difference matters. A raw POC line can be useful, but by itself it does not explain whether price is repeatedly returning to it, drifting away from it, rejecting it, or stabilizing around it. This script adds that missing context by combining the active POC with a behavior layer.
The design goal is not “more features.” The design goal is clearer interpretation:
- Is price still accepting the current value center?
- Is the POC functioning as a pullback magnet?
- Is price rejecting the area instead of accepting it?
- Is value beginning to migrate?
That is the role of the score, the state engine, and the reaction labels.
Methodology
The script uses a fixed lookback window and divides the recent price range into user-defined bins. It then allocates each bar’s volume to one price bin using the selected bar source, which can be Close or HLC3. From that distribution it identifies:
- POC: the highest-volume bin in the lookback window
- VAH: the upper boundary of the selected value area percentage
- VAL: the lower boundary of the selected value area percentage
After the levels are derived, the script evaluates how price is behaving relative to the active POC region.
The Magnet Score is built from multiple components:
- Distance: how far current price is from the POC, normalized by ATR
- Revisit behavior: how often price has returned to the POC region
- Acceptance behavior: how often price has closed near the POC region
- Stability: whether the POC is relatively stable or drifting quickly
- Rejection pressure: whether interactions with the POC region are ending in rejection rather than acceptance
These components are combined into a bounded 0-100 score. Higher readings suggest that the current POC remains a stronger center of attraction. Lower readings suggest weaker pull, weaker acceptance, or a market beginning to operate away from the current value center.
The script then classifies context into states such as:
- Magnet Strong
- Magnet Active
- POC Tagged
- POC Rejected
- Accepted Away
- Magnet Weakening
This state layer is designed to summarize the current context rather than generate automatic trading instructions.
How to read the chart
POC
The POC is the main reference line. It marks the highest-volume price zone inside the selected lookback distribution. If price repeatedly returns to it, reacts from it, or consolidates around it, that line is functioning as an active center of interest.
VAH and VAL
VAH and VAL define the current value-area boundaries. These help users judge whether price is still operating inside value or beginning to establish acceptance above or below it.
Magnet band
The magnet band is a narrow region around the POC. It exists to make POC interaction easier to read visually. It is not a claim that every touch is meaningful. It is simply a compact visual tolerance zone around the active POC.
Reaction labels
The script can display a small set of event labels:
- Tag: price reached the current POC region
- Reject: price interacted with the area and moved away
- Reclaim: price crossed back through the active POC after being on the other side
These labels are meant to help describe interaction, not to replace confirmation logic, risk management, or broader market context.
Panel
The panel summarizes:
- Magnet Score
- POC Distance
- POC Drift
- Value Context
- Last Reaction
- Current POC / VAH / VAL values
This gives users a quick status view without needing to inspect every line manually.
Typical use cases
This indicator may be useful when users want to:
- monitor whether pullbacks are still returning to the active POC
- judge whether price is still auctioning inside value or beginning to accept away from value
- compare different symbols for how “sticky” the current POC region appears to be
- add context to an existing structure, trend, or mean-reversion workflow
- keep a cleaner chart while still tracking basic volume-profile behavior
The script is intended as a context and interpretation layer. It is not a complete trading plan on its own.
Key inputs
Lookback Bars
Controls the size of the historical window used for the profile calculation. A larger value creates a broader context. A smaller value makes the profile more reactive.
Rows / Bin Count
Controls profile granularity. Higher values create more detailed binning. Lower values produce a smoother, simpler map.
Value Area %
Defines how much of total lookback volume is included inside the value area used to derive VAH and VAL.
Price Source For Bin Allocation
Lets users choose whether each bar’s volume is allocated using Close or HLC3. This changes how the profile is distributed across bins.
ATR Length
Used in normalization and spacing calculations, including the distance component and label positioning.
Magnet Band Width (ATR)
Controls the thickness of the tolerance zone around the active POC.
Distance Ceiling (ATR)
Caps how far price can be from the POC before the distance component is treated as maximally weak.
Revisit Window and Acceptance Window
These affect how the script measures repeated interaction and acceptance around the active POC region.
POC Drift Lookback
Used to estimate whether the active POC is relatively stable or shifting.
Label controls
Users can adjust label visibility, density, cooldown behavior, and right-edge line labels to keep the chart cleaner or more descriptive depending on preference.
Alerts
The script includes alert conditions for:
- POC Tag
- POC Reject
- POC Reclaim
- Magnet Strong
- Magnet Active
- Magnet Weakening
- Accepted Away
These alerts are event-based notifications tied to the script’s contextual logic. They are not performance claims and they should not be interpreted as guaranteed entry or exit signals.
Limitations and transparency
This script uses a fixed-lookback, bar-based approximation of volume distribution. It does not reconstruct native exchange-level order flow, bid/ask delta, or true tick-by-tick auction detail.
Volume is allocated to bins using a selected bar source rather than full intrabar volume-at-price reconstruction. That means the profile is intentionally simplified so it can remain lightweight and readable inside a standard Pine overlay.
Because the script uses a rolling lookback window, the active POC, VAH, and VAL can change as older bars leave the window and newer bars enter it. That is normal behavior for this design.
The reaction labels are descriptive, not predictive. A Tag does not imply reversal. A Reject does not guarantee continuation. A Reclaim does not guarantee trend resumption. They are context markers showing how price interacted with the current POC area according to the script’s definitions.
This tool should be read in conjunction with price structure, volatility, liquidity conditions, and user-defined execution rules.
What this script is not
This script is not:
- a full session volume-profile suite
- an order-flow or footprint tool
- a prediction engine
- a guaranteed reversal detector
- a stand-alone trade system
It is a focused overlay for interpreting how price is behaving around the current Point of Control and value-area structure.
Practical interpretation notes
In many markets, the POC acts like a reference area rather than a directional signal. The more often price returns to it and the more often price stabilizes near it, the more useful that region can become as a working fair-value reference.
By contrast, when price begins to hold above VAH or below VAL and stops interacting meaningfully with the POC region, the script may shift toward weaker magnet states or accepted-away context. That does not automatically imply trend continuation, but it does suggest that the current value center may be losing influence.
Users may find this especially useful when comparing:
- balanced conditions vs. directional conditions
- shallow pullbacks vs. deeper value retests
- symbols that keep rotating through value vs. symbols that are clearly accepting away from it
Risk disclosure
This indicator is for chart analysis and market context only. It does not provide investment advice, trading advice, or guaranteed outcomes.
All indicators simplify market behavior. This script is no exception. Markets can ignore previously important value references, react differently across symbols and timeframes, and change behavior as volatility regimes shift.
Users are responsible for their own confirmation process, execution decisions, and risk management. Indicador

Indicador

QML FTB with Quality Score [Malibu]QML FTB with Quality Score
Overview
QML FTB with Quality Score is an open-source market structure indicator designed to detect Quasimodo (QML) reversal formations and highlight potential First Touch Back (FTB) reaction levels after a confirmed break of structure.
The script is built to be selective rather than frequent. Instead of displaying every possible QML pattern, it filters structure through multiple confluence factors and ranks each setup with a normalized Quality Score. The goal is to help traders focus on cleaner and more meaningful reaction zones rather than treating all reversal structures as equal.
What this indicator does
This indicator scans price action for bullish and bearish Quasimodo formations, confirms the related market structure break, and projects the corresponding left-shoulder area as a potential reaction level.
In practical terms, it is a structure-based reversal and reaction-zone tool that can assist with:
- market structure shifts
- support and resistance transitions
- break-of-structure confirmation
- liquidity-driven reversal analysis
- filtered first-touch retest opportunities
Why this indicator can be useful
Raw QML detection can become noisy because many structures may appear valid at first glance, but not all of them carry the same quality. This script attempts to solve that problem by combining pattern detection with context-based filtering.
Instead of only drawing a shape, it asks additional questions:
- Was the structure break strong enough?
- Is momentum aligned?
- Is there RSI divergence?
- Is there Fair Value Gap confluence?
- Was liquidity swept before the reversal?
- Is the level still fresh and untouched?
That layered process is what makes the script more selective and more practical for traders who prefer structured filtering over raw pattern frequency.
How it works
The script uses a ZigZag-style swing engine to track meaningful highs and lows in price structure. Based on those swings, it evaluates whether the sequence forms a valid Quasimodo transition.
Bullish structure:
- price forms a lower low
- price then breaks the prior key high
- the previous shoulder area becomes the projected bullish QML / FTB level
Bearish structure:
- price forms a higher high
- price then breaks the prior key low
- the previous shoulder area becomes the projected bearish QML / FTB level
Once the structure is identified, the setup can be refined through optional confluence filters. The script then calculates a Quality Score and prints the confirmed level only after bar close.
Filtering logic
1) Body Break Filter
This filter requires the break of structure to happen with candle body confirmation rather than wick-only penetration. Its purpose is to reduce weak or cosmetic breaks and focus on clearer structural shifts.
2) Momentum Filter (EMA)
This filter checks whether the setup is aligned with the broader directional bias using an EMA-based trend condition. Bullish setups are generally stronger when price is positioned in bullish momentum context, while bearish setups are generally stronger when price is positioned in bearish momentum context.
3) RSI Divergence Filter
This filter looks for momentum exhaustion. For bullish setups, it checks whether price pushes lower while RSI fails to confirm that weakness. For bearish setups, it checks the opposite. This is the strictest filter and is meant to isolate higher-selectivity reversal conditions.
4) FVG Confluence
This filter checks whether the projected QML level aligns with a Fair Value Gap area. The aim is to add imbalance context and identify zones where inefficient price delivery may support a reaction.
5) Liquidity Sweep Filter
This filter checks whether the head of the QML structure swept prior liquidity before the reversal. It is meant to capture structural traps and stop-hunt style behavior before a turn.
6) Freshness (FTB) Filter
This filter removes levels that have already been touched or used. Its goal is to keep the focus on first-touch reaction opportunities rather than repeatedly tested zones.
Quality Score logic
The script ranks each setup using a normalized Quality Score.
Current score components:
- RSI Divergence: +30
- FVG Confluence: +25
- Liquidity Sweep: +25
- EMA Momentum Alignment: +20
The total score is normalized according to the filters that are currently active, then displayed as a percentage. This allows the indicator to remain usable even when traders prefer a lighter or stricter filter stack.
What it plots on the chart
The indicator can display:
- a thick horizontal QML entry level
- optional dashed ZigZag structure lines
- bullish and bearish QML labels
- a Quality Score percentage
- an additional symbol when RSI divergence is present
The visual design is intentionally simple so the underlying structure remains readable on chart.
Inputs
ZigZag Sensitivity (default: 13)
Controls how sensitive the swing detection is.
- Lower values produce more swing points and more signals, but also more noise.
- Higher values reduce signal frequency and generally improve selectivity, but can introduce more lag.
Body Break Filter (default: true)
Requires structure breaks to happen with body confirmation.
- Usually lowers signal count
- Usually improves reliability
- Best kept enabled in noisier conditions
Momentum Filter / EMA Filter (default: true)
Restricts setups to those aligned with EMA direction.
- Reduces counter-trend signals
- Makes the script more selective
- Generally improves quality in directional markets
EMA Period (default: 50)
Defines the trend filter length.
- Lower values make the filter more responsive
- Higher values make it smoother and slower
RSI Divergence Filter (default: false)
Allows only setups that also show RSI divergence.
- This is the strictest filter
- Strongly reduces signal frequency
- Best used when only higher-selectivity reversal setups are desired
FVG Confluence (default: true)
Requires the level to align with Fair Value Gap context.
- Filters out some otherwise valid patterns
- Can improve contextual quality in imbalanced markets
Liquidity Sweep Filter (default: true)
Requires evidence of liquidity interaction at the head of the structure.
- Helps isolate trap-like reversal conditions
- Adds selectivity around structural extremes
Freshness (FTB) Filter (default: true)
Rejects previously tested levels.
- Keeps the focus on first-touch setups
- Useful for traders who prefer untouched zones
Line Length (bars) (default: 25)
Controls how far the projected QML level is extended to the right.
- This is a visual setting
- It does not change the signal logic
Which settings matter most
The three most important inputs are:
- ZigZag Sensitivity
- Body Break Filter
- Freshness (FTB) Filter
These settings have the biggest impact on how noisy, selective, and practical the final output becomes.
Suggested usage styles
Balanced / default use
For most users, the default settings are the best place to start. They are designed to provide a practical balance between signal frequency and selectivity.
More aggressive use
For traders who want more setups:
- reduce ZigZag Sensitivity toward 8–10
- consider disabling EMA Filter
- consider disabling FVG Confluence
This can increase opportunity count, but it also increases noise and false positives.
More conservative use
For traders who want fewer but stronger setups:
- keep Body Break Filter enabled
- keep Freshness Filter enabled
- enable RSI Divergence Filter
- focus more on higher-score setups, especially 80%+
This creates a much stricter selection process.
Timeframe behavior
This indicator is generally better suited to M15, H1, H4, and Daily charts.
Suggested sensitivity behavior:
- M15 to H1: 13 to 21 is usually more stable
- H4 to Daily: 8 to 13 is often more responsive without becoming overly delayed
Timeframe notes:
- On M1 and M5, low sensitivity settings can produce excessive noise and weak structure breaks.
- In lower timeframes, Body Break confirmation becomes much more important.
- On higher timeframes, very high sensitivity values can reduce opportunities too much and may introduce unnecessary delay.
Market conditions
The script tends to behave more cleanly in liquid markets where structure is clearer, such as:
- crypto majors
- forex majors
- index products
- other actively traded instruments
In very thin or highly irregular markets, the structural quality of setups may degrade.
Why this indicator may be preferred over simpler alternatives
This script is not intended to be just a basic ZigZag visualizer or a simple Quasimodo marker.
Its main differentiator is the way it combines multiple layers of structure validation into one ranked workflow:
- structure recognition
- body-based break confirmation
- momentum alignment
- divergence context
- FVG context
- liquidity sweep context
- freshness filtering
- normalized quality scoring
Instead of showing every possible shape, it tries to separate weaker structural patterns from more meaningful ones.
What makes this script different
The individual concepts used here are known market-structure concepts, but the practical value of the script comes from how they are combined.
Its distinguishing contribution is the orchestration layer:
- the Quality Score model
- the multi-filter ranking process
- the first-touch freshness workflow
- the compact integration of structure, momentum, liquidity, and imbalance into one decision-support tool
In other words, the script is built on generic market-structure concepts, but its filtering and ranking workflow is specific to this implementation.
How to use it in practice
A common workflow is:
- wait for a level to be confirmed
- monitor the first return into that level
- use the score and filter context to judge whether the setup deserves attention
- avoid treating every printed level as a guaranteed reversal
Many users will find it most useful as a structured decision-support tool rather than as a standalone entry engine.
Technical behavior
- Signals are confirmed on bar close.
- Confirmed levels remain fixed after printing.
- The script does not rely on request.security() in the described signal logic.
- No lookahead-based behavior is used in the signal confirmation process.
- The latest developing pivot may evolve while structure is still forming, but confirmed outputs are only printed after confirmation.
Alerts
The script includes on-close alerts when a new bullish or bearish QML level is confirmed.
Alert messages can include contextual details such as:
- direction
- Quality Score
- divergence state
Limitations
This script is a technical analysis tool, not a prediction engine.
Please keep in mind:
- sideways conditions can generate weaker structural setups
- very low timeframes can create more noise and false breaks
- news-driven volatility can invalidate technical levels quickly
- very low ZigZag Sensitivity settings can make ordinary pullbacks look more important than they really are
- no indicator can guarantee that price will react from every marked level
For that reason, the script is best used as a structured analysis tool rather than as a certainty model. Indicador

Core Structure Break [UkutaLabs]█ OVERVIEW
Core Structure Break is designed to automatically detect Breaks of Structure (BoS) in price action, helping traders quickly identify when the market transitions from one structural phase to another.
A Break of Structure occurs when price moves beyond a previous swing high or swing low, signaling that the current trend may be continuing or shifting. These moments are often where momentum accelerates as liquidity is taken and market participants reposition.
This indicator removes the need to manually track swing points by automatically identifying key structure levels and highlighting when they are broken.
By clearly marking these structural events, traders can better understand trend continuation, potential reversals, and areas where liquidity has likely been taken.
█ FEATURES
Automatic Structure Detection
Identifies important swing highs and lows to define the current market structure.
Break of Structure Signals (BoS)
Highlights when price breaks a previously established structural level.
Bullish & Bearish Structure Breaks
Clearly distinguishes between bullish and bearish structural shifts.
Clean Chart Visualization
Designed to provide clear structural insights without cluttering your chart.
Works Across All Markets & Timeframes
Suitable for Forex, Crypto, Stocks, and Futures on any timeframe.
█ HOW TO USE
Trend Confirmation
A bullish break of structure suggests buyers are in control and the trend may continue upward.
A bearish break of structure suggests sellers are dominating the market.
Continuation Trades
Traders often use BOS signals to confirm that a trend remains intact before entering pullback trades.
Liquidity & Momentum Awareness
Structure breaks frequently occur when liquidity above highs or below lows is taken. This can lead to rapid price movement.
Combine With Other Tools
For best results, use structural breaks alongside other concepts such as:
Support & Resistance
Liquidity Sweeps
Order Blocks
Fair Value Gaps
Trend Indicators
█ WHY MARKET STRUCTURE MATTERS
Markets move in cycles of accumulation, expansion, retracement, and continuation.
Breaks of structure are often the first sign that the next phase has begun.
By identifying these key moments automatically, Core Structure Break helps traders stay aligned with the underlying market structure instead of reacting emotionally to every price movement. Indicador

Delta Ladder Order Flow [UAlgo]Delta Ladder Order Flow is an overlay order flow visualizer that builds a per bar delta ladder using lower timeframe candles as an intrabar proxy. For each recent bar, the script pulls the underlying lower timeframe open, high, low, close, and volume arrays, then distributes volume into discrete price buckets. Each bucket accumulates estimated buy volume and sell volume, producing a ladder that resembles a footprint style view.
The display focuses on three core outputs:
A delta heatmap ladder where each price level is colored by net delta dominance
A Point of Control highlight that marks the highest total volume level inside the bar
A stacked imbalance detector that scans diagonally across levels to identify aggressive one sided participation and optionally projects that stack forward
The system is designed with stability controls for real world chart conditions. It includes dynamic scaling to prevent excessive level counts on high range bars, object budgeting through bars to draw limits, and text filtering to reduce clutter.
🔹 Features
1) Intrabar Resolution via Lower Timeframe Data
The ladder is constructed using request.security_lower_tf. You select an Intrabar Resolution timeframe that must be lower than the chart timeframe. The script then receives arrays of LTF candles for each chart bar and uses them as a proxy for footprint style aggregation.
This approach provides a practical order flow approximation on TradingView charts without requiring native tick level data.
2) Ladder Aggregation with Tick Size Multiplier
Price levels are aggregated using the symbol mintick multiplied by a user multiplier. Increasing the multiplier produces thicker ladder steps and fewer levels. Decreasing it produces finer granularity but increases the number of boxes drawn.
This control is critical for balancing detail versus performance across different symbols and volatility regimes.
3) Dynamic Scaling to Prevent High Range Bar Overload
A single volatile bar can contain too many price steps if the granularity is too fine. To prevent crashes, the script estimates how many steps would be required for the bar and increases the effective step size when the raw step count exceeds Max Levels per Bar.
This keeps rendering stable even during high volatility events while still maintaining a consistent ladder representation.
4) Buy, Sell, and Neutral Volume Attribution
Each LTF candle’s direction is inferred from its open and close:
Close above open is treated as buy side volume
Close below open is treated as sell side volume
Close equal open is treated as neutral and split evenly between buy and sell
Volume is then distributed across the price buckets covered by the LTF candle range so that wide candles spread their influence across multiple levels.
5) Delta Heatmap Ladder with Intensity Scaling
Each price bucket computes delta as buy volume minus sell volume and total volume as the sum of both. Ladder cells are colored positive or negative based on delta sign, and transparency is scaled by how dominant the delta is relative to the maximum total volume level inside that bar. This yields a compact heatmap where strong imbalances visually stand out.
A square root curve is applied to intensity to improve mid tone visibility without making everything fully opaque.
6) Point of Control Highlight
The ladder tracks the price level with the highest total volume and marks it as the Point of Control. When enabled, the POC row uses a dedicated border color and a stronger border width so the acceptance anchor is immediately visible.
7) Stacked Imbalance Detection and Projection
The script can detect stacked diagonal imbalances. It compares volume across adjacent price levels using a diagonal logic similar to footprint tools:
Bullish diagonal checks buy volume at a level versus sell volume at the level below
Bearish diagonal checks sell volume at a level versus buy volume at the level above
An imbalance requires the winning side to exceed the losing side by the configured Imbalance Ratio and also exceed a minimum volume threshold to filter low volume noise. When consecutive imbalanced levels reach the Stacked Levels count, the stack is marked and optionally extended forward as a zone.
Stack members also override normal heatmap coloring and are rendered more solid for emphasis.
8) Clean Visual Controls
Several options support readability:
Bars to Draw limits workload and object count
Show Delta Values can be toggled on or off
Min Delta to Show Text filters small prints
Ladder Width percent controls how wide the ladder is relative to the bar space
Text size can be adjusted for different chart zoom levels
Box outline can be hidden by default for a cleaner footprint aesthetic
🔹 Calculations
1) Intrabar data acquisition (lower timeframe arrays)
The script requests arrays of LTF OHLCV values for each chart bar using request.security_lower_tf.
ltf_open = request.security_lower_tf(syminfo.tickerid, tf_input, open)
ltf_close = request.security_lower_tf(syminfo.tickerid, tf_input, close)
ltf_high = request.security_lower_tf(syminfo.tickerid, tf_input, high)
ltf_low = request.security_lower_tf(syminfo.tickerid, tf_input, low)
ltf_vol = request.security_lower_tf(syminfo.tickerid, tf_input, volume)
These arrays contain the lower timeframe candles that make up each chart bar. Each chart bar index has its own embedded array.
2) Base tick step (bucket size control)
Bucket size starts from mintick multiplied by Tick Size Multiplier.
var float base_tick_step = syminfo.mintick * tick_size_mult
This is the baseline price increment used to build the ladder levels.
3) Last bar execution model (performance design)
The script only builds and draws ladders when barstate.islast is true. It then reconstructs the last N bars using an index offset.
if barstate.islast
int start_idx = math.max(0, bar_index - bars_to_draw + 1)
for i = start_idx to bar_index
int offset = bar_index - i
float arr_o = ltf_open
float arr_c = ltf_close
float arr_h = ltf_high
float arr_l = ltf_low
float arr_v = ltf_vol
This design dramatically reduces CPU and memory load compared to updating every bar.
4) Dynamic scaling per bar (anti crash protection)
For each bar, the script estimates how many price steps would be needed using the current bucket size. If that count exceeds Max Levels per Bar, it increases the step size only for that bar.
float bar_h = high
float bar_l = low
float bar_range = bar_h - bar_l
float raw_steps = bar_range / base_tick_step
int scaler = 1
if raw_steps > max_levels_per_bar
scaler := int(math.ceil(raw_steps / max_levels_per_bar))
float current_tick_step = base_tick_step * scaler
Result:
Calm bars use fine granularity
High range bars are automatically compressed into fewer buckets
5) LTF candle direction classification (buy, sell, neutral)
Each LTF candle is classified using its open and close. Neutral candles split volume evenly.
bool is_buy = c > o
bool is_sell = c < o
bool is_neutral = c == o
This is a heuristic proxy for aggressor side. It is not true bid ask data.
6) Align LTF candle range to bucket grid
The candle low and high are rounded to the current tick step so bucket prices align cleanly.
float low_aligned = math.round(l / current_tick_step) * current_tick_step
float high_aligned = math.round(h / current_tick_step) * current_tick_step
7) Step counting and volume per step
The script computes how many bucket levels the candle touches and divides volume equally across them.
int steps = int(math.round((high_aligned - low_aligned) / current_tick_step)) + 1
if steps > 500
steps := 500
float vol_per_step = v / steps
This means wide candles distribute volume across more ladder cells, while tight candles concentrate volume into fewer cells.
8) Writing volume into the ladder map (PriceLevel storage)
Each chart bar owns a DeltaLadder with a map of price to PriceLevel. Each PriceLevel stores buy and sell volume. Volume is added step by step.
type PriceLevel
float price
float buy_vol = 0.0
float sell_vol = 0.0
type DeltaLadder
int bar_idx
map levels
float min_price = 10000000.0
float max_price = 0.0
float max_vol_level = 0.0
float poc_price = na
float poc_vol = 0.0
The add method updates volumes and also tracks max volume and POC:
method add_volume(DeltaLadder this, float price, float vol, bool is_buy, bool is_neutral) =>
if not this.levels.contains(price)
this.levels.put(price, PriceLevel.new(price))
PriceLevel lvl = this.levels.get(price)
if is_neutral
lvl.buy_vol += vol * 0.5
lvl.sell_vol += vol * 0.5
else if is_buy
lvl.buy_vol += vol
else
lvl.sell_vol += vol
float t = lvl.total()
if t > this.max_vol_level
this.max_vol_level := t
if t > this.poc_vol
this.poc_vol := t
this.poc_price := price
The main loop calls this method for each bucket level touched by each LTF candle:
for p = 0 to steps - 1
float level_price = low_aligned + (p * current_tick_step)
ladder.add_volume(level_price, vol_per_step, is_buy, is_neutral)
9) Delta and total volume formulas
Delta and total are defined as methods on PriceLevel.
method delta(PriceLevel this) =>
this.buy_vol - this.sell_vol
method total(PriceLevel this) =>
this.buy_vol + this.sell_vol
These values drive both coloring and POC selection.
10) Stacked imbalance detection (diagonal footprint logic)
Prices are sorted so neighbor comparisons are correct. A stack_map stores whether each price belongs to a bullish or bearish stacked run.
float prices = ladder.levels.keys()
array.sort(prices)
map stack_map = map.new()
Diagonal comparisons:
Bullish diagonal compares BuyVol at level i with SellVol at level below i minus 1
Bearish diagonal compares SellVol at level i with BuyVol at level above i plus 1
Bullish check includes a zero handling rule:
if i > 0
float p_below = array.get(prices, i-1)
PriceLevel lvl_below = ladder.levels.get(p_below)
if lvl_below.sell_vol == 0
if lvl.buy_vol > imb_min_vol
direction := 1
else
if lvl.buy_vol > lvl_below.sell_vol * imb_ratio and lvl.buy_vol > imb_min_vol
direction := 1
Bearish check includes symmetric logic:
if i < array.size(prices) - 1
float p_above = array.get(prices, i+1)
PriceLevel lvl_above = ladder.levels.get(p_above)
if lvl_above.buy_vol == 0
if lvl.sell_vol > imb_min_vol
direction := -1
else
if lvl.sell_vol > lvl_above.buy_vol * imb_ratio and lvl.sell_vol > imb_min_vol
direction := -1
Runs are tracked and only accepted if the number of consecutive levels meets the stacked requirement:
if math.abs(i - run_start_idx) >= stack_count
for k = run_start_idx to i - 1
stack_map.put(array.get(prices, k), run_dir)
The script also draws a projected zone for the detected stack band:
box.new(right_time, p_top + current_tick_step/2, right_time + 1000 * 60 * 60 * 24, p_bot - current_tick_step/2,
xloc=xloc.bar_time, border_width=0, bgcolor=color.new(c_stack, 85), extend=extend.right)
11) Heatmap intensity and transparency mapping
For each price level, intensity is computed as abs(delta) relative to the maximum total volume level in the bar, then curved and mapped into transparency.
float intensity = ladder.max_vol_level > 0 ? math.abs(delta) / ladder.max_vol_level : 0
intensity := math.min(intensity, 1.0)
float curved_intensity = math.sqrt(intensity)
float transp = 97 - (curved_intensity * 57)
Stacked members force stronger visibility:
if stack_map.contains(p)
intensity := 1.0
transp := 30
12) POC marking in the drawing pass
POC is detected during volume accumulation, then used in rendering to upgrade the border style for that cell.
bool is_poc = show_poc and (p == ladder.poc_price)
color border_c = is_poc ? col_poc : col_outline
int border_w = is_poc ? 2 : 1
13) Delta text rendering filter
Text labels are optional and can be filtered by a minimum absolute delta threshold.
if show_text and math.abs(delta) >= text_threshold
string txt = str.tostring(delta, format.volume)
label.new(int((left_time + right_time)/2), p, txt,
xloc=xloc.bar_time, style=label.style_none,
textcolor=txt_col, size=text_size)
Indicador

Indicador

FluxPulse Momentum [JOAT]FluxPulse Momentum - Adaptive Multi-Component Oscillator
FluxPulse Momentum is a composite oscillator that blends three distinct momentum components into a single, smoothed signal line. Rather than relying on a single indicator, it synthesizes adaptive RSI, normalized rate of change, and a Kaufman-style efficiency ratio to provide a multi-dimensional view of momentum.
What This Indicator Does
Combines RSI, Rate of Change (ROC), and Efficiency Ratio into one weighted composite
Applies EMA smoothing to reduce noise while preserving responsiveness
Displays overbought/oversold zones with optional background highlighting
Generates buy/sell signals when the oscillator crosses its signal line in favorable zones
Provides a real-time dashboard showing current state, momentum direction, and efficiency
Core Components
Adaptive RSI (50% weight) — Standard RSI calculation normalized around the 50 level
Normalized ROC (30% weight) — Rate of change scaled relative to its recent maximum range
Efficiency Ratio (20% weight) — Measures directional movement efficiency, inspired by Kaufman's adaptive concepts
The final composite is smoothed twice using EMA to create both a fast line and a signal line.
Signal Logic
// Buy signal: crossover in lower half
buySignal = ta.crossover(qmo, qmoSmooth) and qmo < 50
// Sell signal: crossunder in upper half
sellSignal = ta.crossunder(qmo, qmoSmooth) and qmo > 50
Signals are generated only when the oscillator is positioned favorably—buy signals occur below the 50 midline, sell signals occur above it.
Dashboard Information
The on-chart table displays:
Current oscillator value with gradient coloring
Momentum state (Overbought, Oversold, Bullish, Bearish, Neutral)
Momentum direction and acceleration
Efficiency ratio percentage
Active signal status
Inputs Overview
RSI Length — Period for RSI calculation (default: 14)
ROC Length — Period for rate of change (default: 10)
Smoothing Length — EMA smoothing period (default: 3)
Overbought/Oversold Levels — Threshold levels for zone detection
Await Bar Confirmation — Wait for bar close before triggering alerts
How to Use It
Watch for crossovers between the main line and signal line
Use overbought/oversold zones to identify potential reversal areas
Monitor the histogram for momentum acceleration or deceleration
Combine with price action analysis for confirmation
Alerts
Buy Signal — Bullish crossover in the lower zone
Sell Signal — Bearish crossunder in the upper zone
Overbought/Oversold Crosses — Level threshold crossings
This indicator is provided for educational purposes. It does not constitute financial advice. Always conduct your own analysis before making trading decisions.
— Made with passion by officialjackofalltrades Indicador

Indicador
