Wave Structure PRO v2 [Viprasol]Wave Structure PRO v2 is an automated Elliott Wave structure engine. It builds a ZigZag from confirmed pivots, searches for a valid 1-2-3-4-5 impulse and the following A-B-C correction, validates every candidate against Elliott's three hard rules, and scores how closely each wave matches its ideal Fibonacci proportion. On top of the count it draws the Elliott base channel, Wave 3 / Wave 5 Fibonacci targets, the next-wave retrace zone, and the exact price level where the count becomes invalid.
This is a structure assistant, not a prediction oracle. Elliott counting is inherently ambiguous, and this engine recounts as new pivots confirm. Everything it shows is derived from confirmed swing points, and it tells you honestly when no valid count exists.
HOW IT WORKS
ZigZag Pivot Engine:
Swing highs and lows are detected with a symmetric pivot window (default 8 bars left and right). A pivot only enters the structure after it is confirmed, and consecutive same-direction extremes are merged so the ZigZag always alternates high-low-high-low. The engine keeps the most recent 32 pivots as its working structure.
Sliding-Window Count Search:
The engine scans across the entire pivot structure for the most recent valid count — it does not require the pattern to end exactly at the newest pivot. A completed impulse whose correction is still developing stays on the chart and is marked "prior" in the panel, so a single awkward swing at the right edge does not wipe the analysis. At each candidate position a full 9-pivot impulse + A-B-C structure is preferred over a 6-pivot impulse alone.
Hard-Rule Validation:
Every candidate impulse must pass Elliott's three non-negotiable rules before it is accepted:
1. Wave 2 never retraces more than 100% of Wave 1
2. Wave 3 is never the shortest among Waves 1, 3, and 5
3. Wave 4 never enters the price territory of Wave 1
The A-B-C correction is additionally validated for direction and structure (B stays below the impulse extreme, C extends beyond A).
Fibonacci Quality Score:
Each wave is measured against its textbook ideal — Wave 2 near 0.5-0.618 of Wave 1, Wave 3 extending 1.618+ of Wave 1, Wave 4 near 0.382 of Wave 3, Wave 5 near equality with Wave 1. The four fits combine into a 0-100 "textbook fit" score. Extended fifth waves are scored against the alternative ideal of 0.618 x (Wave 1 + Wave 3), so a legitimately extended fifth is recognized instead of being punished, and the panel flags it as "extended 5th".
Invalidation Level:
For every accepted count the engine draws the price at which the structure stops being valid — a correction that retraces 100% of the impulse start invalidates the count. The exact level is shown on the chart, in the panel, and in the data window, giving you an objective line in the sand instead of a subjective opinion.
Alternation Check:
Waves 2 and 4 are compared as retracements of Wave 1 — when their depths differ meaningfully the panel confirms the alternation guideline is present, and shows an explicit "absent" flag when it is not.
KEY FEATURES
- Automatic 1-5 impulse and A-B-C correction detection with wave labels on the chart
- Sliding-window search — finds the most recent valid count anywhere in the structure, marked "prior" when its final pivot is not the newest swing
- Elliott's 3 hard rules enforced on every count — invalid structures are never labeled
- 0-100 Fibonacci quality score with per-wave ratio annotations at each pivot
- Extended fifth wave recognition with alternative 0.618 x (W1+W3) scoring path
- On-chart invalidation level with price label
- Elliott base channel (2-4 trendline with parallel through Wave 3)
- Wave 3 and Wave 5 Fibonacci extension targets with configurable multiples
- Next-wave retrace target zone (0.382-0.618 of the full impulse)
- Analysis panel: count state, quality, all four wave ratios, alternation, rule status, invalidation price
- Data-window outputs (quality, direction, stage, invalidation) usable by strategies and screeners via input.source
- Transition-based alerts that fire on state changes, not on every pivot refresh
HOW TO USE
Setup:
1. Add to any chart — works on all markets and timeframes
2. Use a standard candlestick chart (not Heikin Ashi)
3. Tune "Swing Sensitivity" to the wave degree you trade: higher values = larger-degree waves, lower values = smaller subdivisions
4. Defaults (sensitivity 8) suit 1H-4H charts on liquid instruments
Reading the Chart:
- Numbered labels 1-5 mark the impulse pivots; A-B-C labels mark the correction (orange)
- Small ratio numbers at pivots 2, 3, 4, 5 show each wave's Fibonacci proportion
- Dotted / dashed blue lines = Wave 3 and Wave 5 extension targets
- Cyan channel = Elliott base channel projected forward
- Purple box = expected retrace zone for the next corrective wave
- Red line = invalidation level; if price crosses it, the count is wrong
- Panel header: up/down arrow shows count direction; "prior" means the count completed before the newest swing
Reading the Panel:
- Quality 70+ = clean textbook structure; below 50 = forced fit, treat with caution
- "NO COUNT" genuinely means no valid structure exists right now — the engine never shows leftover metrics from a dead count
- The Invalidation row gives the exact price that voids the current count
SETTINGS
ZigZag: Swing sensitivity (pivot bars left/right), ZigZag visibility and color.
Waves: Wave label toggles for 1-5 and A-B-C, bullish/bearish/corrective colors, label size.
Fibonacci & Quality: Ratio annotations toggle, target visibility, Wave 3 and Wave 5 extension multiples, target color.
Channel & Target Zone: Base channel toggle and color, retrace zone toggle and color.
Invalidation: Level visibility and color.
Analysis Panel: Show/hide, position.
Alerts: Quality threshold for the high-quality alert, dynamic alert() messages toggle.
ALERTS
1. Count found — a new valid wave count appeared (fires once per count, not on every pivot extension)
2. Count invalidated — the active count stopped being valid
3. 1-5 + A-B-C complete — the correction finished, full cycle in place
4. High-quality count — a new count scored above your quality threshold
With "Dynamic alert() Messages" enabled, alert() notifications include the symbol, timeframe, direction, quality score, and invalidation price. Create the alert with condition "Any alert() function call".
LIMITATIONS & DISCLAIMER
- Elliott Wave counting is subjective by nature; this engine applies one rigorous, rule-based interpretation and recounts as new pivots confirm
- Pivots confirm with a delay equal to the swing sensitivity — labels appear after the swing completes, never in real time at the extreme
- The count can change when a developing swing extends; the transition alerts are designed around this, firing on genuine state changes only
- Wave degree is determined by your sensitivity setting; the engine does not track multiple degrees simultaneously
- Quality scoring measures Fibonacci proportion fit, not probability of continuation
- This indicator is for educational and analytical purposes only — it is not financial advice. Always use proper risk management.
ORIGINALITY
All code is original Viprasol work. Elliott Wave theory itself is public knowledge (R.N. Elliott); no third-party script was reused. v2 supersedes Wave Structure PRO with a stale-state fix, sliding-window count search, invalidation levels, extended-fifth scoring, data-window outputs, and transition-based alerts. Indicador

Strong Impulse Signals | ProjectSyndicateStrong Impulse Signals catches the moment a market stops coiling and commits — then fires WITH the thrust instead of fading it. Markets compress into tight bases, then release: a single displacement candle expands far beyond its recent range, dominates its own body, closes hard at its extreme, and breaks the micro-structure that was capping price. That ignition is the event. The engine measures the energy stored in that thrust as a 0–10 Propulsion Strength and fires in the direction the move is already going — with the breakout, not against it. Every setup gets a structural invalidation level behind the launch, fixed R-based targets, a 0–10 strength with a 1–5 star rank, and is tracked live on a full statistics dashboard — including honest stop-outs — so you can see exactly how the logic behaves on the symbol and timeframe you trade.
🧠 Impulse Core — the core idea, expressed as a lifecycle: COIL ▸ IGNITION ▸ BREAK ▸ THRUST ▸ TARGET. Confirmed swing pivots define the micro-structure the move has to break. A coil forms when the recent range winds tight — a loaded spring. Ignition is a displacement candle: its range must clear your ATR threshold, its body must dominate the bar, it must close in the top (long) or bottom (short) fraction of its own range, and — when enabled — it must break the most recent swing high or low. When that candle fires, the signal fires WITH it, in the direction it expanded. Pivots come from confirmed swings and every condition is evaluated on the bar's close, so the structure and the signal do not repaint.
🔋 Strength Anatomy — an ignition is not just true or false; it is scored for how much thrust it carries. The Propulsion Strength fuses breakout-native ingredients into a single 0–10 read: displacement (how far the candle's range expanded in ATR — the heart of an impulse), body dominance (clean thrust versus wick), close-in-range (did it close at its extreme rather than fade back), momentum run (net directional displacement over the run window plus consecutive same-direction closes), volume thrust (the spike over a rolling baseline), velocity / acceleration (is short-term ROC still expanding), loaded coil release (did it launch from a compressed base), structure-break confirmation, and trend / HTF alignment. Each ingredient contributes to the 0–10 total, and you shape what qualifies through the ignition thresholds and requirement toggles rather than chasing a single number.
🎯 Structural Invalidation + R-Based Targets — the stop is anchored to the launch, not guessed. Choose the Stop Basis: Structural sits behind the leg origin (the launch swing over the run window); Ignition Bar sits behind the trigger candle's own extreme. An ATR buffer adds cushion beyond that anchor, and the distance is then clamped between an ATR floor and an ATR ceiling — so a structural stop never balloons into a wide stop, and the 1R target never collapses into a tight TP. TP1, TP2, and TP3 are set at clean R multiples, defaulting to a balanced 1R / 2R / 3R and fully adjustable to your reward profile. Every signal plots its complete Entry / SL / TP1 / TP2 / TP3 line set, labeled level prices, and filled TP / SL zone boxes, with a result label on exit — and the zones are width-capped so long trades never draw towering boxes.
🚀 Rocket Power Stack — because the whole point of an impulse is the size of the thrust, each signal can stack a column of 🚀 in the direction of the move: from 5 rockets (weak) up to 10 (elite), scaled to the strength score, so the raw power of the thrust reads at a glance without checking the number. A left-offset control keeps the stack clear of the SL / TP zone box. It is a visual conviction read that sits alongside the numeric score and stars.
🎚️ Conviction Controls — a compact set of dials sets how serious an ignition must be before it counts: the Min Strength To Signal (the 0–10 floor to fire at all), a Strong Threshold with an optional Only Show Strong Signals filter, the Ignition Range in ATR (the core displacement test), the Min Body Dominance, the Close-In-Range Strength, the Require Structure Break switch, the Require Coil Release switch, and the Require Volume Thrust switch with its multiplier and baseline. Tighten them for fewer, cleaner impulses; loosen them for more activity. This is your main control over conviction versus frequency.
🧭 Trend Gating & Single-Ticket Discipline — where a fade tool blocks trend, this engine leans into it. HTF Trend Alignment permits only long impulses above the higher-timeframe EMA and only short impulses below it, so counter-trend thrusts are filtered out; alignment here is the edge, not the enemy. A Signal Cooldown enforces a minimum gap between entries so one violent session can't stack overlapping trades, and only one ticket is active at a time. Resolution is SL-first pessimistic with honest partial-TP accounting — if a stop is hit after TP1 or TP2, that partial result is booked rather than rounded up.
⭐ 0–10 Strength with Star Tiers — every signal is labeled with its numeric strength, a 1–5 star rank, and a tier ladder running FORMING → WEAK → MODERATE → STRONG → VERY STRONG → ELITE, with a ⚡COIL tag flagging impulses that launched from a compressed base. Treat the strength as a cleanliness and confluence read for ranking and thinning setups — it describes how textbook an ignition is, not a guaranteed outcome. The Min Strength and Only-Strong gate restrict what is displayed and alerted, while the dashboard keeps tracking every tier in the background.
📊 Live Statistics Dashboard — a non-intrusive panel tracks, in real time on your chart: the current status (waiting → trade active) and the active trade side, the last signal with its star score and ⚡COIL flag, a Live Propulsion read with separate long- and short-impulse strength, component meters for Displacement, Volume Thrust, Momentum Run, and Coil Charge, total signals, win rate, closed trades, profit factor, average R per trade, best-performing direction, long vs short win rate, current and max win/loss streaks, and a TP1 / TP2 / TP3 / SL outcome breakdown. Every filled trade that reaches an outcome is counted — winners and stop-outs alike — so the numbers are computed live from the real signals on your current symbol and timeframe, not a figure printed in a description.
🎨 Clean Themed Visuals — four coherent palettes (Emerald default, plus Ice Blue, Gold Black, and Aqua Violet) shade the ⚡ signal labels, the BUY / SELL arrows, the per-trade SL / TP ladder and zone boxes, the rocket power stack, and the dashboard to one look, so direction and quality read at a glance. Each ignition prints a ⚡ impulse label with its strength, star tier, and direction, plus a crisp BUY or SELL arrow at the bar. The active ticket extends live to the right and then snaps cleanly back to its exit bar on close, so labels never float away — and a max-drawn-trades cap keeps only the most recent tickets on the chart while the statistics stay cumulative over the full history.
🔔 Detailed Alerts — fires on a Strong Long Impulse, a Strong Short Impulse, any impulse, and on TP3 Hit, Partial TP Exit, and SL events, formatted for manual or automated use. The strength gate can restrict alerts to higher-conviction impulses.
🔧 Fully Customizable — every component is exposed: the structure pivot period that defines which swings count; the ignition range, min body dominance, close-in-range strength, momentum run window, and the structure-break requirement; the coil lookback and tightness reference, the coil-release requirement, and the volume-thrust requirement with its multiplier and baseline; the min-strength floor, the strong threshold, and the only-strong filter; the ATR length, stop basis, stop buffer, the max-risk cap and min-risk floor, and the three R targets; the level-shelf length, max zone width, and max historical trades; the HTF alignment, its timeframe and EMA length, and the signal cooldown; all four themes; and every signal label, BUY/SELL arrow, star, rocket, line, box, and dashboard toggle.
🎯 Why this is different — most momentum tools just color a candle or flag a breakout after it has already run. This one treats the ignition itself as the event, scores how much thrust that displacement stored across range, body, close, run, volume, acceleration, coil release, structure break, and trend, and fires WITH the move — riding the thrust the way price actually tends to extend — then anchors invalidation behind the launch, ranks every impulse on an objective 0–10 scale, and layers a live, honest statistics panel that counts stop-outs in full. You tune and judge it on real, current data from your own chart instead of a marketing number.
🚀 Where to use it — the engine is symbol-agnostic and built on universal behavior: displacement and breakouts happen in every liquid market, so it can be applied to FX majors and crosses, metals, indices, and crypto, on intraday timeframes. Pivot length and the ATR-based stop adapt to each instrument's volatility automatically. Because it is a momentum-continuation engine, it shines in trending and expanding-volatility conditions and demands more care in dead, choppy ranges where thrusts stall and reverse — let the dashboard tell you whether the logic suits the pair and timeframe before you commit.
🎯 How to trade it
Apply it to a liquid symbol on an intraday timeframe and let the dashboard populate. Read the live win rate, profit factor, and average R for your symbol and timeframe first — if the logic doesn't suit that market, you'll see it.
Wait for a ⚡ LONG / ⚡ SHORT impulse label and its BUY / SELL arrow — it marks a confirmed close through an ignition candle that broke structure, with the strength, star tier, and full Entry / SL / TP1 / TP2 / TP3 already plotted.
Read the rocket stack and ⚡COIL tag for a fast conviction check — more rockets and a coil launch mean a cleaner, more loaded thrust.
Manage the trade with the plotted levels — the ATR-clamped structural stop defines your risk and TP1/2/3 sit at your chosen R multiples. Bank or trail however suits your style.
Use HTF Trend Alignment, the Signal Cooldown, the Min-Strength floor, and the six ignition requirements to set your tempo — stricter for fewer, cleaner impulses; looser for more activity — and lean on the star tier to focus on the most textbook thrusts.
⚠️ Important — this is a decision-support tool, not a standalone buy/sell system, and it makes no performance guarantees. Default settings were chosen on historical data and behavior will vary by symbol, timeframe, session, and configuration; the dashboard's statistics are historical and descriptive, not a forecast. The trade model resolves stop-first and books partial-target exits honestly, so some trades close for a fraction of a target rather than a full win or loss — these are counted in full, which is honest but means win rate alone is misleading; always weigh it together with average R and profit factor, and resize the R targets to your own risk profile. Signals confirm on the closed bar, so always wait for the labeled impulse on a closed candle. Because the system trades WITH momentum, a false breakout or a sharp reversal can run straight through a stop — combine it with your own analysis and risk management, and test it on your market before trading it live. Indicador

Indicador

Adaptive Momentum Strength Score (AMSS)There is a specific kind of frustration that every serious trader knows.
The setup looks right. The candle closes with conviction. The oscillator confirms. You enter and the move immediately stalls, reverses, or dissolves into noise. Later you realize the volume was weak, volatility never truly expanded, or directional pressure had already started fading before the entry.
That frustration is not a discipline problem. It is an information problem.
Most momentum indicators measure one piece of the puzzle. RSI measures price velocity. Volume indicators measure participation. Bollinger Bands measure volatility state. Each tells part of the story. The Adaptive Momentum Strength Score was built on the conviction that momentum quality can only be evaluated meaningfully when several complementary market forces are read together, not after the fact, but simultaneously, on every bar.
The Core Framework
The purpose of the composite score is straightforward: to answer not just whether price is moving, but whether the move is supported by the conditions that tend to give momentum its staying power.
The score is normalized between 0 and 100 and built from three independent components. The first measures candle impulse relative to ATR not raw candle size, but how decisive the current bar is in the context of what normal looks like for this asset right now. The second measures volume participation by comparing current volume against its moving average, distinguishing genuine momentum expansion from the kind of low-participation drift that precedes failed breakouts far more often than it precedes continuation. The third measures volatility expansion through Bollinger Band width relative to its own average, detecting the transition from compression into expansion as a market begins releasing stored energy.
Each component is independently normalized before combining. By default, volume participation carries the greatest weight of the three — a deliberate choice reflecting the observation that genuine participation tends to be the most reliable differentiator between momentum that follows through and momentum that fades. Candle impulse and volatility expansion carry equal secondary weight, acknowledging that decisive price movement and volatility expansion both contribute meaningfully to momentum quality without either being treated as a primary condition on its own. All weights remain fully adjustable for traders who prefer a different emphasis across different assets or timeframes.
What separates this framework from most traditional oscillators is that momentum strength, directional pressure, market regime, momentum acceleration, and signal confirmation are kept as independent layers that work together while remaining individually interpretable. The goal is not to compress everything into a single binary output but to provide a structured view of how momentum is developing and whether broader conditions are genuinely supportive.
Adaptive Thresholds
A composite score is only as useful as the threshold that determines when it becomes meaningful.
The indicator supports two threshold modes. Fixed mode works cleanly in stable trending environments where volatility expression is consistent. Adaptive mode the recommended default calculates the threshold dynamically using rolling score averages and standard deviation scaling, then clamps it within a defined range. As market character shifts, the threshold recalibrates automatically rather than forcing traders to manually adjust a static level every time volatility conditions change.
The practical consequence is worth understanding directly. In a static-threshold oscillator, a compression phase floods the chart with false crossovers while a genuine expansion phase can produce delayed or missed signals. The adaptive threshold adjusts to both conditions without intervention. The active level is always displayed as the orange reference line, there is never ambiguity about where the signal boundary sits.
The score is additionally classified into Weak, Moderate, and Strong states relative to the active threshold, allowing momentum quality to be evaluated quickly without relying on raw numerical values alone.
Directional Pressure
The score measures momentum magnitude. Direction is handled through a completely separate layer.
Directional bias is established through a two-part confirmation test on every bar. Price must sit on the correct side of a short-period directional EMA, and the average ATR-normalized candle direction over the recent lookback must clear a pressure threshold, meaning a single extended wick or isolated candle cannot flip the directional label on its own. The result is a three-state classification that updates in real time: Bullish, Bearish, or Neutral. This label colors the score line and feeds directly into the signal confirmation logic.
Regime Classification
Not all momentum signals carry equal weight. A score crossover during an expanding market is a categorically different event from the same crossover inside a compressed, coiling environment and treating them identically is one of the more common ways momentum-based approaches produce inconsistent results.
The indicator measures the range of the score over a lookback window and classifies conditions into three states. Compressed means the score has been operating within a narrow band, the market is coiling, energy may be building, and momentum signals in this state generally exhibit lower follow-through and greater variability, although strong expansions can emerge from prolonged compression. Balanced reflects normal trending or ranging conditions. Expanding means the score range has broken above the expansion threshold the market is releasing energy, and momentum signals carry stronger continuation characteristics during this state.
Regime classification can be applied as a filter to triangle signals or used purely as context within the dashboard.
Momentum Velocity
Knowing where the score is tells you the current momentum level. Knowing how fast it is changing tells you something more useful, where momentum is likely heading before price makes it obvious.
The velocity engine calculates the rate of change of the score relative to its own standard deviation, producing a normalized reading that classifies momentum as Accelerating, Decelerating, or Flat. When the score is rising rapidly against its recent volatility baseline, conditions are classified as Accelerating. When the score is fading even if it remains above the threshold the label shifts to Decelerating, and the score line renders at reduced opacity as a visual signal that underlying momentum may be exhausting before price visibly reacts.
For traders who have held into momentum reversals that showed no obvious price-level warning, this layer provides an early internal warning signal within the indicator's architecture that conditions are beginning to shift.
Two Signal Tiers
The indicator produces signals on two distinct levels, and the distinction between them is worth understanding precisely.
Threshold dots appear whenever the score crosses the active threshold while directional pressure is already aligned. They are intentionally sensitive as early directional momentum awareness signals indicating that conditions are beginning to strengthen, even though the broader filter stack may not yet be confirmed. Experienced traders use them to shift attention and begin evaluating whether a fuller setup is developing.
Triangle signals are the fully confirmed output. A triangle only appears when the score crosses the threshold, directional pressure agrees, and every enabled filter in the active gate stack also confirms simultaneously. This is not a smoothed version of the dot signal. It is a categorically different signal type representing the convergence of multiple independent conditions at the same moment.
The separation is deliberate. Dots keep traders informed of developing momentum. Triangles reserve the strongest visual output for the moments that genuinely earn it.
The Signal Gate Stack
Before any triangle reaches the chart it passes through up to four independent gates, stackable in any combination.
The current-timeframe EMA filter blocks signals running counter to local trend structure. The higher-timeframe EMA filter adds a structural second opinion from a broader timeframe, 4-hour by default with an option to use only confirmed closed bars to avoid incomplete higher-timeframe calculations. The regime filter restricts signals during compressed conditions or limits them to expanding phases only. The cooldown gate enforces a minimum bar gap between consecutive signals, suppressing the cluster of repeat triggers that commonly fire around a single momentum event and dilute signal quality.
The dashboard always displays exactly which gates are active. Traders never need to guess why a triangle did or did not appear, the filter logic is visible at all times.
Reading the Indicator: A Practical Workflow
1. Assess market regime first . Check the Info Table before anything else. Compressed conditions mean the score has been coiling in a tight range crossovers here often require greater selectivity, as follow-through tends to be less reliable until expansion begins, and participation should be approached more selectively. Expanding conditions deserve closer attention, as momentum signals generally carry stronger continuation characteristics during these phases.
2. Verify directional alignment. Confirm that the score line color and the Direction label in the dashboard match your intended trade direction. A technically valid score crossover against prevailing directional pressure is a lower-quality setup by design.
3. Watch for the threshold dot on the score pane . A small circle plots on the score line the moment momentum crosses the active threshold while directional pressure is already aligned. This is your early awareness signal. It means conditions are beginning to strengthen, but the broader confirmation stack may not yet be complete. Use it to shift attention to the price chart, not necessarily to trigger execution.
4. Wait for the triangle on the price chart . The triangle is the confirmed execution signal. It only appears when the score has crossed the threshold, directional pressure agrees, and every enabled gate in your active filter stack has confirmed simultaneously. Depending on your settings, this may include EMA alignment, regime validation, and cooldown logic. No triangle means at least one required condition has not been met, regardless of how the score looks in the pane below.
5. Check momentum velocity before entry. An Accelerating label at the point of the triangle adds meaningful weight to the setup. A Decelerating label on an otherwise valid triangle is a caution not necessarily a reason to avoid the trade, but a reminder that momentum quality may be less aggressive, follow-through may develop more gradually, or reversal risk may be beginning to increase.
6. Manage the trade with velocity as context, not as a standalone exit signal . If the score remains above or near the threshold but the line has dimmed signaling Decelerating momentum the move may be losing force even while price continues in the same direction. This does not automatically invalidate the trade or imply immediate exit. Instead, use velocity as an additional layer of context alongside price structure, trend conditions, and your existing risk-management framework.
What This Indicator Is Designed For
The Adaptive Momentum Strength Score is not a standalone trading system and does not attempt to be one. It is a momentum context engine — a structured framework for evaluating whether the conditions behind a price move reflect genuine strength and participation or whether they represent the kind of isolated, low-quality momentum that tends to produce less reliable continuation.
Every design decision in this script traces back to a single conviction: durable edge in trading does not come from reacting faster to a single signal. It comes from reading multiple independent market forces simultaneously and acting only when they converge. That is what this indicator was built to do and that is the only thing it claims to do well.
My Scripts/Indicators/Systems are for educational purposes only! Indicador

Veyra Delta Lens [JOAT]Veyra Delta Lens
Introduction
Veyra Delta Lens estimates delta pressure from OHLCV data and converts it into auction pressure, CVD z-score, participation entropy, absorption, and pressure-shift events.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Signed Volume Pressure
Candle close location and body impact estimate directional volume pressure.
2. CVD Normalization
Cumulative pressure is normalized so current pressure can be compared with recent history.
3. Participation Entropy
Volume concentration and close location distinguish balanced absorption from directional release.
4. Pressure Envelope
An auction mean and delta rails display pressure on the price chart.
delta = signedVolume * 0.65 + impactVolume * 0.35
Features
Estimated signed volume pressure
CVD z-score and impulse scoring
Absorption and divergence context
Auction mean and pressure rails
Sparse VX+ and VX- labels
Input Parameters
Delta smoothing and impulse memory
CVD normalization window
Participation entropy window
Event score and cooldown
Rails, trace, and candle toggles
How to Use This Script
Use VX+ and VX- labels as confirmed pressure shifts. Gold circles show absorption or divergence conditions aligned with the current regime.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
Veyra is original in combining estimated delta, CVD normalization, entropy, auction rails, absorption, and divergence in one restrained overlay.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicador

Structure Probability Blocks [JOAT]Structure Probability Blocks
Introduction
Structure Probability Blocks is an open-source market structure and quality-zone overlay. It detects confirmed structure breaks, searches for the most relevant opposing candle, scores the resulting block, and highlights the strongest active block without filling the chart with redundant zones.
The problem it solves is order block clutter. Many zone tools draw every candidate equally. Structure Probability Blocks filters for impulse, candle quality, relative volume, recency, and overlap so the displayed blocks have cleaner context. The enhanced chart layer also projects BOS/CHoCH break rails, impulse guide lines, and compact score labels directly beside the structure event.
Core Concepts
1. Confirmed Pivot Tracking
Swing highs and lows are confirmed using symmetric pivots. Because pivots require bars on both sides, this is intentionally delayed and non-repainting.
2. Break Qualification
A structure break requires price to close through the tracked pivot and meet a minimum ATR-based impulse requirement.
3. Seed Candle Search
After a break, the script searches backward for the best opposing candle candidate. The score considers body quality, wick behavior, volume rank, and recency.
4. Strongest Active Block Highlight
Among active blocks, the highest-scored block receives stronger border and midline treatment. Weaker overlapping blocks can be removed when the overlap guard is enabled.
5. Break Rails and Impulse Guides
When a qualified BOS or CHoCH forms, the indicator can draw a dashed horizontal break rail from the pivot level to the right edge and a dotted impulse guide from the selected seed candle to the break close. The on-chart tag includes score, zone range, drive, RVOL, and break price.
6. Strongest Block Ribbon
The highest-scored active block is also projected as a subtle ribbon using plot/fill logic. This gives a clean strongest-zone read even when several historical boxes remain visible.
Features
Confirmed structure breaks: Breaks require closed-bar confirmation
Quality-scored blocks: Scores combine impulse, candle structure, relative volume, and recency
BOS/CHoCH context: Block labels identify continuation or character-shift context
BOS/CHoCH break rails: Dashed projected levels mark the exact pivot level that price broke
Impulse guide lines: Dotted guides connect the seed candle to the break close
Expanded score tags: Labels show score, zone range, drive, RVOL, and break level
Prime block highlight: Highest active score receives stronger visual emphasis
Strongest block ribbon: Highest active zone is projected as a lightweight filled band
Overlap guard: Keeps the stronger of overlapping active blocks
Prime candle tint: Candles can be softly colored by the strongest active structure bias
Broken block handling: Keep, fade, extend, or remove resolved blocks
Top-right dashboard: Active count, bull/bear count, best score, break state, last pulse, volume rank, and break mode
Alerts: New bullish and bearish quality block events
Input Parameters
Structure:
Pivot Length: Swing confirmation sensitivity
Search Span: Bars searched for a seed candle
Break Impulse: Minimum ATR expansion required for a break
Volume Span: Lookback used for volume rank
Min Score: Minimum block quality score required
How to Use This Indicator
Step 1: Use the dashboard to identify current bull/bear structural bias.
Step 2: Focus on the strongest highlighted active block first.
Step 3: Use the dashed BOS/CHoCH rail as the exact structural break reference.
Step 4: Treat broken/faded blocks as resolved context rather than fresh opportunities.
Step 5: Combine with a regime or pressure tool before making directional decisions.
Indicator Limitations
Pivot confirmation is delayed by the pivot length, which is intentional non-repainting behavior
A high block score does not imply a guaranteed reaction
Volume rank can be less useful on instruments with unreliable volume
The script identifies structural context, not complete risk-defined trades
Originality Statement
Structure Probability Blocks is original in its quality-scored seed selection, impulse qualification, overlap prioritization, prime block highlighting, and compact structural dashboard. It does not copy third-party source code.
Disclaimer
This open-source indicator is provided for educational and informational purposes only. It is not financial advice. Structural zones can fail, and traders should always use independent analysis and proper risk management.
-Made with passion by jackofalltrades
Indicador

Impulse Correction Balance Map [AGPro Series]Impulse Correction Balance Map
🧠 Core Idea
Is the current correction still healthy compared with the prior impulse, or is the impulse losing structural balance?
📌 Overview / What it does
Impulse Correction Balance Map is a rule-based impulse and correction visualization tool designed to compare the current pullback with the prior directional swing leg.
The script identifies a valid bullish or bearish impulse, measures correction depth, maps the healthy-to-balanced correction pocket, and highlights whether price is still respecting the impulse structure or moving into failure risk.
It does not predict price direction, automate trades, or guarantee continuation after a pullback. It is a structured market-structure and wave-analysis tool for reading impulse strength, correction depth, balance, continuation, and failure context.
🎯 Purpose & Design Philosophy
Many pullback tools mark a retracement or draw generic Fibonacci levels.
This script was built to answer a more practical question:
Is the correction proportionate to the impulse that created it?
The design goal is to help traders evaluate pullbacks as part of a complete impulse-correction relationship instead of treating every retracement as equal.
⚡ Why This Script Is Different
Most tools focus on static retracement levels, generic trend strength, or simple pullback labels.
This script does NOT mark every pullback as a clean opportunity.
Instead, it builds the impulse leg first, measures the correction against that leg, separates healthy correction, balanced pullback, deep correction, continuation, and failure risk, then displays the story through premium chart visuals and a compact AG Pro panel.
⚙️ Methodology
1. Swing Detection
The script uses confirmed swing pivots to identify meaningful bullish or bearish impulse legs.
2. Impulse Validation
An impulse must meet a minimum ATR-normalized size before it becomes the active reference leg.
3. Correction Mapping
After the impulse forms, the script tracks the deepest correction point and calculates retracement depth as a percentage of the impulse.
4. Balance Evaluation
Correction depth is classified into healthy, balanced, deep, continuation, or failure states.
5. Visual Output
The chart displays the impulse box, correction pocket, depth ladder, centered pocket label, right-side tags, event labels, alerts, and a compact AG Pro decision panel.
🗺️ How to Read the Chart
Impulse Box = the prior validated directional swing leg.
Correction Pocket = the projected healthy-to-balanced retracement area.
Depth Ladder = reference rails for shallow, balanced, and deep correction zones.
Centered Pocket Label = the main visual anchor for the active balance pocket and quality score.
Right-Side Tags = current correction depth, balance state, and continuation reference.
Event Labels = key moments such as healthy correction, deep correction, continuation, or correction failure.
Panel = summarizes balance state, impulse direction, correction depth, impulse size, quality score, next context, and timeframe.
🚦 Signals & States
• HEALTHY CORRECTION → correction depth remains shallow relative to the impulse.
• BALANCED PULLBACK → correction is deeper but still inside the normal balance area.
• DEEP CORRECTION → correction is pressing into a riskier retracement zone.
• HIGH FAILURE RISK → correction is beyond the preferred balance area.
• CONTINUATION → price extends beyond the impulse end in the impulse direction.
• CORRECTION FAIL → price invalidates the impulse start area.
• WAIT IMPULSE → no valid impulse reference is active yet.
🔔 Alerts Logic
Alerts trigger when a major impulse-correction state appears.
• Healthy Correction → correction remains inside the healthy retracement area.
• Deep Correction Risk → correction depth moves into the deep-correction risk area.
• Continuation Trigger → price breaks beyond the impulse end in the impulse direction.
• Correction Failure → correction invalidates the impulse start area.
Alerts are attention markers, not trade instructions.
🧩 Confluence Logic
The context becomes stronger when:
• The impulse leg is large enough relative to ATR
• Correction depth remains proportionate
• Price respects the balance pocket
• Continuation appears after a controlled correction
• The panel state agrees with the event label
• Broader trend structure supports the impulse direction
If these elements do not align, the script avoids forcing a continuation interpretation.
📊 When to Use
• Trend continuation analysis
• Pullback evaluation
• Swing structure review
• Crypto, forex, stocks, and index markets
• Wave-style impulse and correction studies
• 1H, 4H, and daily charts
• Markets with clear directional legs and retracement behavior
⚠️ When NOT to Use
• Very low-liquidity symbols
• Extremely choppy markets with no clear swing structure
• News-driven candles where pivots may be distorted
• Ultra-low timeframes with excessive noise
• Markets where every pullback is immediately invalidated by volatility
• Situations where a single retracement should not be treated as a standalone decision
🎛️ Key Inputs
• Swing Pivot Length → controls how swing highs and lows are confirmed.
• Minimum Impulse ATR → defines how large the impulse must be before it becomes active.
• ATR Length → normalizes impulse size, label spacing, and correction context.
• Healthy Correction Max % → defines the upper boundary of the shallow correction zone.
• Balance Correction Max % → defines the upper boundary of the balanced correction zone.
• Deep Correction Max % → defines the deep-correction risk boundary.
• Projection Bars → controls how far correction pockets, rails, and tags project.
• Label Font Size → controls chart label and tag text size.
• Panel Font Size → controls panel text size.
🖥️ Interface & Visual Design
The visual hierarchy is built around the impulse-correction relationship.
The impulse box shows the directional leg.
The correction pocket shows where a controlled retracement can remain balanced.
The depth ladder shows where the correction becomes shallow, balanced, deep, or risky.
The centered badge makes the pocket readable at first glance.
The AG Pro panel summarizes the current state without forcing the user to inspect every level manually.
🧪 Practical Usage Workflow
1. Wait for a valid impulse leg to appear.
2. Check the correction pocket and depth ladder.
3. Read the current balance state in the panel.
4. Watch whether the correction stays healthy, becomes deep, or fails.
5. Look for continuation only after the correction context remains controlled.
6. Interpret the result inside broader trend, liquidity, and volatility context.
🔍 Interpretation Guidelines
A healthy correction does not guarantee continuation. It means the retracement is still proportionate to the prior impulse.
A deep correction does not guarantee reversal. It means the pullback is approaching an area where the original impulse is less structurally clean.
A continuation trigger does not guarantee follow-through. It means price extended beyond the impulse end according to the script's rule set.
A correction failure is a structural warning, not a trading command.
🚫 What This Script Is NOT
This script is not a prediction engine.
It is not financial advice.
It is not an auto-trading system.
It does not provide guaranteed entry or exit signals.
It is not a standard Fibonacci retracement tool.
It is not a full Elliott Wave counter.
⚠️ Limitations & Transparency
Swing detection depends on pivot confirmation, so signals can appear after pivots are confirmed.
Timeframe differences can change impulse and correction structure.
High volatility may cause correction depth to expand quickly.
Low-liquidity markets may produce unreliable swing pivots.
The script is designed for structured interpretation, not certainty.
🧠 Market Context Notes
Impulse-correction behavior is strongest when the market has a clear directional leg, a readable retracement, and enough liquidity for swing structure to matter.
The same correction depth can mean different things in a strong trend, a range, or a volatility shock.
The script should be read together with broader structure, volume, volatility, and market regime.
🧾 Use Case Examples
• If a bullish impulse forms and the correction remains shallow, the map may show healthy correction context.
• If a bearish impulse forms and price retraces deeply against it, the map may show deep correction or failure risk.
• If price breaks beyond the impulse end after a controlled correction, the map may show continuation.
🧱 System Philosophy
Impulse Correction Balance Map is part of the AGPro Series approach to decision-support tools:
clear structure, premium chart readability, honest interpretation, and no promise of certainty.
The goal is to help traders understand the relationship between impulse strength and correction depth without turning analysis into signal spam.
🔐 Non-Promise Statement
No script can know the future.
No correction depth guarantees continuation or reversal.
No signal should be interpreted without broader market context.
📉 Risk Disclosure
Trading involves risk.
Markets can move unpredictably.
This script is for educational and analytical purposes only.
It does not provide financial advice or guaranteed trading outcomes.
Users remain responsible for their own decisions.
📚 Educational Note
Use this script to study how impulses and corrections relate to each other.
The value is not only in the label. The value is in learning whether a pullback is proportionate, stretched, balanced, or structurally weak compared with the impulse that came before it.
Indicador

Bastion Ledger [JOAT]Bastion Ledger
Introduction
Bastion Ledger is an open-source liquidity and structure overlay designed to track active demand and supply zones through a full lifecycle model. The script builds zones from confirmed pivots and volume impulse events, then tracks how price interacts with those zones over time through active, swept, broken, retested, and archived states.
The problem Bastion Ledger solves is zone ambiguity. Many support and resistance tools simply draw a level and leave interpretation to the user. Bastion Ledger adds structure to that process by classifying how each zone was created and what has happened to it since. This makes the chart easier to read and gives the user a cleaner framework for identifying whether liquidity has held, been swept, failed, or transitioned into a retest state.
Core Concepts
1. Confirmed Pivot Structure
Zones created from pivots only appear after pivot confirmation. This introduces natural delay by design, but it prevents the script from creating forward-looking structure that disappears later.
2. Volume-Impulse Zone Creation
The script can also create zones from candles that exhibit high relative volume and efficient directional body behavior. This allows the overlay to capture not only swing structure but also displacement-origin areas.
3. Zone Lifecycle Model
Each zone progresses through a clear state model:
ACTIVE
SWEEPED
BROKEN
RETESTED
ARCHIVED
This is one of the defining features of the script. Instead of leaving historical rectangles behind with no context, the overlay tracks what has happened to each one.
4. Midpoint and Structure Rails
Every zone can include a midpoint reference and supporting structure rails to make reaction areas easier to inspect. This helps distinguish edge reactions from deeper zone acceptance.
5. Dashboard Context
The top-right dashboard summarizes active counts, nearest demand and supply distance, event state, and structure bias so the user can quickly orient themselves.
Features
Dual-source zone creation: Confirmed pivots and volume impulse zones
Stateful zone lifecycle: Tracks sweeps, breaks, retests, and archival
ATR-aware zone sizing: Zone height adapts to market conditions
Object-efficient rendering: Uses persistent objects with setter updates
Midpoint lines: Helps judge reaction depth inside each zone
Structure bias readout: Gives a quick demand-versus-supply view
Nearest-zone distance readout: Useful for contextual planning
Top-right dashboard: Medium-size summary panel
Confirmed-bar event logic: Creation and transitions are handled safely
Alertconditions: Zone create, sweep, break, retest, and structure breaks
How to Use This Indicator
Step 1: Identify the Nearest Active Zone
Use the plotted boxes and dashboard distance readouts to locate the nearest demand and supply area.
Step 2: Read the Zone State
An active zone is different from a swept or broken zone. The lifecycle state tells you whether the zone is still intact or has already lost integrity.
Step 3: Watch Retests After Breaks
Retested zones can be especially useful because they represent a transition from defended liquidity to broken structure and then a recheck of that failure.
Step 4: Combine with Regime Context
Bastion Ledger works best when combined with a separate trend or regime filter. Use it to map where reactions matter, not to replace directional context.
Indicator Limitations
Pivot-based zones confirm after the pivot completes, which is intentional non-repainting behavior
Very fast markets can move through multiple zone states in a short number of bars
Zone relevance declines over time, so older archived zones should not be treated like fresh liquidity
This script tracks structural interaction, not order flow or real exchange-level liquidity
Originality Statement
Bastion Ledger is original in its combination of pivot structure, volume-impulse zone creation, and lifecycle classification. The script is not just a rectangle drawer. Its core value lies in tracking how a zone evolves after creation and presenting that evolution in a consistent institutional overlay.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Liquidity zones are interpretive tools based on historical price and volume behavior and do not guarantee future reactions.
- Made with passion by jackofalltrades
Indicador

Pymander's EZ Breakout FinderThe Momentum Breakout Highlighter is a versatile price-action tool designed to identify high-conviction breakout candles. Unlike standard breakout indicators that trigger on any breach of a high or low, this script uses a multi-layered filtering system to ensure that signals represent genuine market commitment rather than "noise" or low-volume fakeouts.
How It Works
The script monitors a user-defined lookback period to establish local resistance (highs) and support (lows). A signal is generated only when three distinct conditions are met:
The Breakout: Price must breach the highest high or lowest low of the lookback period. Users can choose whether this requires a Wick breach or a full Close beyond the level.
The Momentum Filter: The candle’s body size (Open to Close) is compared against the average body size of the lookback period. A signal only triggers if the candle shows "effort"—meaning its body is significantly larger than the recent average.
The Trend Context: Signals are filtered via a Volume Weighted Moving Average (VWMA). By default, it follows the trend (Longs above VWMA, Shorts below), but it also includes a Mean Reversion Mode for contrarian traders.
Key Features
Momentum Verification: Uses an adjustable multiplier to ensure breakout candles have the necessary "thrust" to sustain a move.
Mean Reversion Mode: A unique toggle that flips the trend logic, allowing you to find high-momentum exhaustion moves back toward the VWMA.
Advanced Signal Management:
Cooldown Timer: Prevents "signal clustering" by requiring a set number of bars to pass before a new signal can trigger.
Opposite Direction Filter: An optional mode that forces signals to alternate between Bullish and Bearish, perfect for swing traders looking for "one-way" entries.
Visual Clarity: Features bar highlighting, triangular plotshapes (arrows), and optional reference lines for the previous high/low levels.
What Makes It Stand Out?
Most breakout indicators fail during choppy markets because they lack a volatility component. This script solves that by integrating Body-to-Average momentum logic. By requiring the "breakout" candle to be larger than its predecessors, it filters out "exhaustion wicks" and low-liquidity drifts.
Furthermore, the inclusion of VWMA Trend Bias ensures you are always trading with volume-weighted support, and the Cooldown/Directional filters make it an excellent tool for automating alerts without being overwhelmed by repetitive signals during high-volatility spikes.
How to Use
For Trend Following: Use the default settings to catch high-momentum entries in the direction of the trend.
For Mean Reversion: Enable "Mean Reversion Mode" to catch "Blow-off tops" or "Panic bottoms" that break local ranges against the primary trend.
For Scalping: Lower the lookback period and cooldown for faster signals on lower timeframes.
Good luck and enjoy!
Indicador

Obsidian Divergence Ledger [JOAT]Obsidian Divergence Ledger
Introduction
Obsidian Divergence Ledger is an open-source divergence engine built around confirmed pivot logic and a composite oscillator. It tracks regular and hidden divergence, draws ledger lines between the relevant pivot points, and can optionally project those same relationships onto price. The design is meant to make divergence readable as a structured event instead of a vague visual impression.
The problem this script solves is that many divergence tools are either too loose or too noisy. They often compare incompatible pivots, ignore volatility context, or signal before the pivot is confirmed. Obsidian avoids that by waiting for confirmed pivot structures, enforcing minimum spread requirements, and optionally filtering signals through baseline context and volatility expansion.
Core Concepts
1. Composite Oscillator Construction
The script does not depend on one oscillator only. It blends RSI, CMO, and ROC into one composite measure, then normalizes and smooths it. This helps reduce the chance that one indicator-specific quirk dominates the entire divergence decision.
2. Pivot-Confirmed Divergence Logic
Divergence is only evaluated after `ta.pivothigh()` and `ta.pivotlow()` confirm the turning points. That means the signal appears later than an unconfirmed visual guess, but it also means the structure is stable and suitable for non-repainting use.
pricePivotHigh = ta.pivothigh(high, leftBars, rightBars)
pricePivotLow = ta.pivotlow(low, leftBars, rightBars)
3. Regular and Hidden Divergence
The script distinguishes between reversal-type divergence and continuation-type divergence:
Regular bullish: price makes a lower low while the oscillator makes a higher low
Regular bearish: price makes a higher high while the oscillator makes a lower high
Hidden bullish: price makes a higher low while the oscillator makes a lower low
Hidden bearish: price makes a lower high while the oscillator makes a higher high
4. Ledger Line Visualization and Divergence Zoning
Each confirmed event is recorded visually with lines on the oscillator pane. When enabled, price-side lines are also drawn on the main chart using `force_overlay = true`. Regular divergence and hidden divergence use different color families and line styles so reversal and continuation structures are easy to distinguish. Fresh divergence events can also paint oscillator-side pivot zones and price-side context boxes so the compared structure is visible as an area, not just a single line.
5. Context, Freshness, and Impulse Framing
The script tracks whether a divergence is still fresh, whether it aligns with baseline context, and whether current volatility supports the signal. A central impulse ribbon and intensity band expand and contract with current state strength so the pane itself carries more information even when the dashboard is kept compact.
Features
Composite oscillator: RSI, CMO, and ROC blended into one smoother divergence source
Confirmed pivots only: No divergence state is confirmed before pivot confirmation
Regular and hidden divergence: Reversal and continuation structures handled separately
Optional volatility filter: Can require expansion before accepting signals
Optional baseline filter: Can require directional context relative to a baseline
Oscillator and price ledger lines: Divergence is drawn in both the pane and the price chart when enabled
Oscillator pivot zones: Fresh divergence events can stamp colored zones around the compared oscillator pivots
Price context boxes: The related price swing area can be boxed directly on the chart for faster structural reading
On-chart divergence tags: Compact labels identify regular-vs-hidden bullish and bearish events on the chart itself
Impulse ribbon and intensity band: The pane carries fresh-state emphasis through layered fills, not only through text
Compact dashboard summary: State, freshness, oscillator bias, and context remain available in a smaller top-right panel
Input Parameters
Composite Oscillator:
RSI Length
CMO Length
ROC Length
Normalization Window
Oscillator Smoothing
Divergence Engine:
Pivot Left Bars and Pivot Right Bars
Hidden Divergence toggle
Maximum Ledger Lines
Quality Filters:
Volatility Expansion toggle and length
Baseline Context toggle and baseline length
Minimum Oscillator Pivot Spread
How to Use This Indicator
Step 1: Wait for a Confirmed State
Use the dashboard's State and Freshness rows first. The script is designed to treat confirmed divergence as the event, not the early suspicion of divergence.
Step 2: Separate Reversal From Continuation
Regular divergence is generally more useful when looking for exhaustion. Hidden divergence is generally more useful when looking for pullback continuation. The script keeps those two ideas separate on purpose.
Step 3: Read Context Before Weighting the Signal
A bullish divergence below a weak baseline can still fail. A bearish divergence into expanding volatility can still continue. Use the Context and Volatility rows before deciding how much weight to give the latest signal.
Step 4: Use the Zones, Not Only the Lines
The oscillator pivot zones and price context boxes are there to show the compared structure as an area. This is useful when a divergence is technically valid but forms in a narrow or low-importance pocket. A wider, cleaner zone often carries more practical significance than a tiny local pivot mismatch.
Step 5: Use the Price Overlay Lines as Reference
The overlay lines show the exact price pivots involved in the latest comparison. The companion price labels and boxes make it easier to judge whether the divergence formed in an important location or in minor local noise.
Indicator Limitations
Pivot confirmation creates intentional delay because the script waits for bars on the right side of each pivot
Divergence can persist through multiple additional swings before price meaningfully reverses
A composite oscillator reduces single-indicator bias but cannot eliminate false positives
Hidden divergence is context-dependent and is less useful if the broader trend is weak or unclear
Fresh divergence boxes and labels describe the compared structure, but they do not guarantee that the marked zone will react again
Originality Statement
Obsidian Divergence Ledger is original in the way it structures divergence as a confirmed ledger of relationships rather than a simple shape marker. The script combines a custom composite oscillator, explicit regular-vs-hidden separation, freshness tracking, context filters, synchronized pane-plus-price ledger lines, oscillator pivot zoning, and price-context divergence boxes into one coherent tool.
Disclaimer
This script is provided for educational and informational purposes only. It is not financial advice. Divergence is a contextual condition, not a guarantee of reversal or continuation. False signals can occur frequently, especially in strong trends and low-liquidity markets. Use independent confirmation and risk management.
Indicador

Impulse Regime Engine [JOAT]Impulse Regime Engine
Introduction
Impulse Regime Engine is a hybrid breakout-and-trend indicator designed to detect when participation expands, when that expansion compresses into a tradeable box, and when price finally resolves that box with directional intent. It combines a volume regime engine with an RSI-projected price trend framework, creating a clean overlay built for timing impulsive releases without sacrificing directional context.
This indicator is especially useful for traders who like breakout structures but do not want to trade every range break blindly. The regime box defines the event. The projected trend framework defines the context.
Why This Indicator Exists
Participation Regime Classification: Distinguishes low-quality price movement from meaningful volume expansion
Lifecycle-Based Box Engine: Separates the setup into building, armed, and resolved states
Projected Trend Overlay: Maps RSI into price space for contextual trend direction
Strength-Based Candle Coloring: Visualizes conviction without overloading the chart
Active Risk Map: Adds optional stop and target staging after valid breaks
Core Components Explained
1. Volume Regime Engine
volRatio = shortVolMA / longVolMA
Volume is classified into Low, Normal, High, and Extreme states by comparing short-term participation to a longer-term baseline. Only elevated regimes are allowed to build a valid impulse box.
2. Regime Box Lifecycle
Building: While elevated volume persists, the box expands to contain the active burst
Armed: Once the burst cools, the box freezes and waits for release
Resolved: A confirmed close beyond the boundary triggers the breakout event and resets the cycle
The script now includes a cooldown between resolved boxes so repeated high-volume churn does not keep repainting fresh structures on every minor burst.
3. RSI Projection Framework
projected = priceLow + smoothedRsi * priceRange / 100.0
avgLine = ta.ema(projected, smoothLen)
Instead of reading RSI only as a sub-pane oscillator, the script converts RSI into projected price space. This produces a trend reference line directly on the chart.
4. Dynamic Tolerance Bands
tolerance = avgBody * toleranceMultiplier
marginUp = avgLine + tolerance
marginDn = avgLine - tolerance
Price above the upper band confirms bullish projected trend. Price below the lower band confirms bearish projected trend. This acts like a directional bias filter around the projection basis.
5. Breakout Risk Framework
When price resolves the armed box, the script can draw one stop and three profit levels using either ATR-derived or percentage-derived distance. The lines auto-expire so old trade maps do not crowd the chart.
Visual Elements
Regime Box: Semi-transparent box during build and armed phases
Projection Basis: Gold-accent projected trend line
Tolerance Bands: Bull and bear projection boundaries
Gradient Candles: Optional candle coloring by directional strength
Breakout Markers: Compact IRE triangles on confirmed release
TP/SL Lines: Optional risk staging while the active breakout remains valid
Dashboard: Volume regime, ratio, bias, box state, signal state, RSI, and strength
Input Parameters
Regime Engine:
Short / Long Volume MA
Low / Normal / High thresholds
Max build bars
Max armed bars
New box cooldown bars
Trend Projection:
RSI length and smoothing
Projection range bars
Projection EMA
Tolerance multiplier
Strength lookback
Risk Framework:
ATR period
ATR stop multiplier
TP1 / TP2 / TP3 risk-reward ratios
TP/SL maximum life
How to Use This Indicator
Step 1: Wait for elevated participation to build the impulse box.
Step 2: Let the box transition into the armed state.
Step 3: Read whether projected trend bias agrees with the likely breakout direction.
Step 4: Use confirmed breaks, not intrabar pokes, as the actual event trigger.
Step 5: Manage the trade against the active risk map or your own execution rules.
Best Practices
Use on instruments with reliable participation data
Prefer breakouts aligned with the projected trend state
Treat extreme volume bursts as high-opportunity but also high-volatility events
Use the cooldown to avoid overreacting in noisy compression cycles
Disable extra visuals if you want a cleaner execution chart
Indicator Limitations
Volume regime logic depends on the quality of the feed
Not every armed box will produce a sustained move
Projected RSI trend is a contextual guide, not a guarantee
Breakouts can fail or reverse quickly in low liquidity
Repeated tests of the same area reduce signal quality
Technical Implementation
Built in Pine Script v6 using:
Short-vs-long volume regime classification
Stateful box lifecycle logic
RSI-to-price projection
Body-based tolerance bands
Strength-gradient candle coloring
Optional ATR or percent risk mapping
Confirmed-bar breakout and trend-shift alerts
Originality Statement
This indicator is original in the way it combines regime participation, lifecycle breakout structure, and projected momentum context into one overlay. Its edge is not just detecting expansion, but framing when expansion is worth respecting.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Breakout trading involves risk, including false breaks and fast reversals. Always manage risk carefully and confirm signals with your own process.
-Made with passion by officialjackofalltrades
Indicador

Impulse Follow-Through Quality [AGPro Series]Impulse Follow-Through Quality
🧠 Core Idea
Did the impulse receive enough follow-through to remain valid?
📌 Overview / What it does
Impulse Follow-Through Quality is a chart-first momentum expansion planner built to evaluate what happens after a strong impulse candle appears.
Instead of treating every strong candle as a standalone signal, the script starts a follow-through review window and measures whether price extends, pauses constructively, pulls back too deeply, reaches a target-room guide, or crosses a failure rail. These elements are converted into a 0-100 Impulse Quality score and a clear next-action state.
The script produces an impulse highlight, follow-through box, failure rail, measured target guide, compact labels, alerts, and a clean AGPro planning panel. It does not predict continuation, automate trades, or guarantee that momentum will continue.
🎯 Purpose & Design Philosophy
This script was built for traders who want to separate a meaningful impulse from a candle that only looks strong for one bar.
Many momentum tools focus on the impulse itself. The practical question often comes after that candle: does the move attract follow-through, or does it begin to fail? This planner fills that gap by turning the post-impulse phase into a readable decision process.
The design supports a patient review mindset: identify the impulse, watch the follow-through window, evaluate pullback depth, check target room, and review the failure rail before reacting.
⚡ Why This Script Is Different
Most tools focus on strong candles, volume spikes, momentum bursts, or basic continuation labels.
This script does NOT act as a Volume Climax Detector, does NOT rebuild an Institutional Candle Detector, and does NOT reduce the chart to a simple buy/sell momentum signal.
Instead, it evaluates what happens after the impulse. The key output is not the candle itself. The key output is the follow-through quality state: IMPULSE, WAIT FT, FT WATCH, VALID FT, PULLBACK RISK, WEAK FT, FAILED, or TARGET REVIEW.
⚙️ Methodology
1. Context Detection
The script detects qualified bullish or bearish impulse candles using ATR-normalized range, body efficiency, close location, trend context, and participation.
2. Reference Mapping
Once an impulse qualifies, the script maps the impulse origin, follow-through box, failure rail, and target-room guide.
3. Reaction Evaluation
The model evaluates follow-through progress, closes beyond the impulse close, retracement depth, participation support, target room, and whether price crosses the failure rail.
4. Visual Output
The result is displayed through an impulse highlight, centered follow-through box label, failure rail, target guide, compact labels, deterministic alerts, and a premium AGPro panel.
🗺️ How to Read the Chart
Impulse Highlight = the latest qualified impulse leg that starts the review window.
Follow-Through Box = the active planning area between the impulse close and the measured target-room guide. Its label is centered inside the box.
Failure Rail = the practical invalidation reference behind the impulse. It is an analytical line, not a stop order.
Target Guide = a measured target-room reference based on the impulse range.
Labels = compact state markers for impulse start, constructive follow-through, weak follow-through, pullback risk, failure rail review, and target review.
Colors = teal supports constructive long-side follow-through, pink supports short-side or failure context, amber marks review risk, and indigo marks watch states.
Panel = summarizes Impulse Quality, Follow-Through, Pullback Risk, Target Room, and Action.
🚦 Signals & States
• IMPULSE → a qualified impulse candle has started a review window.
• WAIT FT → the impulse exists, but follow-through is not confirmed yet.
• FT WATCH → follow-through conditions are improving but not strong enough for the highest state.
• VALID FT → follow-through quality is constructive according to the rule set.
• PULLBACK RISK → retracement depth is elevated inside the impulse range.
• WEAK FT → the follow-through window is aging without enough progress.
• FAILED → price crossed the failure rail behind the impulse.
• TARGET REVIEW → price reached the measured target-room guide and context should be reviewed.
🔔 Alerts Logic
Alerts can trigger when a new impulse starts, follow-through becomes constructive, follow-through enters watch state, the move weakens, pullback risk rises, price crosses the failure rail, or price reaches the target-room guide.
Each alert is an attention marker. Alerts are not trade instructions, entry commands, exit commands, or automated strategy rules.
🧩 Confluence Logic
The strongest context appears when a clean impulse candle is followed by measurable progress, multiple closes beyond the impulse close, controlled retracement depth, supportive participation, and readable target room.
When these components weaken, the planner can shift toward WAIT FT, FT WATCH, PULLBACK RISK, WEAK FT, or FAILED.
📊 When to Use
• After strong momentum candles where continuation quality matters.
• During trend continuation attempts that need follow-through review.
• After breakout or expansion bars where a one-bar move may be misleading.
• On liquid symbols where ATR, candle structure, and volume behavior are readable.
• When you want a post-impulse planning map instead of another raw momentum signal.
⚠️ When NOT to Use
• Very low-liquidity symbols with unstable candles or unreliable volume.
• Extremely noisy micro-timeframes where impulse candles appear too frequently.
• News-driven spikes where one-bar expansion can distort the model.
• Markets with large gaps that make ATR and failure-rail references less useful.
• Situations where the user expects guaranteed continuation or automated trade signals.
🎛️ Key Inputs
• Follow-Through Side → controls Auto, Long Follow-Through, or Short Follow-Through mode.
• Minimum Impulse ATR → changes how large a candle must be before review begins.
• Minimum Body Efficiency → controls how clean the impulse body must be.
• Minimum Edge Close → controls how near the candle must close to its directional edge.
• Follow-Through Window → controls how many bars are used to judge early continuation.
• Required Progress ATR → defines preferred movement after the impulse close.
• Maximum Pullback Ratio → controls when retracement depth becomes elevated risk.
• Failure Rail Buffer ATR → adjusts the analytical failure rail behind the impulse.
• Visual settings → control the impulse highlight, follow-through box, failure rail, target guide, labels, panel visibility, panel location, theme, and font sizes.
🖥️ Interface & Visual Design
The interface is designed to stay chart-first.
The impulse highlight gives the origin. The follow-through box gives the active planning area. The failure rail and target guide define the practical review frame.
The AGPro panel provides a compact decision summary with a merged blue title row, adjustable panel location, adjustable theme, and adjustable font size.
🧪 Practical Usage Workflow
1. Read the panel Impulse Quality score and Action.
2. Check the impulse highlight and the direction of the follow-through box.
3. Review whether price is extending beyond the impulse close.
4. Compare pullback depth with the failure rail.
5. Use the target guide as a context-review reference, not as a guarantee.
6. Treat alerts as attention markers inside broader analysis.
🔍 Interpretation Guidelines
Think in terms of follow-through quality, not prediction.
A higher score means the impulse has more constructive continuation characteristics according to the script's rule set. A weaker score means the move may be aging, retracing too deeply, lacking progress, or crossing its failure reference.
VALID FT does not mean price must continue. FAILED does not mean the market cannot recover later. The states organize the review process.
🚫 What This Script Is NOT
• Not a prediction engine.
• Not financial advice.
• Not an auto-trading system.
• Not a guaranteed signal tool.
• Not a buy/sell signal service.
• Not a Volume Climax Detector.
• Not an Institutional Candle Detector.
• Not a generic momentum oscillator.
⚠️ Limitations & Transparency
The script is rule-based and depends on recent price action, ATR, candle structure, selected inputs, and volume behavior.
Different timeframes can produce different impulse and follow-through readings. Volatility spikes can temporarily distort the score. Symbols with unreliable volume may produce weaker participation readings.
Outputs should always be interpreted with broader market structure, liquidity, and trader-defined risk controls.
🧠 Market Context Notes
Impulse candles are only useful when the market confirms or rejects them through follow-through.
A clean impulse that receives controlled extension may deserve more attention than a larger candle that immediately retraces. A smaller impulse can also become meaningful when the follow-through window stays organized.
🧾 Use Case Examples
When price prints a strong bullish impulse, closes near the high, then follows through with multiple closes above the impulse close while pullback depth remains controlled, the planner may classify the move as VALID FT.
When an impulse appears but price fails to extend, retraces deeply, or crosses the failure rail, the planner may shift toward WEAK FT, PULLBACK RISK, or FAILED.
🧱 System Philosophy
AGPro planning tools are designed to help traders evaluate context before reacting.
This script follows that philosophy by turning impulse follow-through into a structured planning question: did the move receive enough confirmation, progress, and risk clarity to remain worth reviewing?
🔐 Non-Promise Statement
No indicator can guarantee continuation, reversal, breakout success, or outcome.
This tool provides structured visual context and rule-based attention markers. It does not provide certainty.
📉 Risk Disclosure
Trading involves risk.
Market conditions can change quickly, and no script can remove uncertainty.
Users are responsible for their own analysis, risk management, position sizing, and trading decisions.
This script is for educational and analytical use only and does not provide financial advice.
📚 Educational Note
Use the planner to study how strong candles behave after they appear, how follow-through quality changes across timeframes, and how pullback depth affects the readability of momentum continuation.
Indicador

Measured Move Projection Zones [AGPro Series]Measured Move Projection Zones
🔹 OVERVIEW
Measured Move Projection Zones is a premium price-action visualization tool built around one clear sequence: impulse, base, projection, and invalidation.
The script detects a qualified impulse leg, waits for a compact base range, then projects a measured-move target band from the base boundary. It also displays invalidation context, event labels, and a compact AGPro panel so the structure can be reviewed quickly on the chart.
The default profile is tuned for 1-hour charts, where measured-move structures need enough responsiveness to appear consistently while still avoiding low-quality micro-swings. The result is a clean projection map for traders who want structured continuation context without turning the chart into a dense extension grid.
This script is not designed to promise outcomes or mark every possible target. It is designed to make the measured-move workflow easier to see, compare, and audit.
🔹 WHAT MAKES IT DIFFERENT
Most projection tools start from a manual anchor, a generic extension grid, or a simple breakout distance. Measured Move Projection Zones is more selective.
It requires a directional impulse first. It then waits for a compact base. Only after the base qualifies does it create the projected target band and invalidation framework.
That sequence matters because it prevents the chart from becoming a collection of random forward boxes. The visual logic is always tied to a specific price-action chain:
Impulse leg -> base range -> projection band -> invalidation context.
The script also avoids the look of a traditional support/resistance map. The rectangles are not generic zones. They represent measured-move components: impulse body, base range, projected target band, and invalidation reference.
For public TradingView presentation, the script is deliberately visual but controlled: moderated labels, visible structure boxes, no expired-label flood, and a compact panel that summarizes the current state.
🧭 WHY THIS DOES NOT OVERLAP WITH OTHER AGPRO TOOLS
This script stays in a narrow measured-move projection lane.
It does not overlap with ATR compression or volatility-map scripts because the core logic is not volatility contraction, expansion, or envelope behavior. ATR is only used for normalization, tolerance, and spacing.
It does not overlap with breakout-quality tools because it does not score a breakout event as the main product. Breakout beyond the base boundary only changes the measured-move state from armed to active.
It does not overlap with premium/discount or valuation-zone tools because it does not map equilibrium, discount, OTE, rebalance pockets, or fair value areas. Its target band is derived from an impulse leg and base boundary, not a valuation model.
It does not overlap with wedge, reversal, or pattern-scanner tools because it does not require converging rails, neckline behavior, double tops, double bottoms, head-and-shoulders logic, or multi-pattern classification.
It does not overlap with liquidity heatmap, bias dashboard, or volume-profile tools because it does not estimate liquidity fields, higher-timeframe directional bias, POC gravity, acceptance ladders, or volume shelves.
The differentiator is simple and specific: this is an impulse-base measured-move projection visualizer with target-band and invalidation context.
⚙️ METHODOLOGY
The methodology is built in stages:
1. Swing Confirmation
The script uses pivot confirmation to identify meaningful swing points. The default pivot setting is tuned for 1-hour chart rhythm.
2. Impulse Qualification
After a valid pivot sequence appears, the script measures the leg size in ATR units. The impulse must be large enough and must form within a reasonable bar window.
3. Base Validation
Once the impulse is confirmed, the script waits for a compact base range. The base must stay within a defined ATR height and avoid excessive retracement from the impulse end.
4. Projection Construction
When the base qualifies, the script projects a measured-move target band from the base boundary. The default multiplier is 1.00, representing a classic equal measured move.
5. Invalidation Context
The opposite side of the base receives an ATR-buffered invalidation guide. This does not create a trade command; it simply marks where the measured-move structure is no longer clean.
6. State Tracking
The setup moves through clear states: Waiting, Building Base, Armed, Projecting, Target Band, Invalidated, and Expired.
7. Visual Management
The script keeps a moderated amount of historical structure visible. Event labels are capped, expired labels are disabled by default, and the projection guide line is optional to keep the chart clean.
📊 PANEL
The AGPro panel is designed for quick structure review.
Panel rows include:
- State
- Direction
- Impulse Quality
- Projection Progress
- Target Distance
- Target Band
- Base Range
- Invalidation
The first panel row follows the AGPro public-release standard: one merged blue header row containing only the panel title.
Panel location is adjustable. Panel theme is adjustable. Panel font size is adjustable. The default size is Normal for a clean public-chart look.
🎛️ KEY INPUTS
1H Pivot Confirmation Length
Controls the swing confirmation used to anchor impulse legs. Lower values are more responsive. Higher values are more selective.
1H Minimum Impulse Size
Defines the minimum impulse strength in ATR units. The default is tuned to keep 1-hour charts active without accepting very small swings.
1H Base Range Bars
Controls how many bars are used to validate the post-impulse base. The default is shorter for hourly chart pacing.
1H Maximum Base Height
Limits how tall the base can be in ATR terms. This prevents wide ranges from being treated as clean measured-move bases.
1H Maximum Base Retracement
Controls how deeply price can retrace from the impulse end while still qualifying as a measured-move structure.
Measured Move Multiplier
Controls the projection distance. The default value of 1.00 represents an equal measured move.
1H Target Band Width
Controls the ATR-based visual tolerance around the projected target.
Invalidation Buffer
Places the invalidation guide beyond the opposite side of the base range.
1H Projection Bars
Controls how far the projected target band and base extension reach forward.
1H Projection Expiration
Controls how long an armed or active projection can remain open before it expires.
1H Event Label Retention
Controls whether the chart keeps a moderated history of event labels or only the latest event label.
1H Balanced Event Labels
Caps event labels so the chart remains informative but not overloaded.
Show Projection Guide Line
Optional dotted guide from the base boundary to the target band. Disabled by default on 1-hour charts to reduce diagonal clutter.
🔍 HOW TO READ IT
Waiting
No valid impulse-base sequence is active.
Building Base
An impulse has been detected and the script is watching for a compact base.
Armed
A valid base has formed. The projection framework is ready, and the target band is mapped forward.
Projecting
Price has moved beyond the base boundary and the measured-move structure is active.
Target Band
Price has interacted with the projected target band.
Invalidated
Price has closed beyond the invalidation guide, meaning the measured-move framework is no longer clean.
Expired
The projection did not complete within the selected expiration window.
Event labels provide a fast visual timeline. The boxes show where the measured structure came from, where the base formed, and where the projected band sits.
🧩 BEST USE CASES
This script is best used on 1-hour charts where traders want a clean view of impulse-base-continuation behavior.
Strong use cases include:
- Measuring continuation structures after a directional leg
- Comparing active projections against nearby price action
- Reviewing whether a base is compact enough to support a projection
- Mapping projected target zones without using a full extension grid
- Studying failed measured moves through invalidation labels and zones
- Creating cleaner screenshots for price-action review
The script can also be used on other timeframes, but the default settings were intentionally tuned around 1-hour structure density and visual balance.
🧠 VISUAL DESIGN PHILOSOPHY
The visual design is built around premium restraint.
The chart should not look empty, but it also should not look like every candle is receiving a signal. Measured Move Projection Zones keeps the main structural elements visible:
- Impulse boxes
- Base range boxes
- Projected target bands
- Invalidation zones or guides
- Moderated event labels
- Compact AGPro panel
Expired labels are disabled by default because they can quickly become noisy on hourly charts. Event labels are still preserved in a moderated amount so the chart has enough visual context.
The optional projection guide line is disabled by default because long diagonal lines can dominate a 1-hour screenshot. Users can enable it when they want a more explicit projection path.
The goal is a chart that looks structured, premium, and publication-ready while still being easy to read.
🔔 ALERTS
The script includes alert conditions for the core lifecycle events:
- Measured Move Armed
- Projection Active
- Target Band Interaction
- Projection Invalidated
- Projection Expired
These alerts are designed around structure states, not trade commands. They help users monitor when a measured-move framework forms, activates, interacts with the projected band, invalidates, or expires.
🔹 LIMITATIONS AND TRANSPARENCY
Measured Move Projection Zones is a structural visualization tool. It does not predict future price and does not claim that a projected target band will be reached.
Pivot-based swing logic confirms structure after the necessary bars have formed. This creates cleaner anchors, but it also means the script is not trying to label every move in real time before confirmation.
The target band is a measured projection derived from the impulse and base, not a certainty zone. Invalidation and expiration states are part of the design because failed measured moves are also useful information.
Settings matter. More aggressive inputs will create more structures. More conservative inputs will create fewer, cleaner structures.
✅ IDEAL USER
This script is ideal for traders who:
- Use 1-hour charts for price-action review
- Study impulse-base-continuation behavior
- Want measured-move target zones without a cluttered extension grid
- Prefer visual structure over heavy signal text
- Want a clean AGPro-style panel for quick state review
- Care about invalidation and failed projection context
- Need a public-chart-friendly tool that looks polished, focused, and easy to understand
Measured Move Projection Zones is built for users who want a disciplined projection framework on the chart: enough structure to be useful, enough restraint to stay premium. Indicador

Impulse Structure Zones [JOAT]Impulse Structure Zones
Introduction
Impulse Structure Zones (ISZ) is an open-source, institutional-grade zone engine that detects statistically significant price impulses using a Z-Score methodology, identifies the origin candle of each impulse as an order block, and grades each zone using a multi-factor wick rejection scoring system. Bullish and bearish zones are tracked in parallel arrays with full lifecycle management — creation, extension, mitigation detection, and rejection confirmation — all rendered as clean, non-repainting boxes on the chart with a mid-line bisecting each zone.
The core problem ISZ solves is the manual process of locating high-probability order block zones on a chart. Institutional price delivery frequently originates from specific candles where large orders were placed — the last opposing candle before a strong directional move. ISZ automates the detection of those moves, marks the origin candles, and then monitors each zone to fire a graded rejection signal when price returns to test the level. Grades A, B, and C communicate signal quality based on wick dominance, proportional wick depth, volume confirmation, and candle size relative to ATR.
Core Concepts
1. Z-Score Impulse Detection
Price change is measured bar-by-bar as a percentage move and normalized into a Z-Score against a rolling mean and standard deviation window:
float pxChg = (close - close ) / close * 100.0
float zscore = (pxChg - avgChg) / math.max(stdChg, 0.0001)
A bar qualifies as an impulse when the absolute Z-Score exceeds the user-defined threshold (default: 1.5). This isolates moves that are statistically unusual relative to recent activity — the same principle used in quantitative strategies to filter meaningful displacement from noise. All signals are gated on barstate.isconfirmed to prevent repainting.
2. Order Block Identification
When a bullish impulse is confirmed, ISZ scans back through recent bars to locate the last bearish candle (close < open) before the move. That candle's high and low become the order block zone boundaries. For bearish impulses, the last bullish candle is used. This matches the ICT definition of an order block — the final imbalance candle before institutional displacement.
3. Zone Lifecycle Management
Each zone is stored as a user-defined type (UDT) containing the box object, mid-line, price boundaries, birth bar, direction, mitigation flag, and rejection flag. Zones extend rightward on each bar until price closes beyond the zone (mitigation), at which point the box is frozen and marked as mitigated. A maximum zone count is enforced and oldest zones are trimmed to maintain chart performance.
4. A/B/C Rejection Grading
When price returns to test a live zone and a rejection candle forms, ISZ grades the signal quality using four independent scoring factors:
Wick dominance ratio: The rejection wick length divided by candle body size
Proportional wick depth: The wick as a percentage of the total candle range
Volume confirmation: Current bar volume compared to the 20-bar average
Candle size vs ATR: Whether the rejection candle is of meaningful size relative to recent volatility
A total score of 6+ = Grade A, 4-5 = Grade B, below 4 = Grade C. Grade is displayed as a label on the rejection bar.
Features
Z-Score Impulse Engine: Statistically filters price moves against a rolling mean/standard deviation window — configurable length and threshold
Automatic Order Block Detection: Last opposing candle before each confirmed impulse identified and stored as a zone
Bidirectional Zone Tracking: Bullish (demand) and bearish (supply) zones managed in separate arrays with independent colors
A/B/C Rejection Grading: Four-factor scoring system labels each zone test with a quality grade
Zone Mitigation Detection: Zones that are fully closed through are frozen and visually distinguished from active zones
Mid-Line Reference: Each zone box includes a dashed mid-line at the 50% level — institutional equilibrium reference
ATR Proximity Filter: Rejection signals only fire when price is within a configurable ATR multiple of the zone
Volume Confirmation: Optional volume filter requires above-average volume at rejection for grading
Non-Repainting: All signals gated on barstate.isconfirmed — no look-ahead bias
Zone History Limit: Oldest zones automatically removed when the maximum count is reached to maintain performance
Dashboard (Top Right): Active bull/bear zone counts, last signal grade, last impulse Z-Score, and ATR — updated on each bar
Live Z-Score Candle Gradient Coloring: Impulse candles colored teal or rose based on Z-Score strength — immediately identifies statistically significant displacement bars on the chart
ATR Band Plots Around EMA 750: Visual upper and lower extremity zones drawn as ATR-based bands around the 750-period EMA — communicates when price is at macro stretch relative to the long-term anchor
RR Trade Boxes on Rejection Signals: Auto-generated SL/TP boxes on every rejection signal — 1.5× ATR stop loss with 3:1 reward-to-risk ratio, extending forward from the signal bar
Session Win Rate Tracking: Asia, London, and NY win rates tracked independently for rejection trades — outcome recorded against each signal's ATR-based TP/SL levels
Best Session Highlight: Dashboard automatically identifies and highlights the highest win-rate session across all three windows
Expanded Dashboard (9 Rows): Dashboard expanded to 9 rows — now includes live Z-Score reading, total impulse count, and full session win rate breakdown alongside existing zone and signal data
Input Parameters
Z-Score Settings:
Z-Score Length: Rolling window for mean and standard deviation calculation (default: 20)
Z-Score Threshold: Minimum absolute Z-Score required to qualify as an impulse (default: 1.5)
Zone Settings:
Max Active Zones: Maximum number of zones tracked simultaneously per direction (default: 8)
Bull Zone Color / Bear Zone Color: Independent colors per direction
Rejection Settings:
ATR Proximity (multiplier): How close price must be to a zone to trigger rejection check (default: 0.5)
ATR Length: Period for ATR calculation (default: 14)
Require Volume Confirmation: Toggle — above-average volume required for Grade A
How to Use This Indicator
Step 1: Identify Active Zones
Active bullish zones (demand) appear below price in teal. Active bearish zones (supply) appear above price in rose. Mitigated zones are visually dimmed. Focus on zones that have not yet been tested — these are the most relevant levels for future price interaction.
Step 2: Wait for Price to Return to the Zone
ISZ does not generate entry signals on impulse creation. It monitors active zones for return tests. When price pulls back into a zone, watch for the rejection grading label to appear.
Step 3: Grade the Signal
An A-grade rejection at a fresh, unmitigated zone is the highest-quality setup. B-grade is acceptable with additional confluence. C-grade rejections at already-tested zones carry the least weight. Use the grade in combination with your own bias and higher-timeframe analysis.
Step 4: Monitor the Dashboard
The dashboard shows active zone counts, last Z-Score, last grade, and ATR. A high Z-Score at impulse creation indicates an unusually strong move — those zones tend to attract more significant future tests.
Indicator Limitations
Z-Score impulse detection requires sufficient historical bars (at least 2× the Z-Score length) to produce accurate statistics — on very short chart histories the first few zones may form under unstable conditions
Order block detection scans back a fixed number of bars (configurable). In fast-moving markets where multiple candles are the same color, the scan may place the zone further back than an analyst would manually
Rejection grading uses volume data. On instruments with synthetic or unreliable volume (e.g., some CFDs, synthetic indices), the volume scoring component will not reflect true market activity
Zones do not account for gap fills, overnight moves, or after-hours sessions — a zone that appears unmitigated on the chart may have been effectively traded through outside of regular hours depending on the instrument
The A/B/C grading is a quantitative scoring system, not a certainty measure. Grade A signals do not guarantee price continuation in the expected direction
Originality Statement
ISZ combines Z-Score statistical impulse detection with origin-candle order block identification and a multi-factor rejection grading system in a single, self-contained indicator. This combination is original for the following reasons:
The use of a Z-Score normalized against a rolling mean and standard deviation — rather than a fixed pip or percentage threshold — makes impulse detection adaptive to current market volatility. The same threshold parameter behaves consistently across instruments and timeframes without requiring manual recalibration
The A/B/C grading system applies four independent quantitative factors (wick dominance, wick proportion, volume, candle size) simultaneously to classify signal quality at the point of zone interaction — rather than simply marking every return to a zone as equal
Zone lifecycle management (create → extend → mitigate → reject → trim) is handled automatically through UDT arrays with in-place field mutation, eliminating the need for manual zone maintenance or re-drawing
The combination of impulse detection, zone creation, and rejection grading in a single engine — with a unified dashboard — removes the need to layer multiple indicators to accomplish the same workflow
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Order block zones are historical reference levels and do not guarantee that price will react at those levels. A/B/C grades reflect quantitative scoring and do not predict future price movement. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicador

Repricing Belt Engine [AGPro Series]Repricing Belt Engine
🔹 OVERVIEW
Repricing Belt Engine identifies qualifying displacement impulses and constructs ATR-scaled repricing belts around the impulse body, then tracks each belt's first-revisit lifecycle through three discrete outcomes: Held, Rejected, and Broken. The engine turns raw impulse candles into structured, evaluable reaction zones — giving traders a clean framework for studying how price behaves when it returns to the scene of a decisive move.
Unlike generic supply/demand or order block tools, this indicator does not simply mark impulse zones and leave them on the chart indefinitely. Every belt has a full state machine: Active → first qualifying touch → terminal outcome. A top-right status panel summarizes active belts, current belt context, 50-bar directional bias, and outcome counts so the chart context is always one glance away.
🔸 UNIQUE EDGE
Most displacement or supply/demand indicators stop at drawing a box. Repricing Belt Engine differentiates itself with four specific mechanics:
• ATR-scaled geometry — Belt width is normalized by ATR (not raw body size), producing consistently visible zones across volatility regimes and symbols. Optional "Auto (Body)" and "Body 70%" modes are available for traders who prefer tighter constructions.
• Three-outcome lifecycle model — Every belt resolves into one of five states (Active, Held, Rejected, Broken, Expired) based on penetration depth and close position. No more static zones cluttering the chart after price has decisively moved on.
• Depth-gated touch qualification — Wick-grazing does not trigger state transitions. A revisit must penetrate the belt by a configurable minimum depth (ATR-relative) before it counts, filtering noise from meaningful reactions.
• Excursion-tolerant hold detection — A belt can be marked Held even when price briefly dips beyond it, as long as the close respects the belt and the excursion stays within the Hold Tolerance band. This matches how institutional levels actually react in live markets.
🔹 METHODOLOGY
1. Impulse Qualification: A bar qualifies as an impulse when its body magnitude exceeds Impulse Threshold × ATR AND its body-to-range ratio is at least Min Body / Range Ratio. Both gates must pass — this filters out long-wick bars that look decisive but are not.
2. Belt Construction: On a qualifying impulse, a belt is drawn using the selected Width Mode. In ATR Scaled mode (default), the belt is centered on the impulse body midpoint and spans ±ATR Width Half-Span × ATR. A mid-line is drawn through the belt center.
3. Cooldown: A minimum bar gap (Cooldown Between Belts) is enforced between consecutive belt formations, preventing rapid clustering in extended trends.
4. Lifecycle Tracking: On every confirmed close, each active belt is evaluated:
• If close breaches the belt with excursion beyond Reject Tolerance → Broken
• If close recovers but excursion exceeded Hold Tolerance → Rejected
• If close respects the belt after a qualifying touch → Held
• If no resolution within Belt Max Lifetime bars → Expired
5. Active Cap: A maximum number of concurrent active belts is enforced (Max Active Belts). When the cap is reached, the oldest active belt is auto-expired to keep the chart focused on the current narrative.
🔸 SIGNALS & ALERTS
On-chart visuals:
• Bull/Bear belt zones with ATR-scaled width and mid-line
• Impulse origin markers (small triangles) anchoring each belt to its source bar
• State-colored labels at resolution: Held OK (state color), Broken X (opposite state color), Rejected (neutral, shown only in Detailed label mode)
• Faded rendering for resolved belts so the active story stays visually dominant
Top-right status panel:
• Active belt count
• Current belt context (side, position, held flag)
• 50-bar directional bias (Bull UP / Bear DN / Neutral)
• 50-bar outcome counts (Held / Rejected / Broken)
Alert conditions:
• Repricing Belt Formed
• Belt Touched (first qualifying revisit)
• Belt Held
• Belt Rejected
• Belt Broken
🔹 KEY INPUTS
Engine
• Impulse Threshold (x ATR) — impulse size gate
• Min Body / Range Ratio — decisive-close gate
• ATR Length — volatility normalization period
• Cooldown Between Belts — anti-clustering filter
Belt
• Width Mode — ATR Scaled / Auto (Body) / Body 70%
• ATR Width Half-Span — belt half-width in ATR units
• Belt Max Lifetime — auto-expiry age
• Max Active Belts — concurrent belt cap
State Thresholds
• Min Touch Depth (x ATR) — qualifying penetration
• Hold Tolerance (x ATR) — clean-hold excursion ceiling
• Reject Tolerance (x ATR) — rejected-vs-broken threshold
Visuals
• Label Mode — Clean / Detailed
• Panel Font Size, Label Font Size
• Show Impulse Markers toggle
🔸 HOW TO USE
1. Apply to any symbol and timeframe. The engine is timeframe-agnostic and self-calibrates via ATR.
2. Watch for new belt formations on displacement impulses. The impulse marker confirms the origin bar.
3. When price returns, observe the lifecycle resolution: Held reactions often mark continuation points; Broken reactions frequently signal structural shifts.
4. Use the 50-bar Bias readout for directional context — sustained one-sided belt formation suggests an active trend.
5. Combine with structure tools (swing highs/lows, trendlines) for confluence. The belt is a reaction zone, not a standalone entry system.
6. Tune Impulse Threshold per timeframe: lower values (1.5–1.7) for intraday, higher (1.8–2.2) for swing.
🔹 LIMITATIONS & TRANSPARENCY
• This indicator is not a strategy and does not generate buy/sell signals. It is an analytical visualization tool.
• Belt outcomes are historical observations, not predictions. Past Held/Broken patterns do not guarantee future reactions.
• Performance varies by symbol, timeframe, and market regime. Always test parameter settings on the instruments you trade.
• Very low-liquidity or gappy symbols may produce noisy impulses. Increase Impulse Threshold or Min Body Ratio for cleaner selection.
• The Max Active Belts cap intentionally limits chart information to keep focus on the current context — raise it only if your workflow benefits from longer belt history.
⚠️ RISK DISCLOSURE
This script is provided for educational and analytical purposes only. It is not financial advice and does not constitute a recommendation to buy, sell, or hold any asset. Trading involves substantial risk of loss. Always conduct your own analysis, manage risk responsibly, and never trade with capital you cannot afford to lose. Past performance of any pattern or setup is not indicative of future results.
Published as Public / Open-source under Mozilla Public License 2.0. Indicador

[ A L P H A X ] Impulse Bands - Adaptive Trend EngineAlphaX Impulse Bands — ATR-Normalized Adaptive Trend Engine, Impulse Freshness System, Multi-Confluence Confidence Scoring & Smart Retest Detection
AlphaX Impulse Bands is a professional-grade adaptive trend following system built on a proprietary ATR-normalized impulse detection engine that continuously measures the strength, direction, and freshness of every price move. It delivers dynamic bands that physically breathe with volatility — tightening during fresh, high-conviction impulses and expanding during stale, uncertain market conditions. Three visual layers — the Trend Cloud, entry labels, and precision retest lines — work together with a multi-factor confidence scoring system and a triple-timeframe Williams %R confirmation gate to produce only the highest-quality signals. Designed for active traders across crypto, forex, indices, and commodities on any timeframe.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔬 The Impulse Engine — How It Works
At the core of AlphaX Impulse Bands is the ATR-Normalized Impulse Engine — a proprietary system that measures momentum in a way that is consistent and comparable across all instruments and timeframes.
Most adaptive band systems measure impulse by dividing price movement against MAD (Mean Absolute Deviation), which produces readings that vary wildly between low-volatility forex and high-volatility crypto. AlphaX Impulse Bands solves this by normalizing against ATR (Average True Range) instead — the same unit every professional volatility model uses. The result is an impulse score that means the same thing whether you are trading XAUUSD on M1 or BTC on H4.
How the impulse is calculated:
Raw Impulse — measures how far price has moved over the Impulse Lookback period, divided by ATR. If this movement exceeds the threshold (1.0×ATR), a new impulse event is registered.
Impulse Direction — records whether the detected impulse is bullish or bearish, held in state until the next impulse event fires.
Impulse Decay — once registered, the impulse strength decays each bar at the configured Decay Rate. This creates a natural fade — recent moves carry full weight, older moves gradually lose influence.
Impulse Freshness — a normalized 0–100% score derived from current impulse strength. Fresh = high confidence. Stale = caution.
Impulse Momentum — the rate of change of freshness across the last 3 bars. Used by the confidence scoring system to distinguish an impulse that is building from one that has already peaked and is fading.
This multi-layer approach means the indicator is not just reacting to where price is — it is continuously answering the question: how energetic is the current move, and is that energy rising or falling?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📐 The Adaptive Bands — Breathing With Volatility
The bands are not fixed-width channels. They are living boundaries that respond to both market volatility and impulse freshness simultaneously.
Band structure:
Basis EMA — a trend-length EMA of close, forming the center reference line plotted as a subtle gray line
MAD (Mean Absolute Deviation) — the volatility engine. Unlike ATR, MAD measures the average deviation of closes from their recent mean — capturing the texture of price noise directly
Band Multiplier — dynamically calculated each bar as a blend between Band Min and Band Max, weighted by current Impulse Freshness
The key relationship:
When a fresh impulse fires → Freshness = high → Multiplier moves toward Band Min → Bands tighten — price is in a high-conviction directional move, the bands hug it closely
As the impulse decays → Freshness falls → Multiplier moves toward Band Max → Bands expand — uncertainty is rising, the bands widen to reflect the broader range of possible outcomes
A very stale market with no active impulse → Freshness near zero → Full Band Max width → Maximum caution zone
This means the bands are effectively a real-time confidence visualizer . A trader glancing at the chart immediately understands: tight bands = strong move in progress, wide bands = market searching for direction.
Band Squeeze Detection:
The dashboard continuously displays band width as a percentage of price. When this drops below 2%, the dashboard flags SQUEEZE — a powerful pre-breakout warning that a large directional move is loading. Wider than 7% is flagged as WIDE — indicating elevated uncertainty or a post-impulse cool-down.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
☁ The Trend Cloud
The Trend Cloud is a gradient-filled area plotted around price that provides instant visual identification of trend direction and structural support/resistance.
How the cloud is constructed:
Cloud Outer — the outer boundary of the cloud, positioned at the lower band during a bull trend and the upper band during a bear trend
Cloud Inner — the inner boundary, sitting 45% of MAD inside the outer boundary — this inner line is the key level the Retest Engine watches
Cloud Fill — gradient-shaded between inner and outer: yellow-green for bullish trend, red for bearish trend, opacity-graded for visual depth
Reading the cloud:
Price riding above an expanding yellow-green cloud → strong bull trend, cloud is acting as dynamic support
Price riding below an expanding red cloud → strong bear trend, cloud is acting as dynamic resistance
Cloud thin or collapsed → no meaningful impulse active, potential consolidation or trend transition zone
Cloud color switching rapidly → choppy market, reduce position size or stand aside
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Signal System — Three Layers
AlphaX Impulse Bands produces three distinct signal types, each serving a specific role in the trade lifecycle:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1 ─ Entry Labels ( ▲ S/A/B % / ▼ S/A/B % )
Entry labels fire when the indicator detects a confirmed trend flip — price breaking through the outer band with sufficient impulse and WPR confirmation. Each label carries two pieces of information:
Tier — S, A, or B. Determined by the confidence score at signal time (S = 70%+, A = 55–69%, B = 25–54%)
Confidence % — the raw score from the confidence engine, printed directly on the label
Label colors reflect tier quality:
S-Tier — brightest yellow-green (bull) or bright red (bear) — highest conviction setup
A-Tier — primary yellow-green or primary red — strong setup
B-Tier — dimmer shades — valid but lower conviction, consider smaller size
A Signal Cooldown prevents multiple labels firing on the same trend flip during fast, multi-bar breakouts. Only signals that pass the minimum confidence threshold, the WPR confirmation gate, and the cooldown check are displayed.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2 ─ Retest Lines ( ✦ )
After a trend flip is confirmed and the Signal Buffer period has passed, the Retest Engine activates. It watches for price to pull back into the Cloud Inner boundary — the institutional re-entry zone where trends historically find continuation.
When a valid retest is detected:
A ✦ diamond marker appears at the retest bar — yellow-green for bull retests, red for bear retests
A horizontal retest line is drawn from the retest bar extending forward by the configured number of bars — giving you a clear price level to watch for re-entry or stop placement
A Retest Cooldown prevents line spam — minimum 55 bars between consecutive retest lines by default
Retest signals represent the continuation trade opportunity — where traders who missed the initial flip can enter at a structurally superior price, with the cloud now acting as confirmed support or resistance behind them.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3 ─ Exit Markers ( ✕ )
Exit markers appear when one of two conditions is met:
Trend Flip Exit — the opposite trend signal fires, indicating the trend has definitively reversed
WPR Exhaustion Exit — the Fast WPR crosses through the configured exit level (default: above -15 for longs, below -85 for shorts), indicating momentum exhaustion in the direction of the trade. A minimum bars-in-trade requirement prevents premature WPR exits on the opening bars of a position.
Exit markers are not necessarily a signal that the trend is over. They indicate that the current momentum leg is likely complete . Use them to:
Take partial or full profit at the exhaustion point
Tighten stop loss to protect gains
Wait for the next ✦ retest signal before re-entering if the trend remains intact
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧠 Multi-Confluence Confidence Scoring
Every entry signal is evaluated in real time by the AlphaX Confidence Engine — a multi-factor scoring system that produces a score from 0 to 100 and assigns it a tier. Only signals meeting your configured minimum threshold are displayed.
Bull Confidence Factors:
Trend Flip Freshness (up to 25 points)
Maximum score awarded only when the signal fires on the exact bar of the trend flip — confirming you are at the very beginning of the move, not chasing it
Impulse Freshness (up to 20 points)
The higher the current freshness reading, the more points awarded. A fully fresh impulse (80%+) scores 20 points; a stale impulse (below 20%) scores zero
Impulse Direction Alignment (up to 10 points)
Full points when the internal impulse direction agrees with the signal direction. Zero when it conflicts — a powerful cross-check that catches whipsaw moves where price crossed the band but momentum is still against you
WPR Oversold Depth (up to 15 points)
How deeply the Fast WPR penetrated oversold territory. Deeper = higher spring-loaded reversal potential = more points. WPR below -95 scores the maximum; WPR above -80 scores zero
WPR Cross Timing (up to 10 points)
A confirmed WPR cross back above the oversold level scores 10 points. Fast upward velocity scores 7. General bullish recovery scores 4
WPR Multi-Timeframe (up to 8 points)
Triple WPR convergence (all three timeframes in oversold) scores 8 points. Medium WPR alone in oversold scores 5
WPR Slow Alignment (up to 5 points)
When the Slow WPR confirms the macro trend direction, additional points are awarded
Candle Quality (up to 5 points)
A bullish close with body ratio above 50% scores 5 points. Any bullish close scores 2. Bearish closes score zero
Volume Surge (up to 5 points)
Volume 1.5× or more above the 20-bar SMA scores 5 points. Volume above the SMA scores 2
Impulse Momentum (up to 5 points)
When impulse strength is actively building (positive momentum) additional points are awarded — distinguishing a move that is accelerating from one that is about to stall
Penalty Deductions:
Slow WPR in extreme overbought territory → -8 points (macro trend fighting the signal)
Fast WPR still in overbought zone → -5 points
Impulse nearly completely stale (freshness below 10%) → -10 points
Extreme WPR velocity (likely spike or wick move) → -5 points
The bear confidence scoring system mirrors this structure in reverse, with all conditions flipped for short setups.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📡 Triple WPR Confirmation Gate
All signals pass through the WPR Confirmation Gate before being displayed. This is a separate binary filter — independent of the confidence score — that blocks signals when the oscillator context fundamentally disagrees with the signal direction.
The gate requires at least one of the following to be true before a bull signal can fire:
Fast WPR is in oversold territory
Fast WPR has just crossed back above the oversold level
Fast WPR is in a bullish recovery pattern (rising for 2+ bars)
WPR Slow and Medium are both in the bullish alignment zone
The same logic applies in reverse for bear signals. This gate can be toggled off in settings for traders who want band crossings alone to trigger signals, but it is on by default — and is one of the primary reasons AlphaX Impulse Bands produces significantly fewer false signals than typical adaptive band systems.
Three WPR timeframes run simultaneously and feed both the gate and the confidence scoring:
WPR Fast (8) — the primary signal oscillator, reacts immediately to price action
WPR Medium (21) — the intermediate trend filter, confirms the broader momentum context
WPR Slow (55) — the macro trend anchor, determines whether the overall market structure supports the signal
Triple WPR Convergence — when all three timeframes simultaneously reach extreme levels — is flagged on the dashboard as ALL OVERSOLD or ALL OVERBOUGHT and awarded maximum bonus points in the confidence engine. This is the highest-quality WPR condition the system can detect.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Live Dashboard
The real-time dashboard displays the complete internal state of the indicator across five sections, updated on every bar close.
IMPULSE ENGINE
Impulse Strength — qualitative label (EXTREME / STRONG / MODERATE / WEAK / FADING) based on the raw impulse value
Freshness — current freshness percentage with qualitative state (FRESH / ACTIVE / FADING / STALE). Highlighted in yellow-green when above 70% — the highest-confidence zone
Impulse Direction — the direction of the most recent registered impulse (BULLISH / BEARISH)
Band Width — current band width as a percentage of price, with SQUEEZE or WIDE flags when applicable
OSCILLATORS
WPR Fast / Med / Slow — current values with zone labels (OB / OS / MID for fast and medium, BULL / BEAR / NEUT for slow)
WPR Velocity — the rate of change of Fast WPR (FAST UP / RISING / FLAT / FALLING / FAST DOWN) — critical for timing entries within a move
WPR Alignment — whether Slow and Medium WPR are in the bull zone, bear zone, or neutral
Triple WPR — flags ALL OVERSOLD or ALL OVERBOUGHT when all three timeframes converge, with background color highlight
TREND STATE
Trend — current trend direction (BULLISH / BEARISH / UNDEFINED) with background color highlight
Trend Bars — the number of consecutive bars the current trend direction has been active
Price vs EMA — how far the current close is from the Basis EMA as a percentage, with directional color coding
CONFIDENCE
Bull Conf / Bear Conf — current confidence scores with tier labels (S-TIER / A-TIER / B-TIER / BELOW MIN)
Volume — current volume state (SPIKE / HIGH / NORMAL / DRY) with the volume ratio multiplier
TRADE STATUS
Position — current tracked position (LONG / SHORT / FLAT) with background highlight
Entry Price — the close price at which the active signal fired
Open P&L — live unrealized profit and loss in both price and percentage terms, color-coded green/red
WPR Exit Watch — warns ⚠ NEAR BULL EXIT or ⚠ NEAR BEAR EXIT when the Fast WPR is approaching the configured exhaustion level — giving you advance notice before the exit trigger fires
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ Identifying Choppy / Low-Quality Market Conditions
Knowing when not to trade is just as valuable as knowing when to enter. AlphaX Impulse Bands gives you multiple clear visual and dashboard cues that the market is in a low-quality state:
Visual cues to stand aside:
Bands are very wide and expanding — the dashboard Band Width reading is high and climbing. No active impulse is driving direction — the market is searching, not trending
Trend Cloud is thin or collapsing — when the cloud inner and outer converge, there is no structural trend backing any move. Wait for the cloud to separate and take on clear color
Freshness dashboard shows STALE — the last impulse has fully decayed and no new one has fired. Any price movement is low-energy and likely to reverse or stall
WPR Alignment shows NEUTRAL — neither the slow nor medium WPR are confirming a directional bias. Signals firing in this environment carry the lowest reliability
Rapid trend color switching — if candles are alternating rapidly between yellow-green and red, the system is detecting micro-trend flips. The cooldown will block most signals, but the underlying message is clear: this is a range, not a trend
No entry labels appearing despite trend flips — when the bands are crossing but no labels appear, the confidence engine and WPR gate are filtering them out. This is the system explicitly telling you: these setups do not meet the quality threshold
What to do:
Do not force entries — wait for a fresh impulse to register (Freshness dashboard turns FRESH with yellow-green highlight)
Wait for Band Width to compress into SQUEEZE territory — this signals energy is coiling for a directional move
Look for Triple WPR convergence on the dashboard — ALL OVERSOLD or ALL OVERBOUGHT are the highest-conviction pre-signal states
After a trend flip label, wait for the first ✦ retest signal before committing capital — the retest confirms the trend has real momentum behind it and is not a false start
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 How to Trade with AlphaX Impulse Bands — Step by Step
Step 1 — Read the Dashboard
Check Freshness: is the market FRESH or STALE?
Check Band Width: is it squeezing or expanding?
Check WPR Alignment: do the oscillators agree on direction?
If all three are neutral or negative → do not trade. Wait for setup conditions to develop.
Step 2 — Wait for a Trend Flip Label
A ▲ label below the bar (bull) or ▼ label above the bar (bear) sets your directional bias
Read the tier and confidence printed on the label. S-Tier is the strongest; B-Tier warrants smaller size
Do not enter directly on the label — the optimal entry comes next
Step 3 — Enter on Retest ( ✦ )
After the Signal Buffer period passes, watch for price to pull back into the Cloud Inner zone
When a ✦ diamond appears, this is the structured re-entry — a continuation setup at a technically superior price with the cloud now acting as confirmed dynamic support or resistance behind you
Place your stop loss beyond the retest level or just outside the opposite cloud boundary
Step 4 — Monitor with the Dashboard
Watch the WPR Exit Watch row — when it flashes ⚠ NEAR EXIT, begin preparing your exit
Watch Freshness — if it drops to FADING or STALE during your trade, the momentum behind the move is diminishing
Additional ✦ retest signals during the same trend are opportunities to add to your position or re-enter after a partial take-profit
Step 5 — Exit on ✕ Mark
A gray ✕ marker indicates either a confirmed trend flip or WPR exhaustion
Take partial or full profit
If no opposing trend label has appeared, wait for the next ✦ retest to confirm the trend is continuing before re-entering
Step 6 — Trend Ends
An opposing trend label (e.g., a ▼ label after you were long) confirms the trend has reversed
Close any remaining position from the prior trend
The new label resets the cycle — the dashboard Trade Status updates to the new position, and the Retest Engine resets its buffer for the new direction
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚡ Key Features
🔬 ATR-normalized impulse engine — consistent behavior across all instruments and timeframes, no manual recalibration needed
📈 Dual-layer volatility model — MAD for band texture, ATR for impulse normalization, combined into a single adaptive system
🌊 Freshness decay system — impulse strength and confidence degrade naturally over time, preventing stale signals from carrying full weight
☁ Adaptive Trend Cloud — breathes with volatility, tightens during fresh impulses, expands during uncertainty
📡 Triple WPR confirmation gate — Fast (8), Medium (21), and Slow (55) Williams %R must agree before signals fire
🏷 Tiered entry labels (S / A / B) with live confidence % — know the quality of every signal at a glance
✦ Intelligent retest engine — configurable buffer, cooldown, line extension, and width. Draws only meaningful retest levels, never spams
🧠 10-factor confidence scoring engine — freshness, impulse direction, WPR depth, timing, multi-timeframe, candle quality, volume, momentum, and penalty deductions
📊 26-row live dashboard — Impulse Engine, Oscillators, Trend State, Confidence, and Trade Status sections updated in real time
💹 Live Open P&L tracking — entry price and unrealized P&L displayed directly on the dashboard in price and percentage
⚠ WPR Exit Watch — advance warning before exhaustion exits fire, so you are never caught off guard
🎨 Cohesive dual-tone color theme — yellow-green for all bullish elements, red for all bearish elements, gray for neutral and exits
🔔 15 alert conditions — tiered entries, combined entries, exits, retests, Triple WPR states, freshness fade, and trend flips
⚙ Fully configurable — all periods, thresholds, multipliers, display toggles, colors, and filter modes are adjustable from the settings panel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙ Settings Reference
Core Engine
Trend Length — EMA period for the basis line and cloud anchor (default: 19)
Impulse Lookback — bars over which the raw impulse move is measured (default: 5). Lower = more reactive
Impulse Decay — per-bar decay multiplier for impulse freshness (default: 0.97). Higher = impulses stay fresh longer
MAD Length — lookback for Mean Absolute Deviation calculation, controls band volatility sensitivity (default: 20)
Adaptive Bands
Band Min (Fresh Impulse) — tightest band multiplier applied during a fully fresh impulse (default: 1.5)
Band Max (Stale Impulse) — widest band multiplier applied when impulse has fully decayed (default: 2.2)
ATR Period — lookback for ATR-based impulse normalization (default: 14)
WPR Context
WPR Fast / Medium / Slow — three independent Williams %R periods (defaults: 8 / 21 / 55)
WPR Oversold / Overbought — extreme zone thresholds used by the gate and confidence engine (defaults: -82 / -18)
Signal Filters
Min Confidence % — minimum score required for a signal to be displayed (default: 25%)
Signal Cooldown — minimum bars between consecutive entry labels (default: 3)
Require Volume Confirm — when enabled, signals are blocked if current volume is below the Min Volume Ratio threshold
Min Volume Ratio — minimum volume relative to 20-bar average required when volume filter is active (default: 0.7×)
Require WPR Confirmation — when enabled, signals only fire when WPR agrees with the trend direction. On by default — this is the primary noise gate
Retest Engine
Show Retest Levels — toggle retest lines and ✦ markers on or off
Signal Buffer — bars to wait after a trend flip before the retest engine activates (default: 10)
Retest Cooldown — minimum bars between consecutive retest line draws (default: 55)
Retest Line Width — thickness of the horizontal retest lines (default: 2)
Retest Line Extend — how many bars forward the retest line projects (default: 60)
Exits
Exit on Trend Flip — when enabled, an opposing signal triggers an immediate exit marker
Exit on WPR Exhaustion — when enabled, WPR crossing the exit level triggers an exit marker
WPR Exit Bull (above) — Fast WPR level above which a long exit fires (default: -15)
WPR Exit Bear (below) — Fast WPR level below which a short exit fires (default: -85)
Min Bars Before Exit — minimum bars in trade before a WPR exhaustion exit can trigger (default: 3)
Display
Show Trend Cloud / Show Outer Bands / Color Bars / Show Entry Labels / Show Freshness Indicator — individually toggle each visual layer
Label Size — Tiny / Small / Normal
Dashboard
Show Dashboard — toggle the entire dashboard panel
Position — Top Left / Top Right / Bottom Left / Bottom Right
Dashboard Text — Tiny / Small / Normal
Colors
Bull Primary / Bright / Dim — the yellow-green family for all bullish elements
Bear Primary / Bright / Dim — the red family for all bearish elements
Neutral / Neutral Light — gray shades for exits, inactive states, and neutral conditions
Text Light / Dashboard BG — dashboard typography and background colors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔔 Alert Conditions (15 total)
Tiered Entry Alerts
S-Tier Bull Impulse — bull signal with confidence 70%+
A-Tier Bull Impulse — bull signal with confidence 55–69%
B-Tier Bull Impulse — bull signal with confidence 35–54%
S-Tier Bear Impulse — bear signal with confidence 70%+
A-Tier Bear Impulse — bear signal with confidence 55–69%
B-Tier Bear Impulse — bear signal with confidence 35–54%
Combined Entry Alerts
Any Bull Impulse — any bull signal regardless of tier
Any Bear Impulse — any bear signal regardless of tier
Any Impulse Signal — any signal in either direction
Exit Alerts
Bull Exit — long position exit triggered
Bear Exit — short position exit triggered
Any Exit — exit in either direction
Retest Alerts
Bull Retest Level — a bullish retest level has been drawn
Bear Retest Level — a bearish retest level has been drawn
Any Retest — retest in either direction
Special State Alerts
Triple WPR Oversold — all three WPR timeframes simultaneously in oversold territory
Triple WPR Overbought — all three WPR timeframes simultaneously in overbought territory
Impulse Freshness Fading — freshness drops below 50%, signaling momentum decay
Trend Flip — a trend direction change has been detected
All alert messages include {{ticker}} and {{interval}} placeholders and are formatted for clean webhook integration.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 Recommended Settings by Instrument & Timeframe
The default configuration is optimized for XAUUSD and major forex pairs on M1–M15 :
Confidence threshold at 25% captures valid setups while filtering genuine noise at fast timeframes
WPR Confirmation Gate on by default — the primary protection against choppy market signals
Decay Rate at 0.97 — impulses fade over approximately 30 bars, suitable for intraday momentum moves
Band Min/Max at 1.5/2.2 — calibrated for gold and forex intraday volatility profiles
For other instruments or timeframes, adjust:
Higher timeframes (H1, H4, Daily) — increase Trend Length to 25–35, increase Confidence to 35–50%, increase Retest Cooldown to 100–150
Crypto (BTC, ETH) — increase Band Max to 2.8–3.5 to accommodate wider swings, increase ATR Period to 20
Indices (NAS100, US30, SPX500) — use defaults or slightly increase Impulse Lookback to 7–8 for smoother detection
More signals — reduce Min Confidence %, disable Require WPR Confirmation, reduce Cooldown
Fewer, cleaner signals — increase Min Confidence % to 40–55%, increase Signal Cooldown to 5–10, reduce Band Min to tighten the entry zone
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👥 Who This Is For
📉 Trend traders and momentum followers — the adaptive band and freshness system is built specifically for riding directional moves with precision
🥇 Gold (XAUUSD) and forex scalpers — default settings tuned for intraday volatility on fast-moving instruments
📊 Index and crypto traders — the ATR normalization ensures the system adapts without manual recalibration across instruments
🧠 Systematic traders — the confidence scoring system provides a quantitative signal quality metric, not just visual arrows
📈 Traders who value clean charts — no indicator soup, no overlapping clutter. Every visual element serves a specific purpose
⚠ Traders who struggle with overtrading — the confidence filters, WPR gate, cooldown system, and freshness tracking physically prevent low-quality setups from appearing on the chart
🔄 Pullback traders — the retest engine was specifically designed to surface structured continuation entries within confirmed trends, not just initial breakout signals
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Notes
All signals are confirmed on bar close — the indicator is non-repainting by design
The ATR normalization means the impulse threshold (1.0×ATR) is instrument-agnostic — no adjustment needed when switching between gold, forex, crypto, or indices
Maximum 500 labels and 500 lines are used — on very low timeframes with extended chart history, the oldest labels and retest lines may be automatically removed by TradingView's rendering limits
The Band Width squeeze detection in the dashboard is a leading indicator of volatility expansion — SQUEEZE conditions frequently precede the strongest impulse moves
WPR Velocity displayed in the dashboard is particularly useful for timing exits within a move — FAST UP or FAST DOWN readings often precede exhaustion reversals
The Trade Status section tracks position direction from signal to exit within a single chart session — it does not connect to your broker or brokerage account
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ Disclaimer
This indicator is a technical analysis and visualization tool intended for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any financial instrument. All signals are generated from historical and real-time price data using mathematical calculations — their accuracy or profitability is not guaranteed. Past performance of any signal type does not guarantee future results. Always conduct your own analysis, use proper risk management, and consult a licensed financial advisor before making any trading decisions. The author accepts no responsibility for any losses incurred from the use of this indicator.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built for traders who need to know not just where the market is going — but how much energy is behind the move. Indicador

Price Action Scan: Pulse, Rhythm & Drift [TechnicalZen]Visualize the nested cycles of impulse, swing and trend as professionals see them.
Every chart has three stories running at the same time. You just have to know where to listen.
There's the impulse — the fast, nervous heartbeat of bar-to-bar action. Is this candle a fake-out, or the start of something? There's the swing — the slower rhythm of regimes, the tide that carries a cluster of candles in one direction before it turns. And beneath both, there's the trend — the deep current that doesn't care what the last five bars did, the one that's still pointing north while everything on the surface looks like it's falling apart.
Most indicators hear one of these and talk over the other two. This one tries to listen to all three — separately, at their own natural pace — and show you where they agree and where they don't.
What it actually does on your chart:
Impulse layer — Eight analytical schools (OBV Flow, RSI Zones, Wyckoff, Amplitude, VWMA Delta, Kalman Filter, Naive Bayes, Confluence) each watch the tape through a different lens. When two or more vote the same direction within a few bars, a signal fires with auto-drawn SL and TP zones. Quick, frequent, surgical.
Swing layer — An adaptive trend engine (Adaptive Pivots) tracks regime shifts independently. It sits quiet during trends and flips when the character of the move breaks down — drawing its own SL/TP zones in light yellow so you never confuse them with the council's. Slower, fewer signals, bigger picture.
Trend layer — An exponential VWAP (EVWAP) drifts underneath everything, marking the deep structural direction with quiet yellow arrows when it finally turns. Slowest of the three. The gravity that the other two orbit around.
Every school's accuracy is tracked live on your chart — not backtested on some ideal instrument, but measured in real time on yours , using Maximum Favorable Excursion over a 12-bar window. A dashboard shows each school's vote, its recent history, and its running hit-rate. You'll know within days which schools are earning their place on your symbol and which ones are just noise.
The real edge isn't any single layer — it's watching all three breathe together. A council impulse signal during a clean adaptive trend in the direction of the EVWAP drift is a very different animal from the same signal fighting the other two. The indicator doesn't force that observation on you. It just gives you the pieces. You'll start seeing the pattern yourself.
———
Builds on TrueMove: Council of 7 Schools — the original council, its voting engine, its dashboard, its VWAP structure — all unchanged and fully intact. What's new are two additions :
———
Addition 1 — An eighth school: RSI Zones
The council is now a vote of eight, not seven. The new voter is a classical RSI zone school with a directional bias — it casts a bullish or bearish vote when price closes inside a configurable zone and the move has momentum behind it. The idea was to give the council a "pure price memory" voice, since the other seven schools lean heavily on volume, structure, or learned features. RSI Zones balances the ensemble a little, and earns or loses its place on your instrument the same way every other school does — through its own running hit-rate in the dashboard.
You can turn it off in settings if you prefer the council at seven.
———
Addition 2 — A ninth school that doesn't vote: Adaptive Pivots
This is the bigger change, and the one that changes how the chart feels .
Adaptive Pivots is an adaptive SuperTrend overlay that runs completely independently of the eight council schools — its own ATR, its own Efficiency Ratio, its own quality index, its own state machine. It doesn't contribute to the council vote and the council doesn't feed into it. They simply share the chart.
It earns the name "school" only because it keeps its own running hit-rate and gets a row of its own in the dashboard — a yellow-highlighted row so you can see at a glance that it lives slightly outside the council. When the adaptive trend flips, you see:
a small yellow-ringed triangle at the flip point
a continuous green or red line showing the current regime
three stacked take-profit zones and a stop-loss zone, framed in light yellow dotted outlines so they're visibly distinct from the council's own risk visuals
Under the hood it's an adaptive SuperTrend whose band widths are modulated by a four-factor Trend Quality Index — a composite that blends directional efficiency, volume regime, structural position within range, and momentum persistence. The bands tighten asymmetrically on the active side of the trend and widen on the passive side, so the ratchet locks tight when quality is high and loosens gracefully when quality degrades. A character-flip mechanism catches regime collapse before price has to break the band, which is what gives it its earlier reaction on quality-driven reversals.
———
A small thing that might happen once you have it running
The council fires often — that's its job. The RSI zone school will vote, the Naive Bayes will vote, the Confluence will catch agreements, and labels will come and go on the chart like a heartbeat.
The adaptive line, on the other hand, sits quiet for long stretches and then flips.
And somewhere in the background, the same EVWAP line from the original is drifting along at its own slow pace, occasionally marking its own direction change with a quiet yellow-circled arrow.
Leave the chart open for a while and you'll start noticing something — the three tempos drift in and out of agreement. A council signal during a clean adaptive trend feels different from a council signal against the adaptive trend. An adaptive flip while EVWAP is still drifting the other way feels different from a flip that agrees with EVWAP. None of this is enforced by the script; it just happens, because the three things are measuring genuinely different properties of the same price series.
I don't want to over-describe it. It's the kind of thing you notice rather than read about, and I'd rather you notice it on your own instrument than take my word for how it behaves on mine.
———
Dashboard and transparency
The top-right panel is still there and still shows every school individually — current vote, recent vote history, running hit-rate tracked by Maximum Favorable Excursion over a 12-bar window. The new Adaptive Pivots row sits just below the eight council schools, highlighted in yellow so it's clear it's scored independently. The council accuracy, signal counts, Naive Bayes learning status, and volatility regime readouts are all unchanged from the 7 Schools version.
All nine schools can be toggled individually. The adaptive layer's ATR length, pivot length, quality influence, and character-flip sensitivity are all exposed in settings. Everything else uses well-tested defaults.
———
How to get something out of it
The honest advice is the same advice I'd give for the original: don't act on it for a while. Put it on a chart you already trade, in replay or live, and watch. See when the council and Adaptive Pivots agree. See when they don't. Notice which of the nine schools is earning its keep on your symbol and which ones are drifting. The dashboard is telling you the truth about your instrument, not about mine.
If you find a setting that works better for you than the defaults, keep it. If you find one that doesn't work at all, let me know — it's the kind of feedback I genuinely use.
———
Disclaimer
This indicator is a decision-support and analytical tool. It is not financial advice, a trading signal service, or a recommendation to buy or sell any instrument. The hit-rate figures displayed in the dashboard are measured from historical bars on your chart using Maximum Favorable Excursion over a fixed 12-bar window — they are a diagnostic of how each school has behaved on that specific chart up to the current bar , not a predictor of future performance, and not a claim of profitability. Past behavior of any indicator, including this one, does not guarantee or imply future results.
Markets involve substantial risk of loss. Any decision to act on information derived from this script is entirely your own. You are responsible for your own position sizing, risk management, and trade execution. The author accepts no liability for any loss, direct or indirect, arising from the use of this script.
Use it as a lens for reading charts, not as a crystal ball. Always trade within your own risk tolerance and regulatory environment.
Indicador

Impulse Block [BeNice]# Impulse Block — TradingView Publication Description
Use this text when publishing the indicator on TradingView. Paste it into the "Description" field.
---
## 🔲 Impulse Block
**Impulse Block ** automatically detects and visualizes **Suspension Blocks** — high-probability price zones formed when three conditions align on three consecutive candles:
1. **Directional Alignment** — Three consecutive bullish (or bearish) candles confirm momentum.
2. **Volume Imbalance (VI)** — A gap between the close of one candle and the open of the next reveals institutional order flow.
3. **Fair Value Gap (FVG)** — An unfilled price gap confirms aggressive displacement.
When all three conditions fire simultaneously, the indicator draws a precise zone on the chart highlighting where smart money has left a footprint.
---
### ✦ Key Features
**Institutional Level Confluence**
Each zone is automatically cross-referenced against key HTF levels — Daily, Weekly, Monthly, Quarterly, Yearly Open/High/Low/EQ — and optionally Monday Range. When a zone overlaps with institutional levels, the confluence is displayed directly inside the box (e.g., `W EQ x2 (0,-1)`), giving you instant confirmation of zone strength.
**Smart Zone Filtering**
Five selection modes let you control which zones stay visible:
- *All (Recent Max)* — Show the most recent zones up to your limit.
- *Closest Bull/Bear* — Only the nearest bullish and bearish zones.
- *Closest Above/Below* — Nearest zone above and below current price.
- *Best OHLC-EQ Bull/Bear* — Prioritize zones with the highest institutional confluence.
- *Hybrid (Closest + Best)* — Combine proximity and confluence for the best of both worlds.
**Inversion Tracking**
If price aggressively closes through a zone within a configurable window, the zone flips its bias — modeling the Smart Money concept of mitigation-to-inversion.
**Historical Confluence Scanning**
Optionally scan past HTF periods (e.g., the last 24 daily opens) for deeper confluence analysis on each zone.
**Sub-Zone Visualization**
Toggle individual visual layers: Main Zone, Volume Imbalance boxes, FVG box, and Equilibrium (EQ) midpoint line.
---
### ✦ How to Use
1. **Add to chart** — zones appear automatically when the three-candle pattern is confirmed.
2. **Check confluence text** — zones with institutional level labels (e.g., `D Open`, `M High`) are statistically stronger.
3. **Use filtering** — switch to *Best OHLC-EQ* or *Hybrid* mode for a clean, high-conviction chart.
4. **Set alerts** — get notified when a new bullish or bearish suspension block forms.
5. **Combine** — pair with your own entry model (order blocks, breaker blocks, liquidity sweeps) for confluence-based trading.
---
### ✦ Settings Overview
| Group | Description |
|---|---|
| **Performance** | Max zones, zone selection mode |
| **General** | Direction bias (Auto / Bull / Bear) |
| **Display** | Toggle main zone, VI, FVG, EQ line, colors |
| **Inversions** | Enable/disable inversion tracking and window |
| **Institutional Levels** | Choose which HTF levels to scan (H4–Yearly + Monday), previous periods, historical depth |
| **Alerts** | Bull/Bear formation alerts |
---
### ✦ Notes
- Works on all markets and timeframes.
- For lower timeframes (1m–15m), reduce *Max Active Zones* for best performance.
- This is a non-repainting indicator — zones are confirmed only on bar close.
- Not financial advice. Use as a confluence tool within your own trading framework.
Indicador

Regime Classification System [JOAT]Regime Classification System
Introduction
The Regime Classification System is an advanced open-source market regime detection indicator that combines smooth range filtering, multi-timeframe trend analysis (10 timeframes), impulse detection, Chandelier Exit integration, and regime strength scoring into a comprehensive market state classification system. This indicator helps traders identify whether the market is trending, ranging, volatile, or transitioning between states, enabling them to adapt their trading strategies to current market conditions.
Unlike basic trend indicators that simply show up or down, this system classifies markets into distinct regimes (Trend Bull, Trend Bear, Volatile Bull, Volatile Bear, High Vol Range, Low Vol Range, Flat) and provides confidence metrics, regime strength scores, multi-timeframe alignment analysis, and transition warnings. The indicator is designed for traders who understand that different market conditions require different trading approaches and that regime identification is critical for consistent profitability.
Why This Indicator Exists
This indicator addresses a fundamental challenge in trading: adapting strategy to market conditions. A trend-following strategy that works in trending markets fails in ranging markets. A mean-reversion strategy that works in ranging markets fails in trending markets. By systematically classifying market regimes, this indicator enables traders to:
Identify Current Regime: Classify market as trending, ranging, volatile, or flat with quantitative metrics
Measure Regime Strength: Score regime quality (0-100%) based on trend clarity, volatility consistency, impulse confirmation, and duration
Detect Regime Transitions: Warn when market is likely changing character before it becomes obvious
Analyze Multi-Timeframe Alignment: Confirm regime across 10 timeframes (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, Daily, Weekly)
Calculate Regime Confidence: Provide confidence score combining regime strength, MTF alignment, and transition probability
Integrate Dynamic Stops: Use Chandelier Exit for adaptive stop-loss placement based on volatility
Each component provides different regime intelligence. Range filtering shows directional movement, trend strength shows conviction, volatility ratio shows market character, impulse detection shows momentum, MTF alignment shows multi-timeframe conviction, and Chandelier Exit provides dynamic risk management. Together, they create a comprehensive regime classification system.
Core Components Explained
1. Smooth Range Filter (from RealGains Algorithm)
The range filter uses a sophisticated smoothing algorithm to identify directional movement:
// Smooth range calculation
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
// Range filter
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r :
x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
The filter creates upper and lower bands based on smoothed range. When price breaks above the filter, it signals upward movement. When price breaks below, it signals downward movement. The filter adapts to volatility, widening in volatile conditions and tightening in calm conditions.
Filter direction is tracked using consecutive bar counts:
upward = filt > filt ? nz(upward ) + 1 : 0
downward = filt < filt ? nz(downward ) + 1 : 0
Longer consecutive counts indicate stronger directional conviction.
2. Impulse Detection (SMMA and ZLEMA)
The indicator uses Smoothed Moving Average (SMMA) and Zero-Lag EMA (ZLEMA) to detect impulse moves:
// SMMA calculation
calc_smma(src, len) =>
var float smma = na
smma := na(smma) ? ta.sma(src, len) : (smma * (len - 1) + src) / len
// ZLEMA calculation
calc_zlema(src, len) =>
ema1 = ta.ema(src, len)
ema2 = ta.ema(ema1, len)
d = ema1 - ema2
ema1 + d
// Impulse detection
hi = calc_smma(high, 34)
lo = calc_smma(low, 34)
mi = calc_zlema(hlc3, 34)
md = mi > hi ? mi - hi : mi < lo ? mi - lo : 0
is_impulse = md != 0
When impulse is detected, the market has momentum. When impulse is absent (flat), the market lacks directional conviction. This helps filter out choppy, directionless periods.
3. Trend Strength Calculation (ADX-based)
The indicator calculates trend strength using Directional Movement Index (DMI) and Average Directional Index (ADX):
calcTrendStrength(int length) =>
float plusDM = high - high > low - low ? math.max(high - high , 0) : 0
float minusDM = low - low > high - high ? math.max(low - low, 0) : 0
float plusDI = atr > 0 ? ta.sma(plusDM, length) / atr * 100 : 0
float minusDI = atr > 0 ? ta.sma(minusDM, length) / atr * 100 : 0
float dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
float adx = ta.sma(dx, length)
float trendStrength = adx / 100
bool bullish = plusDI > minusDI
Trend strength ranges from 0 (no trend) to 1 (strong trend). The threshold (default: 0.6) determines when a market is classified as trending vs ranging.
4. Volatility Regime Classification
Volatility regime is determined by comparing current ATR to average ATR:
calcVolatilityRegime(int length) =>
float atr = ta.atr(length)
float atrMA = ta.sma(atr, length)
float volRatio = atrMA > 0 ? atr / atrMA : 1.0
Volatility ratio interpretation:
volRatio > 1.5: High volatility (default threshold)
volRatio 0.67-1.5: Normal volatility
volRatio < 0.67: Low volatility
High volatility regimes require wider stops and larger profit targets. Low volatility regimes allow tighter stops and smaller targets.
5. Regime Classification Logic
The indicator combines trend strength, volatility ratio, and impulse detection to classify regimes:
classifyRegime(float trendStr, bool isBullish, float volRatio, float threshold, float volThresh, bool impulse) =>
if not impulse and catchFlat
regime := "Flat"
else if trendStr >= threshold
if volRatio > volThresh
regime := isBullish ? "Volatile Bull" : "Volatile Bear"
else
regime := isBullish ? "Trend Bull" : "Trend Bear"
else
if volRatio > volThresh
regime := "High Vol Range"
else
regime := "Low Vol Range"
Regime classifications:
Trend Bull: Strong uptrend with normal volatility - trend-following strategies
Trend Bear: Strong downtrend with normal volatility - trend-following strategies
Volatile Bull: Uptrend with high volatility - wider stops, larger targets
Volatile Bear: Downtrend with high volatility - wider stops, larger targets
High Vol Range: No clear trend with high volatility - avoid or use wide ranges
Low Vol Range: No clear trend with low volatility - mean-reversion strategies
Flat: No impulse detected - avoid trading
6. Regime Strength Scoring (0-100%)
Regime strength is calculated using four components:
calcRegimeStrength(float trendStr, float volRatio, bool impulse, int barsInRegime) =>
// Component 1: Trend clarity (40 points)
float trendScore = trendStr * 40
// Component 2: Volatility consistency (20 points)
float volScore = volRatio < volThreshold ? 20 : math.max(0, 20 - (volRatio - volThreshold) * 10)
// Component 3: Impulse confirmation (20 points)
float impulseScore = impulse ? 20 : 0
// Component 4: Regime duration (20 points)
float durationScore = math.min(barsInRegime / 50.0, 1.0) * 20
float totalScore = trendScore + volScore + impulseScore + durationScore
Regime strength interpretation:
> 70%: Excellent regime - high confidence trades
40-70%: Good regime - moderate confidence trades
< 40%: Weak regime - low confidence or avoid
7. Regime Transition Detection
The indicator warns when regime is likely changing:
detectRegimeTransition(float trendStr, float volRatio, bool impulse) =>
bool weakTrend = trendStr < trendThreshold * 0.8
bool volSpike = volRatio > volThreshold * 1.5
bool lostImpulse = not impulse and catchFlat
float transitionProb = 0.0
if weakTrend
transitionProb += 40
if volSpike
transitionProb += 30
if lostImpulse
transitionProb += 30
bool inTransition = transitionProb >= 50
Transition warnings help traders exit positions before regime changes become obvious in price.
8. Multi-Timeframe Alignment (10 Timeframes)
The indicator analyzes regime across 10 timeframes:
= request.security(syminfo.tickerid, '1', get_trend_status())
= request.security(syminfo.tickerid, '3', get_trend_status())
= request.security(syminfo.tickerid, '5', get_trend_status())
= request.security(syminfo.tickerid, '15', get_trend_status())
= request.security(syminfo.tickerid, '30', get_trend_status())
= request.security(syminfo.tickerid, '60', get_trend_status())
= request.security(syminfo.tickerid, '120', get_trend_status())
= request.security(syminfo.tickerid, '240', get_trend_status())
= request.security(syminfo.tickerid, 'D', get_trend_status())
= request.security(syminfo.tickerid, 'W', get_trend_status())
MTF alignment score is calculated with weighted timeframes (higher timeframes have more weight):
calcMTFAlignment(string t1m, string t5m, string t15m, string t1h, string t4h, string tD) =>
int bullCount = 0
int bearCount = 0
// Count each timeframe with weights
// 1m, 5m, 15m: weight 1
// 1h: weight 2
// 4h: weight 3
// Daily: weight 4
float alignmentScore = (bullCount - bearCount) / totalCount * 100
Alignment interpretation:
> 60: Strong Bull alignment
30-60: Moderate Bull alignment
-30 to 30: Mixed alignment
-60 to -30: Moderate Bear alignment
< -60: Strong Bear alignment
9. Regime Confidence Calculation
Overall confidence combines regime strength, MTF alignment, and transition status:
calcRegimeConfidence(float regimeStrength, float alignmentScore, bool inTransition) =>
float confidence = regimeStrength
// Adjust for alignment
float alignmentBonus = math.abs(alignmentScore) / 100 * 20
confidence += alignmentBonus
// Penalize if in transition
if inTransition
confidence *= 0.5
confidence := math.min(confidence, 100)
Confidence > 70% indicates high-quality regime suitable for aggressive trading. Confidence < 40% suggests caution or avoiding trades.
10. Chandelier Exit Integration
The indicator includes Chandelier Exit for dynamic stop-loss placement:
atrCE = ceMult * ta.atr(ceLength)
longStop = (ceUseClose ? ta.highest(close, ceLength) : ta.highest(ceLength)) - atrCE
shortStop = (ceUseClose ? ta.lowest(close, ceLength) : ta.lowest(ceLength)) + atrCE
Chandelier Exit adapts to volatility, providing wider stops in volatile regimes and tighter stops in calm regimes. The stops trail price, locking in profits as trends develop.
Visual Elements
Range Filter Line: Main line showing directional filter with color-coded regime (green = bull, red = bear, cyan = neutral)
Target Bands: Upper and lower bands showing filter range with gradient fills
Regime Strength Zones: Gradient fills showing regime strength intensity
Volatility Expansion Zones: Circles marking high volatility periods
Chandelier Exit Lines: Dynamic stop-loss lines (green for long stops, red for short stops)
Regime Value Histogram: Histogram showing regime direction and strength (-3 to +3)
Regime Background: Subtle background coloring based on current regime
Regime Change Markers: Circles marking regime transitions
Transition Warnings: X-crosses marking potential regime changes
Regime Signals: Triangle markers for strong bull/bear regime confirmations
MTF Table: Comprehensive table showing all 10 timeframes with trend status
Statistics Panel: Additional metrics including regime strength, duration, alignment, confidence, and transition status
Input Parameters
Range Filter Settings:
Sampling Period: Period for range calculation (default: 100, range: 1+)
Range Multiplier: Multiplier for range width (default: 3.0, range: 0.1+)
Regime Detection:
Trend Threshold: Minimum trend strength for trending classification (default: 0.6, range: 0.3-0.9)
Volatility Threshold: Multiplier for high volatility classification (default: 1.5, range: 1.0-3.0)
Regime Strength Period: Period for strength calculations (default: 20, range: 5-100)
Show Regime Signals: Toggle regime confirmation markers (default: enabled)
Chandelier Exit:
Chandelier ATR Period: Period for ATR calculation (default: 22, range: 1+)
Chandelier ATR Multiplier: Multiplier for stop distance (default: 3.0, range: 0.1+)
Use Close for Extremums: Use close vs high/low for calculations (default: enabled)
Impulse Detection:
Try to Catch Flat: Enable flat regime detection (default: enabled)
Multi-Timeframe Table:
Show MTF Table: Toggle timeframe table (default: enabled)
Table Position: Dashboard location (Top Right/Top Left/Bottom Right/Bottom Left/Middle Right)
Show Regime Statistics: Toggle additional statistics panel (default: enabled)
Colors:
All colors are fully customizable including trend bull/bear, mid trend, range, high volatility, text, transition, and excellent regime colors.
How to Use This Indicator
Step 1: Identify Current Regime
Check the regime classification (Trend Bull, Trend Bear, Volatile Bull, Volatile Bear, High Vol Range, Low Vol Range, Flat). This determines your trading approach.
Step 2: Check Regime Strength
Look at regime strength percentage. > 70% indicates high-quality regime suitable for aggressive trading. < 40% suggests caution.
Step 3: Verify MTF Alignment
Check the MTF table. Strong alignment (> 60) across multiple timeframes confirms regime conviction. Mixed alignment suggests caution.
Step 4: Monitor Regime Confidence
Overall confidence score combines strength, alignment, and transition status. > 70% confidence indicates high-quality trading conditions.
Step 5: Watch for Transition Warnings
X-cross markers warn of potential regime changes. Consider tightening stops or exiting positions when transition probability is high.
Step 6: Use Chandelier Exit for Stops
The Chandelier Exit lines provide dynamic stop-loss levels that adapt to volatility. Trail stops as trends develop.
Step 7: Adapt Strategy to Regime
Trend Bull/Bear: Use trend-following strategies, ride trends, trail stops
Volatile Bull/Bear: Use wider stops, larger targets, reduce position size
High Vol Range: Avoid or use very wide ranges
Low Vol Range: Use mean-reversion strategies, fade extremes
Flat: Avoid trading, wait for impulse to return
Best Practices
Use on 15-minute to 4-hour timeframes for optimal regime clarity
Trade with the regime, not against it - trend-following in trending regimes, mean-reversion in ranging regimes
Higher regime strength = higher confidence = larger position sizes
MTF alignment is critical - don't trade against higher timeframe regimes
Transition warnings are early signals - tighten stops or exit before regime change becomes obvious
Chandelier Exit provides objective stop-loss levels - use them
Regime duration matters - longer regimes are more reliable
Confidence > 70% = aggressive trading, confidence < 40% = defensive or avoid
Flat regimes lack directional conviction - patience is key
Volatile regimes require wider stops and larger targets - adjust risk accordingly
Indicator Limitations
Regime classification is based on recent data - sudden news events can invalidate regimes instantly
Transition warnings are probabilistic, not guaranteed - regimes can persist longer than expected
MTF alignment requires sufficient data on all timeframes - may not work on newly listed instruments
Range filter is adaptive but can lag during rapid regime changes
Impulse detection can produce false flat signals during consolidation within trends
Regime strength scoring is relative to recent history - not absolute
Chandelier Exit can be stopped out during volatile whipsaws
The indicator identifies regimes but doesn't predict when they will end
Works best on liquid instruments with clear trending and ranging periods
Regime confidence is a guide, not a guarantee - high confidence regimes can still fail
Technical Implementation
Built with Pine Script v6 using:
Smooth range filter with adaptive volatility adjustment
SMMA and ZLEMA calculations for impulse detection
ADX-based trend strength calculations
ATR-based volatility regime classification
Multi-component regime strength scoring
Transition probability calculations
Multi-timeframe security requests (10 timeframes)
Weighted MTF alignment scoring
Regime confidence calculations
Chandelier Exit with trailing stops
Dynamic table with 17 rows showing all timeframes and statistics
Gradient fills and color-coded visualizations
The code is fully open-source and can be modified to suit individual trading styles and preferences.
Originality Statement
This indicator is original in its comprehensive regime classification approach. While individual components (range filter, ADX, Chandelier Exit) are established concepts, this indicator is justified because:
It synthesizes six distinct regime analysis methodologies into a unified classification system
Regime strength scoring combines trend clarity, volatility consistency, impulse confirmation, and duration
Transition detection provides early warnings before regime changes become obvious
MTF alignment analysis across 10 timeframes with weighted scoring
Regime confidence calculation integrates strength, alignment, and transition probability
Integration of Chandelier Exit provides regime-adaptive risk management
Comprehensive statistics panel shows regime quality metrics in real-time
Visual regime signals help traders identify high-quality trading conditions
Each component contributes unique regime intelligence: range filter shows direction, trend strength shows conviction, volatility ratio shows character, impulse shows momentum, MTF alignment shows multi-timeframe conviction, transition detection shows regime changes, and Chandelier Exit provides adaptive stops. The indicator's value lies in presenting these complementary perspectives simultaneously with quantitative regime classification and confidence scoring.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss and is not suitable for all investors.
Regime classification is a tool for understanding market conditions, not a crystal ball for predicting future price movement. High regime strength, strong MTF alignment, and high confidence scores do not guarantee profitable trades. Past regime patterns do not guarantee future regime patterns. Market conditions change, and strategies that worked historically may not work in the future.
The metrics displayed are mathematical calculations based on current market data, not predictions of future price movement. Transition warnings are probabilistic, not guaranteed. Chandelier Exit stops can be hit during volatile whipsaws. Users must conduct their own analysis and risk assessment before making trading decisions.
Always use proper risk management, including stop losses and position sizing appropriate for your account size and risk tolerance. Never risk more than you can afford to lose. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this indicator. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Indicador

Momentum Decay Field [BullByte]Momentum Decay Field : Physics-Based Momentum Energy Visualization
WHAT IS THE MOMENTUM DECAY FIELD?
The Momentum Decay Field (MDF) models price momentum as a decaying physical energy field using an exponential half-life model. MDF visualizes impulse energy on the price chart, detects exhaustion and energy divergence, and stores past exhaustion zones as reference levels. This is an informational visualization tool - not a buy/sell signal generator.
In nuclear science, every radioactive element emits energy that decays exponentially over time following a precise mathematical law. MDF applies this exact principle to price momentum.
Every strong price impulse carries kinetic energy. That energy does not last forever. It fades, weakens, and eventually depletes - just like a radioactive isotope losing its charge. MDF measures this process in real time and wraps price in a living energy field that expands, contracts, changes color, and ultimately signals exhaustion when the energy runs out.
This is not a moving average. Not an oscillator. Not a mashup of existing tools . It is a standalone physics engine that models momentum as a decaying energy system directly on the price chart.
THE CORE PHYSICS
The engine is built on the exponential decay formula from nuclear physics:
E(t) = E0 x exp(-lambda x t)
Where:
E(t) is the remaining energy at time t (measured in bars after the impulse)
E0 is the initial energy assigned to the impulse at the moment it occurs
lambda is the decay constant, derived from the half-life: lambda = ln(2) / Half-Life
t is the number of bars elapsed since the impulse
The half-life is the number of bars it takes for energy to decay to exactly 50% of its initial value. After two half-lives, 25% remains. After three, 12.5%. This creates the smooth, predictable decay curve visible in the dashboard sparkline.
When the adaptive half-life option is enabled, stronger impulses automatically receive a longer half-life. This means powerful moves with high volume and velocity sustain their energy field longer before exhausting, while weak impulses fade quickly. This mirrors real market behavior where institutional-grade moves carry momentum further than retail noise.
HOW IMPULSES ARE DETECTED
Not every candle qualifies as an impulse. The detection engine requires three conditions to be met simultaneously:
First , the candle body size (distance between open and close) must exceed a user-defined multiple of the Average True Range. This ensures only candles with genuine directional magnitude qualify.
Second , the total candle range (high to low) must also exceed an ATR-based threshold. This confirms the move had real price displacement, not just a wide body on a small-range bar.
Third , the body-to-range ratio must exceed 0.45. This filters out doji candles, pin bars, and high-wick candles that suggest indecision rather than conviction. Only candles where the body represents a significant portion of the total range pass through.
When an impulse qualifies, its initial energy (E0) is calculated by combining three factors: the normalized body magnitude (body size divided by ATR), a velocity boost (how fast price moved over the velocity window compared to average), and an optional volume boost (current bar volume relative to the rolling volume average). The result is capped at 5.0 to prevent extreme outliers from dominating the field.
THE ENERGY FIELD : WHAT YOU SEE ON THE CHART
The energy field is the colored aura that appears around price. It communicates the current momentum state through three visual properties:
Width: The field expands when energy is high and contracts as energy decays. At full energy, the field reaches its maximum width (controlled by the Max Field Width setting). As energy approaches zero, the field collapses to nothing. The width is always proportional to ATR so it adapts automatically to any instrument and timeframe.
Color: The field color morphs through three stages as energy decays. At high energy levels (above 55%), the field displays the bright directional color - the bullish theme color for upward impulses, the bearish theme color for downward impulses. As energy drops into the mid range (20-55%), the color transitions through warm amber, a universal warning tone indicating momentum is fading. Below 20%, the field shifts to cool gray, signaling that momentum is nearly spent. This color morphing happens smoothly and continuously on every bar.
Layering: The field is rendered in up to three concentric tiers - inner, mid, and outer - each progressively more transparent. The inner layer sits closest to price and is most opaque. The mid layer extends further with reduced opacity. The outer layer provides the widest aura at the lowest visibility. This creates a natural gradient that makes the field feel organic rather than blocky.
THREE VISUAL MODES
Clean mode renders no energy field at all. Only the signal markers (diamond, EXH, WEAK) and the dashboard appear on the chart. This mode is designed for traders who want a completely uncluttered chart and only care about the event markers and data panel. The momentum engine still runs in the background, powering the dashboard metrics and signals.
Standard mode activates the inner and mid field layers along with the energy spine - a central reference line running through the price that pulses with momentum. This is the default mode and provides a balanced view of the energy state without overwhelming the chart.
Full mode enables all three field tiers and adds candle tinting, where the candle bodies themselves are colored according to the current energy state and direction. High-energy bars glow with the directional color while depleted bars take on neutral tones. This mode provides maximum visual information for traders who want to see the full energy picture at a glance.
SIGNAL MARKERS : WHAT EACH ONE MEANS
Diamond (below bar for bullish, above bar for bearish): This marks the bar where a qualified impulse was detected and energy was injected into the system. It tells you that the decay physics engine has been activated or refreshed with new energy. Not every strong candle produces a diamond - the cooldown system prevents clustering by enforcing a minimum number of bars between consecutive impulse markers.
EXH (cross shape, amber color): This marks the bar where the energy ratio dropped below the exhaustion threshold. It means the momentum that was driving price has fully depleted according to the decay model. These exhaustion points often coincide with areas where price pauses, reverses, or enters consolidation. The anti-repeat filter ensures that the same directional exhaustion does not fire consecutively without a change in context - either a new direction must establish or sufficient time must pass.
WEAK (triangle shape, orange color): This marks an energy divergence. It appears when price makes a new high (for bullish) or new low (for bearish) but the impulse energy behind that move is at least 25% weaker than the previous impulse in the same direction. The price is extending but the fuel behind it is diminishing. This is a momentum divergence detected purely through the energy physics model, not through any traditional oscillator comparison. When WEAK fires on the same bar as an impulse, the diamond marker is automatically suppressed because the WEAK label already communicates that an impulse occurred - it simply carried less energy than its predecessor.
EXHAUSTION MEMORY ZONES
When an exhaustion event occurs, the indicator stores the price range of that bar as a memory zone. These zones are rendered as semi-transparent colored rectangles that extend from the exhaustion bar to the right edge of the chart. Bullish exhaustion zones use the bullish theme color and bearish exhaustion zones use the bearish theme color.
These zones represent price levels where momentum previously failed to sustain. They often act as areas of interest for future price action because they mark locations where aggressive directional energy was fully consumed. Fresh zones appear more opaque and gradually fade as they age, eventually becoming fully transparent after the user-configured fade period.
The Max Zones Displayed setting controls how many zones appear simultaneously. Only the most recent zones are shown. The Zone Fade Period controls how many bars a zone remains visible before disappearing. A three-stage memory management system runs continuously to prevent the zone array from growing unbounded on long-history charts: old zones beyond twice the fade period are pruned, the array is capped at a safe maximum, and the rendering loop enforces a drawing budget to stay within platform limits.
THE DASHBOARD : EVERY ELEMENT EXPLAINED
The dashboard uses a fully opaque dark background that renders identically on both light and dark chart themes. Every cell has its own explicit background color so nothing is inherited from the chart environment.
ENERGY: A 16-character progress bar showing remaining energy as a visual fill gauge, followed by the numerical percentage. The bar transitions from bright green (charged) through cyan (active) to amber (decaying) to orange (fading) to red (depleted).
PHASE: Displays the current energy state classification. CHARGED means energy is above 70% - momentum is strong and active. ACTIVE means 45-70% - momentum is present and sustaining. DECAYING means 20-45% - momentum is fading but not yet spent. FADING means energy is above the exhaustion threshold but below 20% - momentum is weak. DEPLETED means energy has fallen below the exhaustion threshold - the current cycle has exhausted.
The directional bias (BULL, BEAR, or FLAT) appears alongside the phase to show which direction the current energy cycle belongs to.
E0 INITIAL: Shows the initial energy magnitude that was assigned to the current impulse cycle when it began. The classification label (Extreme, Strong, Moderate, Light) provides quick context about how powerful the originating impulse was.
HALF-LIFE: Displays the current half-life in bars - how long it takes for energy to decay to 50%. When adaptive half-life is enabled, this value changes with each impulse based on its strength. The ELP (elapsed) counter shows how many bars have passed since the last impulse event.
ETA TO EXH: The predicted number of bars remaining until energy reaches the exhaustion threshold. This is calculated by solving the decay equation for time. The visual countdown bar (filled and empty blocks) provides a quick gauge of how close exhaustion is. When the current cycle has already exhausted, this displays EXHAUSTED in red.
DECAY CURVE: A 20-character sparkline that projects how energy will diminish over approximately three half-lives into the future. Each character represents a future time step. The curve reads from left (current moment, marked by NOW) toward the right (future). Tall blocks indicate high energy, dots indicate near-zero energy. This gives traders a visual preview of the entire remaining decay trajectory at a glance.
IMPULSES / EXHAUSTIONS / DIVERGENCES: Lifetime counters showing how many of each event type have occurred since the indicator was loaded on the chart. These provide context about the current session's activity level.
CHART EXAMPLE
Chart 1: ENERGY FIELD DYNAMICS & IMPULSE DETECTION
What This Chart Represents
This chart demonstrates the Momentum Decay Field's core visual engine showing how the energy field expands, contracts, and morphs in real-time as momentum cycles through impulse, sustain, and decay phases.
Key Visual Elements Highlighted:
1. ENERGY FIELD COLOR MORPHING The aura transitions through three distinct color phases as energy decays:
- Bright directional color (green for bullish, magenta for bearish) = High energy (>55% remaining)
- Warm amber/orange = Mid-energy decay phase (20-55% remaining)
- Cool gray = Low energy, momentum nearly spent (<20% remaining)
2. FIELD WIDTH DYNAMICS The energy band's width is directly proportional to remaining energy:
Wide, expansive field = Strong active momentum with high kinetic energy
Contracting field = Energy decaying, momentum losing strength
Thin/collapsed field = Minimal momentum, approaching exhaustion
Width scales with ATR to adapt across all instruments and timeframes
3. IMPULSE SIGNAL MARKERS (Diamonds) Pink/Green diamond markers identify the exact bars where qualified momentum impulses occurred:
Below price = Bullish impulse (upward energy injection)
Above price = Bearish impulse (downward energy injection)
Each diamond represents a new E0 (initial energy) assignment
Cooldown system prevents marker clustering during volatile periods
4. MULTI-CYCLE MOMENTUM VISUALIZATION The chart captures several complete momentum lifecycles:
Fresh impulses creating wide, bright energy fields
Progressive decay causing field contraction and color shift
Direction changes showing energy field polarity reversals
Energy stacking when same-direction impulses occur during active cycles
5.ENERGY DIVERGENCE SIGNAL (WEAK Marker)
Orange triangle with "WEAK" label
Triangle Up Position (Below Price):
Signal Type: Bearish energy divergence
Location: Bottom of the move after the bullish run
What It Detected: Price made a new low BUT the impulse energy behind that low was 25%+ weaker than the previous bearish impulse
CHART 2: EXHAUSTION SIGNALS, MEMORY ZONES & DASHBOARD DEEP DIVE
What This Chart Represents
This chart demonstrates the complete signal ecosystem of the Momentum Decay Field indicator, showcasing exhaustion detection, energy divergence, memory zones, and a full dashboard metrics breakdown. The chart captures a Solana (SOL/USDT) 15-minute timeframe showing the transition from strong bearish momentum through exhaustion to reversal with weakening energy.
1. ENERGY FIELD EVOLUTION
LEFT SIDE (Early Period - 1:00 to 10:00):
Bright magenta field = Strong bearish energy active
Wide field width = High momentum magnitude
Color morphing visible = Transition from bright magenta → brown/amber as energy decays
Field shows downtrend = Bearish impulse energy driving price lower
2. EXHAUSTION SIGNAL (EXH Marker)
Meaning: Momentum energy fully depleted - energy ratio dropped below 8% threshold
Location: Above the price bars (bearish exhaustion that preceded the bullish reversal)
Trigger Conditions Met:
Energy ratio < 0.08 (exhaustion threshold)
Minimum E0 > 0.5 (filters noise)
Minimum 3 bars elapsed since impulse
Cooldown period satisfied (8 bars between signals)
Anti-repeat filter passed (different direction or sufficient time gap)
What Happened Here: The strong bearish momentum (magenta field on left) progressively decayed until energy was fully consumed. The EXH marker fired at the exact bar where the decay equation calculated remaining energy had fallen below the 8% threshold.
3. EXHAUSTION MEMORY ZONE (Green Rectangle)
Large semi-transparent green box
Zone Type: Bullish exhaustion memory zone
Price Range: Captures the high-low range of the bar where bullish momentum exhausted
Color: Green with ~92% opacity at creation, fading over time
Border: Green border at ~78% opacity
Extension: Extends from exhaustion bar to right edge of chart (+10 bars beyond current)
Why It Matters: Price levels where momentum exhausted represent areas where directional energy was fully consumed. Market often "remembers" these levels as they frequently become magnets for future price action, areas of consolidation, or reversal zones.
4.ENERGY SPINE (Coloured Line Through Price Center)
Visible as dark line running through candle midpoints:
Technical Details:
Plots at hlc3 (average of high, low, close)
Color matches field color, opacity varies with energy level
Only visible when energy > 12%
Provides visual anchor showing momentum center of gravity
Style: Line breaks (plot.style_linebr) to avoid connecting across gaps
Purpose: The spine acts as a dynamic momentum equilibrium line. When field is wide, spine shows the center of energy distribution. As field contracts, spine becomes the last visible element before total energy depletion. Helps traders identify the core momentum flow without relying solely on field boundaries.
RECOMMENDED SETTINGS AND TIMEFRAMES
The default settings are calibrated for intraday trading on timeframes between 1 minute and 15 minutes. The indicator works on all timeframes and all instruments but the default parameters are optimized for the pace of day trading where impulse-to-exhaustion cycles complete within a visible chart window.
For scalping on 1-minute charts, consider reducing the Base Half-Life to 5-6 bars and the Impulse Lookback to 8-10. This makes the system more responsive to the rapid impulse cycles on lower timeframes.-
For swing trading on 1-hour or 4-hour charts, consider increasing the Base Half-Life to 12-16 bars and the Impulse Threshold to 2.0-2.5. This filters out intrabar noise and focuses on only the most significant impulses that drive multi-hour moves.
For daily charts, increase the Half-Life to 15-20 bars and enable Adaptive Half-Life to let strong institutional moves sustain their field across multiple sessions.
The Volume Weighting option is recommended to be kept enabled on instruments with reliable volume data (stocks, futures, major crypto pairs). For forex pairs where volume represents tick count rather than actual traded volume, consider disabling it or treating it as a secondary factor.
THOUGHT BEHIND THE INDICATOR
The concept originated from a simple observation: every momentum move in the market follows a lifecycle that mirrors energy decay in physics. A strong impulse starts with maximum energy, sustains for a period, then gradually loses force until it is fully spent. Traditional momentum indicators attempt to measure this through oscillators that lag behind price. MDF takes a fundamentally different approach by modeling the decay process itself using established physics rather than measuring its symptoms through lagging mathematical transformations.
The exponential decay model was chosen specifically because it matches the empirical behavior of momentum in financial markets. Momentum does not decay linearly - it holds relatively steady in the early phase after an impulse, then accelerates its decline as it approaches exhaustion. This is precisely the shape of an exponential decay curve and is why the half-life model produces a more accurate representation than a simple moving average or percentage-based countdown.
The energy divergence detection was added after observing that many trend reversals are preceded by a sequence of price extremes with diminishing impulse energy. The price chart shows strength (higher highs or lower lows) while the underlying energy tells a different story (each push requires less fuel). This hidden weakness is invisible on a standard chart but becomes immediately apparent when measured through the energy model.
WHAT THIS INDICATOR DOES NOT DO
This indicator does not generate buy or sell signals. It does not tell you when to enter or exit a trade. It does not predict future price direction. It measures and visualizes the current state of momentum energy to help you make more informed decisions within your own trading framework.
The exhaustion markers identify zones where momentum energy has depleted according to the physics model. Price may reverse at these zones, consolidate, or continue in the same direction after a new impulse injects fresh energy. The markers are informational reference points, not trading signals.
The energy divergence detection (WEAK markers) highlights instances where price extremes are driven by weakening energy. This is an observation about momentum quality, not a prediction about price direction. Divergences can persist through multiple cycles before price responds.
NON REPAINT BEHAVIOUR
Every calculation in this indicator uses only confirmed bar data (open, high, low, close, volume) from completed bars. No future data is referenced. No calculations change retroactively after a bar closes. The impulse detection, energy assignment, decay computation, exhaustion detection, and divergence detection all operate exclusively on confirmed historical data. What you see on a closed bar will never change.
DISCLAIMER
Trading financial instruments involves substantial risk of loss. Past energy states and exhaustion patterns do not guarantee future price behavior. This tool visualizes momentum dynamics to support analysis - it does not provide financial advice. The author assumes no responsibility for trading decisions or losses. Always employ proper risk management and never risk capital you cannot afford to lose.
- BullByte Indicador

Elliott Wave (Experimental) [UAlgo]Elliott Wave (Experimental) is an automated swing based Elliott Wave scanner that attempts to classify recent market structure into common motive and corrective wave patterns. The script first converts price into a cleaned swing sequence using pivot confirmation and a minimum swing percentage filter. It then runs a two pass detection process that prioritizes five wave patterns first and fills remaining gaps with three wave corrective structures. Each detected pattern is validated with a rule engine, assigned a confidence score using Fibonacci ratio proximity, and rendered on the chart with wave labels, wave lines, optional channels, and optional Fibonacci projection targets.
This indicator is labeled experimental by design. Elliott Wave interpretation is inherently probabilistic and can vary between analysts, so the script focuses on transparent, rule driven validation and a confidence model that helps you judge the quality of each detected structure. Instead of presenting a single rigid count, it can render multiple detected patterns in the swing history and then highlights the latest one in a dashboard with direction, confidence, rule pass ratio, and a next target estimate.
🔹 Features
1) Swing Engine with Pivot Confirmation and Minimum Move Filter
The foundation of the scanner is a zigzag style swing engine. Swings are built from pivot highs and pivot lows confirmed by a configurable lookback. A Min Swing percent filter ensures that only meaningful moves are added as new swings. When consecutive pivots of the same type appear, the engine keeps only the better extreme, which helps reduce noise.
This creates a stable swing sequence that becomes the input for all wave pattern validators.
2) Multiple Pattern Families Supported
The scanner supports a wide set of Elliott structures, each enabled or disabled by inputs:
Impulse 1 2 3 4 5
Diagonal leading or ending with contracting or expanding classification
Zigzag ABC with a 5 3 5 style model
Flat ABC with regular expanded and running classification
Triangle ABCDE with contracting or expanding detection
Combination WXY for double three style sequences
Because patterns can overlap, the script uses a two pass orchestration that gives five wave structures priority, then looks for three wave structures in unused swing segments.
3) Rule Engine with Transparent Results
Each validator returns a WavePattern object that contains:
Wave list with labeled segments
A pattern type tag
Direction bullish or bearish
Validation state
Confidence score
Detailed rule results with pass and fail status and descriptive text
Rules implement common academic guidelines, such as Wave 2 not exceeding Wave 1 origin, Wave 3 not being the shortest, diagonal overlap behavior, and triangle containment conditions.
A relaxed overlap option can be enabled to allow minor Wave 4 overlap into Wave 1 territory when analyzing leveraged or futures markets where strict cash market rules may be less reliable.
4) Fibonacci Based Confidence Scoring
When a pattern passes its core rules, it receives a confidence score based on how close key measured ratios are to common Fibonacci ideals. The score is designed to reward clean proportionality and alternation behavior, while penalizing overlap or weak impulse characteristics.
Confidence is shown in the dashboard and is also mapped to a color for fast interpretation.
5) Rich Chart Rendering with Optional Components
Detected patterns can render several layers of visuals:
Wave lines connecting swing points
Wave labels placed above highs and below lows
Optional wave channel for motive patterns
Optional Fibonacci projection levels with labels
A developing dashed leg from the last confirmed swing to the current bar to indicate the incomplete swing path
A dotted background zigzag to show the underlying swing structure that drives detection
All drawings are rebuilt on the last bar to keep the chart clean and ensure only the current best set of objects remains visible.
6) Fibonacci Projection Engine for Next Targets
The script generates forward projection levels based on pattern type:
After an impulse, it projects common correction retracement levels of the full impulse
After ABC patterns, it projects trend resumption extensions based on Wave A length
After triangles, it projects post triangle thrust targets
The first projection is used as the next target value in the dashboard.
7) Dashboard Summary for the Latest Pattern
A compact dashboard shows the latest detected pattern with:
Pattern name
Direction
Confidence percent
Active wave label
Rules passed count over total rules
Next target from the projection list
Patterns found count and total swings count
This dashboard is designed to provide a quick situational read without requiring you to inspect every label and line manually.
🔹 Calculations
1) Swing Detection and State Management
Swings are detected using pivot highs and lows with symmetric confirmation:
float ph = ta.pivothigh(high, i_pLen, i_pLen)
float pl = ta.pivotlow(low, i_pLen, i_pLen)
When a pivot is found, a WavePoint is constructed at the pivot bar index and time, then passed into the swing engine. The engine enforces alternation and minimum percent change:
If the new pivot is the same type as the last swing, the more extreme point replaces it
If the pivot is the opposite type, it is only accepted if percent change exceeds Min Swing percent
This percent change filter is computed as:
absolute difference between swing prices divided by last swing price times 100
The swing list is capped to a maximum size to limit memory and improve stability.
2) Two Pass Pattern Orchestration with Segment Claiming
The scanner evaluates swing sequences and constructs patterns in two passes:
Pass 1 scans for five wave patterns such as impulse diagonal and triangle. If a valid pattern is found, its swing segment is marked as used so later scans do not overlap it.
Pass 2 scans the remaining unused segments for three wave patterns such as zigzag flat and combination.
This approach reduces overlapping detections and prioritizes larger motive structures.
3) Impulse Validation Rules and Measurements
Impulse detection uses six swing points p0 through p5, producing five waves. It validates:
Wave 2 does not retrace beyond Wave 1 origin
Wave 3 is not the shortest among Waves 1 3 5
Wave 4 does not overlap Wave 1 territory unless relaxed mode is enabled
Wave 3 exceeds the end of Wave 1
Wave 5 generally progresses beyond Wave 3 with tolerance for truncation strength
Wave 3 shows impulse like momentum using a slope proxy based on wave length divided by bar length
Wave ratios are then computed for confidence scoring:
Wave 2 retracement relative to Wave 1
Wave 3 extension relative to Wave 1
Wave 4 retracement relative to Wave 3
Wave 5 extension relative to Wave 3
Wave 5 equality relative to Wave 1
Fibonacci closeness is computed by measuring distance to a list of ideal ratios and converting it into a percent score.
4) Diagonal Validation and Contracting Expanding Classification
Diagonal validation also uses six points. It enforces overlap between Wave 4 and Wave 1 as a defining feature, plus containment rules and the requirement that Wave 5 exceeds Wave 3. It then classifies:
Contracting diagonal when wave lengths shrink in a structured way
Expanding diagonal when wave lengths grow in a structured way
A confidence score is computed using retracement ratios and a momentum decrease check for contracting diagonals.
5) Corrective Pattern Validators
Zigzag ABC validator checks:
Wave B does not exceed Wave A origin
Wave A has a stronger slope than Wave B as an impulse proxy
Wave C ends beyond Wave A
Wave B retracement remains within a tolerance range
Flat ABC validator checks:
Wave B retraces at least 90 percent of Wave A
Classifies regular expanded or running based on whether B exceeds the origin and whether C exceeds A
Requires C to reach or exceed A for regular and expanded cases
Triangle ABCDE validator checks:
Contracting triangle containment of C within A D within B and E within C plus shrinking wave sizes
Expanding triangle growth conditions
Corrective character proxy based on overlap
Combination WXY validator checks:
X does not exceed W origin
W is not triangle like using a size relationship proxy
W and Y proportionality and sideways character checks
X retracement within corrective bounds
Each validator returns rule results and a confidence score when valid.
6) Fibonacci Projection Logic
After detection, the script adds projections to the latest pattern:
For impulse patterns, it projects correction retracement levels of the full impulse: 38.2 percent, 50 percent, 61.8 percent
For ABC patterns, it projects 100 percent and 161.8 percent extensions based on Wave A length
For triangles, it projects thrust targets based on Wave A length
Projection prices are computed by adding or subtracting a multiple of a reference wave length from the last wave end price, depending on detected direction.
7) Rendering and Object Management
On the last bar, the script deletes previous drawing objects and renders the current scan results. Rendering includes:
Wave lines with motive waves in bullish or bearish color and corrective waves in corrective color
Wave labels placed above highs and below lows
Optional wave channel using the wave 2 to wave 4 line and a parallel through wave 3
Fibonacci projection lines and labels extending forward
A developing dashed leg from last confirmed swing to current price proxy
A dotted zigzag reference connecting all swings
This ensures the chart remains responsive and avoids accumulating outdated drawings. Indicador

MST Medio v1.0MST Medio — 3-Phase Price Action Confirmation
MST Medio is a structured price action indicator that detects high-probability reversal entries using a 3-phase confirmation process: Break → Confirm → Retest. It waits for a confirmed Higher High / Lower Low, validates the impulse wave, then triggers only when price retests the key level.
No repainting. No lagging indicators. Pure price action logic built on swing structure.
────────────────
How It Works
Phase 1 — Break
Price forms a Higher High (HH) above the previous Swing High, or a Lower Low (LL) below the previous Swing Low. The break must pass two filters:
Break Strength — The break distance must exceed a minimum percentage of the previous swing range (configurable, default 0.25×).
Impulse Body Filter — The first candle closing beyond the old high/low must have a body ≥ 1.5× the 20-bar average body. This ensures the break is driven by momentum, not a weak drift.
The indicator then identifies the W1 impulse wave — the highest high (BUY) or lowest low (SELL) from the break candle until the first opposing candle.
Phase 2 — Confirm
After the impulse wave, price must pull back and then close beyond the W1 peak (for BUY) or below the W1 trough (for SELL). This confirms that momentum has resumed after the correction.
Invalidation rules:
Price returns to the entry level (old SH/SL) before confirmation → structure broken, cancel.
Price hits the Stop Loss level → cancel.
Phase 3 — Retest Entry
Once confirmed, the indicator waits for price to retest the original Swing High (BUY) or Swing Low (SELL). This is your entry point — buying at the old resistance turned support, or selling at the old support turned resistance.
Invalidation rules:
Price hits Stop Loss → cancel.
Price breaks below the W1 trough (BUY) or above the W1 peak (SELL) → cancel.
────────────────
Visual Elements
Entry / SL / TP lines (dashed) — Drawn at signal confirmation with labels showing levels and R:R ratio.
Risk/Reward zones — Colored boxes: red zone (Entry → SL) and green zone (Entry → TP) for instant visual assessment.
Confirm Break label — "▲ Confirm Break" / "▼ Confirm Break" at the wave confirmation candle.
Pending state — Dotted lines and phase labels ("Phase 1 BUY", "Phase 2 SELL") showing the indicator is tracking a potential setup before it triggers.
Swing markers (optional) — Small triangles at detected pivot highs and lows.
────────────────
Take Profit Logic
TP is placed at the high of the Confirm Break candle (BUY) or the low of the Confirm Break candle (SELL). This represents the point where momentum was confirmed — a natural target that aligns with the structure of the move.
────────────────
Inputs
Pivot Lookback (default: 5) — Bars left/right to confirm a swing point. Higher values = fewer but stronger pivots.
Break Strength (default: 0.25) — Break distance must be ≥ this multiple of the previous swing range. Set 0 to disable.
Impulse Body Filter (default: 1.5) — The break candle body must be ≥ this multiple of the 20-bar average body. Set 0 to disable.
Show Entry / SL / TP Lines — Toggle dashed level lines and labels.
Show Risk/Reward Zones — Toggle colored risk/reward boxes.
Show Pending State — Toggle the dotted lines and phase labels for setups being tracked.
Show Confirm Break Label — Toggle the confirmation label.
Show Swing Points — Toggle swing high/low markers on the chart.
Full color customization for all visual elements.
────────────────
Alerts
BUY Signal — Fires when Phase 3 retest is triggered on a bullish setup.
SELL Signal — Fires when Phase 3 retest is triggered on a bearish setup.
Any Signal — Fires on either direction.
────────────────
Notes
Works on all timeframes and all instruments.
Non-repainting — All signals use confirmed (closed) pivots. No lookahead.
This is a detection tool , not a strategy. Use it alongside your own risk management and confluence analysis.
Best suited for trending markets where HH/LL structures form clean impulse waves.
The 3-phase confirmation significantly reduces false signals compared to raw breakout detection.
Indicador

Indicador
