Strong GEX Liquidations | ProjectSyndicateStrong GEX Liquidations maps the one thing a liquidity trader actually wants to see — where over-leveraged positions get force-closed — and prints it as heat. Every meaningful burst of positioning projects a ladder of liquidation prices; wherever those projections stack, a wall forms, and the indicator paints a hot beam there. A thin build prints a faint magenta thread. A heavy, stacked cluster prints a bright, teal-hot beam that says a cascade is loaded at that level. Your chart stays clean — ranked liquidation beams and nothing else — while the engine measures the leverage build-up underneath, across your entire lookback.
Most volatility and support/resistance tools draw a level and leave you to guess which one matters. This one grades the wall, ranks it, and tells you which side is trapped.
XAUUSD
💥 The Liquidation Engine — the core. On every bar, the tool reads a size proxy — volume, or volume × range as an open-interest stand-in — and flags the bars where leverage genuinely piled in (a volume spike over its adaptive baseline, optionally weighted by how fast the proxy is accelerating, the way real ∆OI behaves). Each flagged bar becomes a trigger: a place where a crowd took a position that now has a stop the market can hunt. Quiet bars print nothing. Only real build-up feeds the map.
⚡ Leverage-Tier Projection — where the levels come from. From every trigger price the engine projects the exact prices at which that crowd blows out, tier by tier: longs are force-closed BELOW at price × (1 − mm / L), shorts ABOVE at price × (1 + mm / L), for 5× / 10× / 25× / 50× / 100× leverage. 100× liquidations hug price; 5× sit far away. A realistic maintenance factor fires each one slightly before the naive 1/L move. Toggle any tier on or off, and restrict the map to longs-below, shorts-above, or both.
🌡️ Power Heatmap — the signature read. Every projection is binned to a price row, and overlapping projections STACK — that is precisely how a wall forms: many liquidations at one level equals high power. Power is then double-encoded so you can read it from across the room. Colour: a magenta → blue → teal gradient (magenta is a light poke, teal is a loaded wall). Label: a ranked strength score on the strongest levels. A faint magenta thread is a shrug; a bright teal beam is a level the whole market can feel. Hotter equals more stacked, no interpretation required.
🏷️ Strength Ranking — labels on both ends. The heavy walls carry a full read-out at the price axis — ★ stars, an X/10 score, a tier (WIPEOUT / HEAVY / STRONG / MEDIUM / LIGHT), the side that is trapped (▲ SHORT-LIQ above price, ▼ LONG-LIQ below), the dominant leverage tier that built the wall, and its distance from spot. A compact tag on the left end marks where the wall first formed. Labels are placed strongest-first with enforced vertical spacing, so the heavy levels always win the real estate and text never stacks into a blur.
📍 Wall Stacking & Anchoring — one clean beam per level. A cluster of projections at nearly the same price is collapsed to a single crest and drawn as one beam, not a smear of overlapping lines. Each beam is anchored where its build-up first formed and extends right to the live bar, so you can see when the wall was laid down. Levels price has already traded through are dimmed — their liquidations were taken — while untouched walls stay bright.
🧼 Clean-Chart Discipline — heat and nothing else. No moving-average spaghetti, no band lines across price, no dashboard, no stat panel. Just the ranked liquidation beams, their strength labels, and a faint current-price guide. A tight set of declutter controls — max beams, minimum power, beam separation and label spacing — keeps only the levels that matter on screen. Everything else lives in the alerts.
🎨 Fully Themed & Configurable. Custom low / mid / high power colours; beam thickness, glow layers, core and weak opacity, and power contrast; scan resolution and range padding (how far out-of-range to project far-leverage walls); the volume baseline, trigger-spike multiplier, OI-acceleration weighting and recency emphasis; the maintenance factor and per-tier leverage toggles; max beams, minimum-power cutoff and beam separation; beam anchoring (where it formed vs full lookback) and right-extension; consumed-level dimming; and the full label controls — count, spacing, minimum strength, dominant-leverage tag and size.
🔒 Honest, Synthetic Core. This is a behavioural reconstruction, not a live exchange feed: it infers where leverage sits from price and volume, so it runs on any market, but it does not read real order books or open interest. The map is a live snapshot — it recomputes on the last bar as fresh build-up arrives. A level's price is fixed by the leverage maths the moment its trigger closes, but its relative power and heat can re-rank as new, larger walls appear and the strongest-wall scale shifts. It is a risk-awareness and attention tool for ranking where the market is trapped — not a backtested edge and not a promise that price will react at any level.
BTCUSD
🔔 Native Alerts. Approaching Short-Liq Wall and Approaching Long-Liq Wall fire as price closes in on a strong wall above or below; Short-Liq Cascade and Long-Liq Cascade fire the moment price actually reaches one — the point where a squeeze or a flush can ignite. Set the wall-strength threshold once and let the chart stay silent until price is near real trapped size.
🎯 Why this is different. A raw support/resistance line is static and un-graded — you eyeball a touch and guess. A liquidation feed is powerful but costs money and only exists for a handful of crypto pairs. Strong GEX Liquidations reconstructs the same idea from price and volume: it projects the actual leverage-liquidation prices, stacks them into walls, ranks each wall by power, and tells you which side is trapped and at what leverage — on any symbol, at any timeframe.
🚀 Apply to Gold (XAUUSD), Silver, Forex, Crypto, Indices and Futures on any timeframe. Because levels are projected from leverage maths and stacked by a volatility-normalised power score, the read travels across symbols without re-tuning; volume-weighted markets sharpen it where the tape carries clean volume.
💡 Cleanest setup: raise Min Power and lower Max Beams so only the heavy walls survive; widen Beam Separation and Label Spacing for a de-cluttered map; keep the near tiers (50× / 100×) on to see the walls price is most likely to reach soon, and the far tiers (5× / 10×) on to see the deeper magnets; raise the Trigger Spike to build walls only from genuine leverage bursts.
USDJPY
🎯 How To Trade It — Two Approaches
Everything hinges on one read: where is the trapped size, and is price being pulled into it or repelled by it?
🧲 1) Trade toward the wall — the liquidity magnet
Use when a strong, untested wall sits above or below and price has room to run at it.
Mark the heavy walls — teal, WIPEOUT / HEAVY beams are where the most leverage is stacked; price is frequently drawn toward that liquidity.
Read the side — a strong ▲ SHORT-LIQ wall above is fuel for a squeeze up; a strong ▼ LONG-LIQ wall below is fuel for a flush down.
Trigger: position in the direction of the nearest untested heavy wall, with structure or momentum agreeing; the Approaching alert flags the run-in.
Target: the wall itself, then the next unstretched level beyond it. A cascade often over-runs the wall before settling.
Stop: on the far side of the setup that argued for the move, not inside the wall.
🧱 2) Fade the wall — the barrier that repels
Use on first contact with a dense, untested wall while price arrives tired.
A large, tightly stacked cluster can act as a temporary barrier that repels price on the first tap — the classic "wall" behaviour.
Trigger: fade the first touch back toward the mean, ideally when price arrives over-extended and the wall is WIPEOUT-tier.
Invalidation: acceptance through the wall. Once price closes decisively beyond a heavy level, the trapped side is being taken — that is a cascade, not a rejection, so stand aside or flip with it.
✋ Stand down — the map says wait
Thin, magenta beams are minor build-up, not walls. Nothing to lean on.
Already-consumed (dimmed) levels have had their liquidations taken — they carry far less fuel.
No strong wall near price, or price mid-range between clusters — wait for contact with a ranked wall and let the alert bring you in.
Rule of thumb: 🔥 Strong untested wall + price running at it → trade toward the magnet, target the wall. 🧱 Dense wall + tired arrival on first touch → fade back to the mean until acceptance proves otherwise. ❄️ Thin or consumed levels, or no wall near price → stand down until the heat lines up. Wskaźnik

Trinity Reversal Pattern [AlgoAlpha]🟠 OVERVIEW
Trinity Reversal Pattern identifies three-candle reversal structures and marks the price extreme associated with each detected setup. It is designed to separate structured reversal patterns from isolated bullish or bearish candles.
Each valid pattern receives a strength score based on the signal candle's body relative to the largest candle body within a selected lookback. The resulting reversal level remains active until price returns to it or the level reaches its selected expiry. An optional EMA trend filter can restrict patterns to the current trend direction.
🟠 CONCEPTS
Bullish Trinity Reversal — A three-candle structure that begins with two bearish candles. The middle candle trades below the first candle's low while remaining below its high. The third candle closes bullish and extends above the first candle's high. The lowest price across the three candles becomes the bullish reversal level.
Bearish Trinity Reversal — The inverse structure. It begins with two bullish candles, with the middle candle trading above the first candle's high while remaining above its low. The third candle closes bearish and extends below the first candle's low. The highest price across the three candles becomes the bearish reversal level.
Signal Strength — The absolute body size of the signal candle divided by the largest candle body found within the selected Strength Lookback, expressed as a percentage. A value near 100% means the signal candle is close to the largest recent body. This measures relative candle-body strength, not reversal probability or historical win rate.
Reversal Level — The lowest point of a bullish three-candle pattern or the highest point of a bearish pattern. It marks the price extreme associated with the reversal structure and stays active until touched or expired.
EMA Trend Filter — An optional directional filter based on fast and slow EMAs. A fast EMA cross above the slow EMA establishes the bullish state, while a cross below establishes the bearish state. When enabled, bullish patterns are accepted only during the bullish state and bearish patterns only during the bearish state.
🟠 FEATURES
Trinity Reversal Signals — Bullish and bearish markers identify completed three-candle reversal structures directly on the chart.
Reversal Levels — Each detected setup creates a level at its three-candle price extreme. Active levels extend forward and become dotted after they are touched or expire.
Strength Labels — Active reversal levels can display their fixed signal strength percentage for quick comparison between setups.
EMA Trend Gradient — Optional fast and slow EMA lines display the active trend state with a gradient between them.
🟠 HOW TO USE
Watch for a bullish marker after a three-candle downside structure or a bearish marker after the corresponding upside structure.
Compare the strength labels between signals. Higher values mean the signal candle has a larger body relative to the recent candle bodies in the selected lookback.
Increase Minimum Signal Strength to remove patterns with weaker signal candles. Lower it to include a broader range of detected structures.
Treat an active reversal level as the price extreme linked to its original setup. A later wick reaching that price counts as a touch and stops the level from remaining active.
Adjust Level Expiry Bars to control how long untouched reversal levels remain active. Shorter values focus on recent setups, while longer values preserve levels for more bars.
Enable the EMA Trend Filter when you want signals aligned with the current EMA state. In a bullish EMA state, only bullish Trinity patterns are accepted. In a bearish EMA state, only bearish patterns are accepted.
Enable Confirm Signals on Close when you want a pattern to be confirmed only after its signal candle closes. Disabling it allows the current candle to produce a signal before the bar is complete, so the signal can change while the candle develops.
Use alerts to track bullish or bearish Trinity signals, touches of active reversal levels, level expirations, and EMA trend crosses without continuously watching the chart.
🟠 CONCLUSION
Trinity Reversal Pattern combines three-candle reversal structures, relative candle-body strength, persistent reversal levels, and an optional EMA trend filter. It gives traders a structured way to identify reversal setups, compare their relative strength, and track whether their associated price extremes remain active or are revisited.
Wskaźnik

EWMAC Trend Signals [QuantAlgo]🟢 Overview
The EWMAC Trend Signals is a trend-following indicator built on exponentially weighted moving average crossovers (EWMAC), a staple trend rule in systematic futures trading. In that setting, the rule typically runs across many markets at several speeds at once. Each reading is divided by volatility, so a trend's strength, not just its direction, sets how much exposure to take. That design is why it anchors this indicator: fast speeds respond to new trends sooner, slow speeds stay with longer ones, and volatility scaling keeps readings comparable from quiet stock indices to volatile crypto. Up to six EWMAC speeds blend into one trend score that drives bullish, bearish, and neutral signals through a hysteresis band, so traders can follow established trends through shallow pullbacks on any asset and any interval.
🟢 How It Works
Each EWMAC rule compares a fast EMA with a slow EMA spanning four times as many bars, so the gap between them widens as a trend develops and narrows as it fades. To give that gap the same meaning on any market, it is divided by a volatility unit built from the standard deviation of log returns, blended with a share of its long-run average. The result is rescaled to target an average absolute score of 10, either adaptively from the rule's own recent history or from a fixed factor based on its span. It is then capped to limit how far any single speed can pull the blend:
ewmacRule(float src, simple int fastLen, float riskUnit, simple int scaleLen, bool adaptive, float cap) =>
float fastMa = ta.ema(src, fastLen)
float slowMa = ta.ema(src, fastLen * 4)
float raw = (fastMa - slowMa) / math.max(riskUnit, 0.0000000001)
float avgAbs = ta.sma(math.abs(raw), scaleLen)
float fixedScale = 15.0 / math.sqrt(fastLen)
float scaleFactor = adaptive and not na(avgAbs) ? 10.0 / math.max(avgAbs, 0.0000000001) : fixedScale
float score = math.max(math.min(raw * scaleFactor, cap), -cap)
float midpoint = (fastMa + slowMa) / 2.0
Up to six rules run at geometrically spaced speeds, from 2/8 through 64/256 bars by default, and their scores are combined by weight into a single trend score. Averaging partially correlated rules shrinks the result, so a diversification multiplier restores the scale based on how many rules are active, or a manual value. The same weights average each rule's EMA midpoint into the trend line plotted on price:
float divMultiplier = multiplierIn > 0.0 ? multiplierIn : multiplierTable
float trendScoreRaw = weightSum > 0.0 ? scoreSum / weightSum * divMultiplier : 0.0
float trendScore = math.max(math.min(trendScoreRaw, scoreCap), -scoreCap)
float trendLine = weightSum > 0.0 ? lineSum / weightSum : srcSafe
The trend score then drives the signals. A bullish signal confirms when the score rises above the entry threshold, and a bearish signal confirms when it falls below the negative threshold. The exit level sits at a fraction of the entry threshold, forming a hysteresis band. With the neutral state enabled, a signal holds while trend strength eases and releases to neutral only once the score fades back through that level:
float exitTh = entryTh * exitFrac
var int signalState = 0
if barstate.isconfirmed
if trendScore > entryTh and signalState != 1
signalState := 1
else if trendScore < -entryTh and signalState != -1
signalState := -1
else if useNeutral and signalState == 1 and trendScore < exitTh
signalState := 0
else if useNeutral and signalState == -1 and trendScore > -exitTh
signalState := 0
🟢 Signal Interpretation
▶ Bullish Trend (Green/Bullish palette): When the trend score rises above the entry threshold on a confirmed bar, the indicator enters bullish mode. Bullish coloring applies across the trend line, neon glow, signal readout, price bars, and optional background. The signal holds while the score stays above the exit level, so pullbacks that only ease trend strength pass without releasing it. With the neutral state disabled, it holds until a bearish signal confirms. Trend traders can read the turn into bullish as a long bias or continuation cue, with the trend line as a dynamic reference for the prevailing trend.
▶ Bearish Trend (Red/Bearish palette): When the trend score falls below the negative entry threshold on a confirmed bar, the indicator enters bearish mode with bearish coloring across all visual elements. The signal holds while the score stays below the negative exit level. With the neutral state disabled, it holds until a bullish signal confirms. Trend traders can read the turn into bearish as a short bias or a cue to exit long exposure.
▶ Neutral (Gray/Neutral palette): With Use Neutral State enabled, a bullish or bearish signal releases to neutral once the trend score fades back through the exit level. This marks a trend that has lost strength without a confirmed reversal. Neutral also covers the warm-up period before the first signal confirms. Trend traders can use neutral phases to stand aside or manage open positions until the score commits to a direction again.
🟢 Features
▶ Preconfigured Presets: Three parameter sets cover different trading approaches. "Default" uses the manual settings, starting with Rules 2 to 5 active and a moderate entry threshold for swing trading on 4-hour and daily charts. "Fast Response" activates Rules 1 to 4, shortens the volatility and scaling windows, lowers the entry threshold, and narrows the hysteresis band. It suits intraday charts from 5-minute to 1-hour, where earlier signals matter more than fewer flips. "Smooth Trend" activates Rules 4 to 6, lengthens the volatility and scaling windows, raises the entry threshold, and widens the hysteresis band. It suits position trading on daily and weekly timeframes, where false signals are more costly than delayed ones. Selecting a preset overrides the active rules along with the corresponding volatility, scaling, and signal inputs.
▶ Built-in Alerts: Four alert conditions cover every signal change. "Bullish Trend Signal" fires on the confirmed bar where the signal turns bullish. "Bearish Trend Signal" fires on the confirmed bar where it turns bearish. "Neutral Trend Signal" fires when a bullish or bearish signal releases to neutral. "Trend Signal Changed" combines all three into a single condition for traders who want one notification for any change. Alerts continue to work even when the signal readout is hidden.
▶ Visual Customization: Six color presets (Classic, Aqua, Cosmic, Cyber, Neon, and Custom) apply coordinated bullish and bearish color schemes across the trend line, neon glow, signal readout, and bar and background coloring. Custom also lets you set the neutral color. The trend line offers an adjustable width and an optional neon glow effect. The signal readout labels the active signal as Bullish, Bearish, or Neutral at the end of the trend line in a selectable text size. Bar coloring tints price candles with the active signal color at a configurable transparency level, and background coloring extends that tint across the full chart pane.
Wskaźnik

MACD + Impulse MACD - Normalized Momentum ScaleThis indicator brings two complementary momentum frameworks — standard Price MACD and Impulse MACD — into one shared, normalized momentum environment. The result is a view that goes beyond a single crossover or histogram reading: it lets you see how two different expressions of momentum are behaving together, where they agree, where they diverge, which one is leading, how strongly each is expanding or contracting, and whether that relationship is being reinforced by the developing higher timeframe.
At the center of the design is the Normalized Momentum Scale (NMS), which places both MACD families on the same fixed -100 to +100 coordinate. That common scale is what makes the comparison meaningful. Instead of looking at two separate indicators with unrelated native magnitudes, the script lets their lines, signals, histograms, crossover age, and higher-timeframe context coexist in one visual framework.
The standard Price MACD side captures the familiar relationship between fast and slow exponential averages of Close. The Impulse MACD side approaches momentum differently, using a smoothed High/Low envelope and a zero-lag EMA centerline to distinguish movement occurring inside that envelope from movement extending beyond it. This implementation was inspired by LazyBear's Impulse MACD concept:
Those differences are exactly what make the pairing useful. The goal is not to make standard MACD and Impulse MACD behave alike, but to give them a common language for magnitude and direction. When both expand together, when one begins to roll over before the other, when their histograms disagree, or when the developing higher timeframe confirms one side of the picture, those relationships become much easier to see and interpret.
➖The Normalized Momentum Scale➖
The core of the indicator is the Normalized Momentum Scale, or NMS. Each raw MACD-derived value is first divided by ATR14. This changes the question from:
“How many price units apart are these values?” to: “How large is this momentum displacement relative to the instrument's current volatility?”
That first normalization step makes the measurement substantially more portable across instruments and timeframes. But simply plotting ATR-normalized values on a linear scale creates another problem. Most ordinary momentum activity remains clustered relatively close to zero, while occasional large expansions can stretch the scale dramatically. NMS addresses that by applying a monotonic nonlinear transfer to the ATR-relative value and mapping it onto a fixed -100 to +100 coordinate. The scale deliberately provides more visual resolution through the region where momentum spends most of its time, while progressively compressing increasingly uncommon volatility-relative excursions toward the outer limits.
Its principal absolute-value calibration points are 0.70 ATR → 34, 1.25 ATR → 55, 2.50 ATR → 65, 4.00 ATR → 75, 7.00 ATR → 89, 12.0 ATR → 95, and 20.0 ATR → 100.
This is not a percentage scale, probability scale, RSI-style oscillator, or automatic overbought/oversold model. A reading of 75 does not mean “75% bullish.” It means that the underlying momentum displacement has reached a particular standardized magnitude relative to prevailing volatility. Because the transformation is monotonic, the ordering of MACD and its Signal is preserved. A bullish MACD crossover before normalization remains a bullish crossover after normalization.
➖Standard MACD➖
The standard MACD side defaults to the familiar 12 / 26 / 9 configuration, with all three lengths exposed in Settings. MACD and MACD Signal are independently normalized against ATR14 and then mapped through NMS. This preserves their crossover relationship while placing both lines on the common -100 to +100 momentum coordinate. The shaded region between them makes expansion and contraction easier to see. When MACD leads Signal, the pair assumes the bullish family color; when Signal leads MACD, it assumes the bearish family color.
The MACD Histogram is treated separately and importantly. The script first calculates the true raw histogram — MACD minus Signal — before normalization. That raw difference is then divided by ATR14 and independently mapped through NMS. This matters because subtracting two values after they have already passed through a nonlinear scale would distort the actual histogram magnitude.
➖Impulse MACD➖
Impulse MACD provides a second view of momentum. Its default architecture uses a 34-period smoothed High/Low envelope, a 34-period zero-lag EMA centerline, and a 9-period Signal. Both lengths are user-adjustable. The Impulse value remains at zero while its centerline is contained within the smoothed envelope and begins expressing signed momentum as that centerline moves beyond the envelope. This gives it a different character from standard MACD and can make the comparison between the two especially useful during transitions.
Impulse MACD and its Signal are normalized and mapped through the exact same NMS architecture as standard MACD. Its histogram is also calculated from the true raw difference first — Impulse MACD minus Impulse Signal — and only then normalized by ATR14 and mapped through NMS. That gives the indicator two genuinely different momentum models without sacrificing a common measurement framework.
➖Reading the two together➖
The indicator is not intended to answer only whether momentum is bullish or bearish. Its larger purpose is to show how two different momentum constructions are behaving relative to one another. When standard MACD and Impulse MACD are both expanding in the same direction, momentum is being expressed through both the conventional EMA relationship and the filtered Impulse framework. When one begins contracting, crossing, or changing direction before the other, that disagreement can reveal a transition that would be less obvious when either indicator is viewed alone.
The histograms add another layer. Their sign identifies current MACD-versus-Signal ownership, while their NMS magnitude shows how large that separation is relative to volatility. A small positive histogram just above zero and a positive histogram near 55 are therefore not visually treated as equivalent momentum conditions.
➖Developing higher-timeframe context➖
A Developing Auto-Next-HTF MACD Histogram is included as a higher-timeframe reference.
This is not the chart-timeframe histogram resampled onto a higher timeframe. The complete MACD calculation is performed natively inside the automatically selected next higher timeframe using the same user-selected Fast, Slow, and Signal lengths. That higher timeframe also calculates its own ATR14 before the histogram is mapped through NMS. The result gives a direct view of whether the local histogram is aligned with, diverging from, or potentially moving ahead of the developing momentum structure one timeframe above. Because this is intentionally a Developing HTF value, it can change while the current higher-timeframe candle remains open. It should be treated as live context rather than a confirmed higher-timeframe signal.
➖Focused NMS guide levels➖
The right side of the oscillator uses the semantic ladder 0, ±13, ±34, ±55, ±75, ±89 and ±100, but the indicator intentionally does not display every level all the time. Zero remains the permanent center reference. Other guide levels appear only when currently visible momentum geometry is actually approaching them. The guide engine considers standard MACD, MACD Signal, MACD Histogram, Developing HTF Histogram, Impulse MACD, Impulse Signal, and Impulse Histogram. A distant -75 level, for example, is not displayed merely because it is the next available rung below the current MACD value. This keeps the scale contextual and reduces unnecessary visual clutter while still making important momentum zones visible as they become relevant. Again, these levels should not automatically be interpreted as support/resistance or overbought/oversold thresholds. They are reference points on the standardized momentum scale.
➖Right-side labels➖
Current NMS values are displayed directly beside the oscillator through a compact right-label system. The MACD family and Impulse family each track the age of their most recent crossover using an inclusive bars-ago convention, where the crossover candle itself is 1ba. Crossover age also follows directional ownership. During a bullish MACD state, the age appears with MACD; during a bearish state, it appears with MACD Signal. The same convention is used for Impulse MACD and Impulse Signal. This makes it possible to see not only which component currently owns the pair, but also how long that relationship has been active.
➖Price-pane momentum context➖
The indicator can also project its histogram state onto the main price chart without moving the oscillator out of its pane. Optional force-overlay candles use the chart's actual Open, High, Low, and Close. Only their color is supplied by the momentum engine. Users can choose either MACD Histogram or Impulse Histogram as the candle-color source, with MACD Histogram selected by default. The candle body, wick, and border have independent transparency controls.
➖Customization➖
The default presentation is intentionally designed to show the relationship between the two systems while remaining readable. MACD / Signal and Impulse MACD / Signal default to line presentation, while both true histograms remain available as histogram plots. Historical display windows, widths, transparency, fills, labels, and plot styles can all be adjusted.
Color customization has been kept intentionally simple. The entire standard MACD family shares one Bull / Bear / Neutral palette, while the entire Impulse family shares a separate Bull / Bear / Neutral palette. This keeps the visual language consistent without requiring a separate color control for every individual plot.
➖How I use the scale➖
I generally begin with direction around zero, then look at which member owns each MACD/Signal pair, followed by the magnitude and direction of the histograms. From there, the NMS level provides context for how significant that momentum condition is relative to volatility.
A crossover occurring near the center of the scale may represent a very different market condition from a crossover occurring after one family has already expanded toward 55, 75, or beyond.
The Developing HTF Histogram then provides a final layer of context: is the next timeframe reinforcing the local move, opposing it, or beginning to turn?
The value of the indicator is therefore less about finding one “magic” level and more about seeing direction, magnitude, agreement, disagreement, expansion, contraction, crossover age, and higher-timeframe alignment in one standardized momentum framework.
➖Important note➖
The Normalized Momentum Scale changes the representation of momentum magnitude, not the underlying MACD relationships themselves.
Standard MACD remains standard MACD. Impulse MACD remains its own separate momentum construction. NMS simply gives both a common volatility-relative coordinate so their behavior can be compared more meaningfully.
The current chart bar and the Developing HTF series can both evolve while their respective candles are open. As with any technical indicator, this tool is intended to provide analytical context rather than predict future price movement with certainty.
➖A few chart examples➖
Wskaźnik

Reaction Path [BullByte]Reaction Path is a price-action, pressure, volatility, and trade-geometry indicator designed to organize two different market behaviours into one integrated framework:
1. Reaction: price has displaced away from its current Fair Price area and the recent candle behaviour shows conditions consistent with a possible response back toward the opposing side.
2. Continuation: price is positioned beyond the Fair Price area while pressure is migrating in the same direction, recent movement is efficient enough to qualify as directional, and the current bar shows sufficient expansion and participation.
The purpose of Reaction Path is not to predict the future or guarantee a reversal or continuation. It is designed to help traders distinguish between changing pressure, developing movement, established directional travel, exhaustion, and neutral conditions.
The indicator combines several complementary measurements rather than relying on a conventional overbought/oversold oscillator.
The main components are:
A wick-weighted Fair Price calculation.
An adaptive Reaction Band around Fair Price.
A Pressure Centre based on where price closes within its recent ranges.
Pressure Migration to measure how that pressure balance is changing.
Market-state classification including EXHAUSTION , SHIFT , BUILDING , TRAVEL , MOVING UP , MOVING DOWN , and NEUTRAL .
Reaction and Continuation signal qualification.
Trend Efficiency as a directional regime filter for continuation conditions.
Candle-character analysis using body efficiency, wick relationships, range speed, directional dominance, depth, and volume behaviour.
Spike and immediate post- spike filtering .
Adaptive Failure Memory that becomes more selective after setup invalidations.
ATR-based Path Level 1, Path Level 2, and invalidation geometry.
A Projected Path corridor for visualizing the current route from entry toward Path Level 2.
A compact dashboard showing market state, path direction, Fair Price location, and active setup levels.
Historical setup visualization for reviewing completed setups.
Bar-close alert events for new signals, target completion, and invalidation.
Reaction Path is intended as an analytical framework. The signals and plotted levels are references for decision-making and should be evaluated together with the actual market context, instrument behaviour, liquidity, execution conditions, and the trader's own risk process.
---
ORIGINALITY - WHY THIS IS NOT A MASHUP
Reaction Path is built as a single integrated behavioural engine rather than a collection of unrelated indicators placed together.
The individual measurements are not displayed as independent conventional indicators which are combined with arbitrary voting rules.
Instead, the engine builds a connected chain:
Fair Price
Price displacement from Fair Price
Pressure Centre
Pressure Migration
Market state
Candle character
Trend efficiency
Signal qualification
Trade geometry
Setup lifecycle
Failure Memory
Each stage contributes information to the stages that follow it.
Fair Price establishes the current reference area.
Pressure Centre measures where recent closes are occurring within their candle ranges.
Migration measures whether that pressure balance is moving.
Market-state logic classifies the behaviour of that migration.
Reaction and Continuation conditions then use several independent characteristics of price behaviour before a setup is created.
Failure Memory adds another layer by recording the characteristics surrounding an invalidated setup and making subsequent qualification more selective when sufficiently similar conditions reappear.
This structure is what makes the indicator an integrated system rather than a simple mashup of unrelated calculations.
---
PURPOSE OF THE INDICATOR
Markets do not move in only one way.
Sometimes price stretches away from its current area of accepted value and begins to show rejection.
Sometimes price moves away from that area and continues because pressure remains aligned with the direction of travel.
Sometimes a large candle creates apparent momentum but is primarily wick and produces little decisive progress.
Sometimes pressure begins changing before a visible directional move becomes established.
Reaction Path is designed to separate these situations.
The central question is not simply:
"Is price going up or down?"
Instead, the framework asks:
Where is price relative to its current Fair Price area?
Is recent closing pressure migrating?
Is that migration strengthening, weakening, shifting, or reaching an extreme?
Is the recent movement efficient or highly rotational?
Is the current bar expanding relative to recent activity?
Are wicks and candle bodies supporting the intended behaviour?
Is volume informative on the current symbol?
Has a similar setup recently failed?
Has the current setup reached Path Level 1, Path Level 2, or its invalidation reference?
---
WHY THESE SPECIFIC MECHANICS
FAIR PRICE
Fair Price is calculated from a custom typical-price measure:
(high + low + 2 x close) / 4
The calculation is weighted according to candle body efficiency.
Candles with a smaller body relative to their total range receive greater weight. This gives more influence to candles that spent more of their range away from their decisive body.
The result is a rolling reference value intended to represent the recent area around which price has been behaving.
An adaptive deviation value is calculated from the same weighted observations.
Together they create:
Fair Price
Fair Price Upper
Fair Price Lower
This gives the indicator a dynamic reference zone rather than relying on a fixed percentage distance.
REACTION BAND
The Reaction Band visualizes the Fair Price area as three nested bands.
The inner and outer areas represent progressively wider deviations around the current Fair Price.
The band therefore provides context for whether price is:
Inside the current fair area.
Moving toward an edge.
Beyond the upper region.
Beyond the lower region.
The band color also reflects the current pressure/state classification.
PRESSURE CENTRE
The Pressure Centre does not ask whether a candle is simply green or red.
Instead, it examines where the close occurred inside the candle's own high-low range.
A close near the high represents stronger upward closing pressure for that candle.
A close near the low represents stronger downward closing pressure.
The measurement is averaged over a rolling window and weighted using the same candle-character concept used by Fair Price.
This produces a smoother representation of recent closing-pressure behaviour.
PRESSURE MIGRATION
Pressure Migration measures how much the Pressure Centre has changed between two points in time.
A positive migration indicates that the recent closing-pressure balance has shifted upward.
A negative migration indicates that it has shifted downward.
The engine then evaluates the magnitude and context of this migration instead of treating every zero crossing as a signal.
This is important because very small changes around an inflection point can alternate direction without representing meaningful behavioural change.
---
MARKET STATES
REACTION PATH classifies the current market into several behavioural states.
EXHAUSTION
Pressure has reached an extreme zone.
This does not automatically mean that price must reverse.
It means the Pressure Centre has reached one of the defined extreme regions used by the engine.
SHIFT
A meaningful migration transition has occurred across the configured stall threshold.
The purpose is to identify a stronger change in pressure rather than reacting to a minor zero-line fluctuation.
BUILDING
Pressure is moving in the upward direction and is approaching or has reached the internal building region.
MOVING UP
Upward pressure migration has become sufficiently strong to qualify as upward movement outside the building state.
MOVING DOWN
Downward pressure migration has become sufficiently strong to qualify as downward movement.
TRAVEL
Directional continuation conditions are active while price is positioned on the corresponding side of Fair Price.
NEUTRAL
None of the above behavioural classifications currently has priority.
---
WHAT MAKES A REACTION SIGNAL
A Reaction signal is not generated simply because price is above or below Fair Price.
For a long Reaction setup, the engine looks for a combination of conditions including:
Price displacement sufficiently below Fair Price.
Recent directional efficiency supporting the intended reaction.
Sufficient directional dominance.
A stronger lower-wick response than the opposing wick.
Adequate recent range speed.
Sufficient volume participation when volume is informative.
Sufficient recent depth below Fair Price.
Absence of a qualifying spike or immediate post-spike retracement condition.
The short Reaction condition is the mirrored structure.
The important concept is that displacement alone is not enough.
The engine looks for displacement together with evidence that recent candle behaviour is producing a meaningful response.
---
WHAT MAKES A CONTINUATION SIGNAL
Continuation setups use a different logic.
A long Continuation setup requires price to be positioned above the Fair Price region together with:
A qualifying expansion bar.
Limited opposing wick behaviour.
Sufficient candle efficiency.
Adequate range speed.
Sufficient volume participation when volume is informative.
Positive trend direction.
Adequate trend efficiency.
A normal bar rather than a qualifying spike condition.
Short Continuation setups use the corresponding bearish structure.
Two consecutive closes outside the Fair Price band are recognized as acceptance by the state engine. A Continuation signal itself does not universally require two consecutive closes; the current bar can qualify when the other continuation conditions are satisfied.
---
EXPANSION LOGIC
A continuation setup requires more than simply producing the largest candle of a recent window.
The current range must satisfy both:
1. It must be at least as large as the previous recent maximum range.
2. It must also exceed an ATR-based expansion floor.
This prevents a relatively large candle inside a very quiet environment from being treated as meaningful expansion solely because it happens to be the largest recent candle.
ATR is therefore used as a volatility scale and also as part of the expansion qualification.ATR is not used as a standalone directional signal.
---
CANDLE CHARACTER AND QUALITY FILTERS
Reaction Path evaluates several aspects of recent candle behaviour.
BODY EFFICIENCY
Measures the body relative to the full candle range.
Higher efficiency means more of the candle's movement occurred through the body rather than through wicks.
WICK BALANCE
Compares upper and lower wick behaviour to determine whether the candle is showing rejection characteristics or cleaner directional movement.
RANGE SPEED
Compares the current range with recent average range behaviour.
VOLUME RATIO
Compares current volume with its recent baseline when the symbol provides meaningful volume information.
On symbols where volume is flat, missing, or otherwise uninformative, the engine avoids pretending that volume provides meaningful confirmation and uses a neutral treatment instead.
DEPTH
Measures how far recent price movement has extended beyond the Fair Price reference.
DIRECTIONAL DOMINANCE
Measures how much of the recent short window has been directionally aligned with the candidate setup.These dimensions are evaluated together rather than allowing one measurement to create a setup by itself.
---
SPIKE FILTER
Large candles are not automatically treated as strong momentum.
Reaction Path identifies oversized, low-efficiency bars where a substantial portion of the range is wick rather than decisive body movement.
Signal generation is withheld during such qualifying spike conditions.
The engine also checks the bar immediately following a qualifying spike. If that next bar is simply retracing inside the previous spike's range, it is also treated as a lower-quality setup environment.
The goal is to avoid treating every unusually large candle as meaningful directional expansion.
---
FAILURE MEMORY
Reaction Path includes an adaptive Failure Memory system.
When an active setup reaches its invalidation boundary before reaching Path Level 2, the engine records characteristics of the failed environment, including elements such as:
Direction.
Signal family.
Displacement.
Pressure Migration.
Directional efficiency.
Speed.
Depth.
Volume behaviour.
Pressure state.
Range relative to ATR.
The system then uses two related forms of adaptation.
GLOBAL FAILURE TIGHTENING
After consecutive invalidations, the qualification requirements become progressively more selective, with the escalation capped by the internal maximum failure count.
This means repeated failed conditions do not simply produce an unlimited stream of identical setups.
SIMILARITY-BASED MEMORY
The current environment can also be compared with the recorded failed environment.
A sufficiently similar setup can be blocked when it belongs to the same relevant signal family and direction.
A failed Reaction therefore weighs most strongly against a highly similar subsequent Reaction attempt, while the global failure tightening can still affect other qualifying setups.
Failure Memory uses two independent lifecycles. The direction and similarity block can clear when the market behaviour resets or the memory window expires, allowing a genuinely changed market environment to qualify again. The consecutive-failure count follows a separate lifecycle and is cleared when Path Level 2 is reached or when its own time-based expiry occurs. This allows the system to remember a losing sequence without permanently blocking a direction.
This is a behavioural filter, not a guarantee that future similar setups will fail.
---
SETUP SENSITIVITY
The Setup Sensitivity input provides a single control for the overall selectivity of the engine.
Adjusts the overall qualification balance. Lower values tighten distance and expansion requirements while relaxing several quality thresholds; higher values do the opposite. Use this control to adapt overall setup selectivity.
The thresholds are coupled rather than exposing every individual internal gate.
This is intentional.
Changing one isolated component independently could create an internal imbalance between distance, efficiency, speed, depth, volume, expansion, and trend requirements.The sensitivity control therefore moves these requirements together.
---
TRADE GEOMETRY
When a setup is created, Reaction Path establishes four primary reference levels:
ENTRY
The setup's entry reference is the signal-bar closing price.
PATH LEVEL 1
Path Level 1 is calculated from the setup entry using the configured ATR distance.
PATH LEVEL 2
Path Level 2 is the primary larger projected objective used by the setup geometry and is also calculated from the setup entry using ATR.
INVALIDATION
For Reaction setups, the invalidation boundary is derived beyond the relevant reaction extreme using the configured ATR distance.
For Continuation setups, the invalidation reference is the Fair Price value captured when the setup is created.
These are analytical reference levels.
They do not guarantee execution, fill price, stop execution, or trading outcomes.
---
PROJECTED PATH
The Projected Path is a visual corridor extending from the setup entry toward Path Level 2.
It is not a forecast.
It does not use future prices to calculate where the path should go.
Instead, the corridor is shaped using the confirmed setup and the current market-state information available after the setup has been created.
Its curvature responds to pressure migration and displacement.
Its width responds to the current state and field energy, allowing the visual route to become wider when the market environment is more uncertain and narrower when conditions are calmer.
Because the path can respond to subsequent confirmed market conditions, it should be read as a dynamic visual reference rather than a promised route taken by price.
---
PATH LEVEL EXTENSIONS
When a continuation setup remains active and another qualifying continuation condition appears in the same direction, Path Level 2 can be extended.
Extensions are limited by an internal maximum so that one continuously trending environment cannot expand the objective indefinitely.
The extension uses the configured Path Level 1 ATR distance as the incremental extension amount.
WHY THE REACTION FIELD EXISTS
The Reaction Field was created to solve a specific problem:
Price candles show what happened, but they do not always make the change in underlying closing pressure easy to read.
A market can move higher while its internal pressure is weakening.
A market can move lower while selling pressure is beginning to lose control.
A reversal can develop through several candles before the change becomes obvious from price alone.
Likewise, a strong-looking candle does not automatically mean that directional pressure is continuing. The candle may contain a large amount of wick, may occur inside a rotational market, or may simply be an isolated expansion.
Reaction Path therefore separates two ideas:
PRICE LOCATION : Where price is relative to the current Fair Price area.
PRESSURE MIGRATION : How the recent balance of closing pressure is changing.
The Reaction Field is the visual representation of that second component.
For every candle, the engine examines where the close occurred inside the candle's own high-low range.
A close near the high contributes stronger upward closing pressure.
A close near the low contributes stronger downward closing pressure.
Those observations are averaged over a rolling window using the same wick-weighting concept used by the Fair Price calculation.
The engine then compares the current Pressure Centre with an earlier Pressure Centre.
That difference is called Migration .
In simplified form:
Pressure Centre = weighted average of close location within recent candle ranges
Migration = Current Pressure Centre - Prior Pressure Centre
The Reaction Field plots this migration as a behavioural field.
This creates a visual layer that answers a different question from the price chart:
"Is control shifting, and in which direction?"
That is why the oscillator is not intended to behave like RSI, MACD, Stochastic, or a traditional overbought/oversold oscillator.
It is also not intended to be used as a standalone buy/sell trigger.
Its purpose is to provide continuous context around the discrete events identified by the main engine.
For example:
Price can be below Fair Price while pressure begins migrating upward.
Pressure can continue building before a full Reaction setup qualifies.
Migration can reverse direction across the configured stall threshold, creating a SHIFT condition.
Pressure can reach an extreme zone, producing an EXHAUSTION state.
Pressure can remain directionally aligned while price travels beyond Fair Price, supporting continuation context.
The oscillator therefore acts as the behavioural " state layer " between raw candles and the final setup qualification.
The candle chart shows the movement.
The Fair Price Band shows location.
The Reaction Field shows pressure migration.
The signal engine combines these and additional price, volume, speed, depth, efficiency, expansion, and trend conditions before creating a Reaction or Continuation setup.
This separation is intentional.
The Reaction Field is there to help the trader understand the condition that surrounds a signal, rather than simply displaying another indicator that generates an independent signal.
---
REACTION FIELD - HOW TO READ THE PANE
The lower Reaction Field is the indicator's dedicated analytical pane.
It is intentionally not designed as a conventional overbought/oversold oscillator.
The field visualizes the direction and magnitude of Pressure Migration.
REACTION SPINE
The main line represents the scaled migration value.
Positive territory indicates upward pressure migration.
Negative territory indicates downward pressure migration.
The distance from the centre gives additional visual context about migration magnitude.
REACTION FLOW
Reaction Flow is a scaled companion to the Reaction Spine.
It provides a secondary visual representation of the same migration field so smaller movements can be compared more easily.
REACTION CENTRE
The centre line provides the zero reference.
REACTION FIELD
The shaded field surrounds the Reaction Spine.
Its width responds to field energy, which reflects migration magnitude and range-speed behaviour.
REACTION TRANSITION
A small transition marker can appear when the engine identifies a SHIFT or EXHAUSTION condition.
The Reaction Field should therefore be interpreted as a pressure-behaviour visualization, not as an independent buy/sell oscillator.
---
DASHBOARD - WHAT EACH ROW MEANS
The on-chart dashboard summarizes the current state without requiring the trader to interpret every calculation separately.
MARKET STATE
Displays the current behavioural classification such as:
EXHAUSTION
SHIFT
BUILDING
TRAVEL
MOVING UP
MOVING DOWN
NEUTRAL
PATH
Shows whether the current pressure/path condition is:
UP OPEN
DOWN OPEN
WAIT
LOCATION
Shows where the current close sits relative to the Fair Price region:
ABOVE FAIR
BELOW FAIR
AT FAIR
ACTIVE SETUP
When a setup is active, the dashboard provides:
ENTRY
PATH LEVEL 1
PATH LEVEL 2
INVALIDATION
When no setup is active, the dashboard displays that no active setup is currently present.
The dashboard also displays the current symbol and chart timeframe.
---
VISUAL SETTINGS
SHOW HISTORICAL SETUPS
When enabled, completed setups remain visible so historical behaviour can be reviewed.
The number of retained completed setups is capped by the Maximum Historical Setups setting.
The current implementation allows up to 25 retained historical setups.
SHOW REACTION BAND
Displays the three nested Fair Price bands directly on the price chart.
SHOW PROJECTED PATH
Displays the dynamic corridor between the setup entry and Path Level 2.
This can be disabled when a cleaner chart is preferred.
SHOW DASHBOARD
Displays the current market-state and setup summary.
DASHBOARD SIZE
Available sizes:
Small
Medium
Large
DASHBOARD POSITION
Available positions:
Top Left
Top Right
Bottom Left
Bottom Right
---
INPUTS - GROUPED BY SETTINGS PANEL
ENGINE SENSITIVITY
Signal Mode
Reaction Only
Continuation Only
Both
This determines which signal family the engine is allowed to generate.
Setup Sensitivity
Controls overall selectivity.
Lower values allow more setups.
Higher values require stronger market behaviour.
TRADE GEOMETRY
Path Level 1
Defines the distance from the setup entry to Path Level 1 in ATR units.
Path Level 2
Defines the distance from the setup entry to Path Level 2 in ATR units.
Invalidation
Defines the invalidation distance used for Reaction setup geometry.
VISUAL SYSTEM
Show Historical Setups
Keeps completed setups visible for historical review.
Maximum Historical Setups
Controls the maximum number of completed setup drawings retained at once.
Show Reaction Band
Controls visibility of the Fair Price bands.
Show Projected Path
Controls visibility of the dynamic path corridor.
DASHBOARD
Show Dashboard
Controls dashboard visibility.
Dashboard Size
Controls dashboard text size.
Dashboard Position
Controls dashboard placement.
---
HOW TO USE REACTION PATH
A practical workflow is to begin with the market state rather than immediately reacting to an individual signal.
STEP 1 - CHECK LOCATION
Determine whether price is:
ABOVE FAIR
BELOW FAIR
AT FAIR
This establishes the current relationship between price and the Fair Price area.
STEP 2 - CHECK PRESSURE
Read the Reaction Field and Pressure Migration.
Look for whether pressure is:
Building.
Moving.
Shifting.
Reaching exhaustion.
Remaining neutral.
STEP 3 - IDENTIFY THE BEHAVIOUR
A Reaction condition and a Continuation condition represent different market behaviours.
Do not interpret every long condition as interchangeable with every other long condition.
Reaction setups are based on displacement and response characteristics.
Continuation setups are based on directional persistence, expansion, efficiency, and trend alignment.
STEP 4 - CHECK THE SETUP GEOMETRY
When a signal appears, review:
ENTRY
PATH LEVEL 1
PATH LEVEL 2
INVALIDATION
These levels provide the framework for evaluating the setup rather than requiring the trader to estimate distances visually.
STEP 5 - OBSERVE THE PROJECTED PATH
When enabled, use the Projected Path as a visual representation of the current route and uncertainty.
It is not a prediction.
STEP 6 - REVIEW FAILURE MEMORY
When the engine has recently experienced an invalidation, subsequent qualification may become more selective.
This can result in fewer signals during repeated similar conditions.
STEP 7 - APPLY YOUR OWN RISK PROCESS
The indicator provides analytical references.
Position size, leverage, execution, risk per trade, market selection, trading hours, and final trade decisions remain the responsibility of the trader.
---
RECOMMENDED TIMEFRAMES
Reaction Path can be applied to different chart timeframes, but it is particularly suited to intraday analysis where changes in candle behaviour, pressure migration, and directional expansion can be observed clearly.
As a practical starting point, traders may evaluate it on:
1 minute
3 minute
5 minute
15 minute
The appropriate timeframe depends on the instrument, liquidity, trading style, and desired holding period.
The same settings should not automatically be assumed to behave identically across every market or timeframe.
The indicator does not use multi-timeframe security requests, so its calculations are based on the selected chart's own data.
---
REAL-LIFE EXAMPLE - CONSOLIDATED
Consider a market trading below its current Fair Price area.
Price has recently displaced downward, but the recent candles begin showing stronger lower-wick response while upward closing pressure starts migrating.
The engine may classify the environment as BUILDING or SHIFT depending on the measured pressure transition.
If the remaining Reaction requirements are also satisfied, a REACTION LONG setup can be created.
The chart then provides:
ENTRY
PATH LEVEL 1
PATH LEVEL 2
INVALIDATION
The trader can now evaluate the situation using a defined reference structure rather than treating every tick as a new decision.
A different scenario can occur when price is already above Fair Price.
Suppose the market maintains positive pressure migration, the recent trend is efficient rather than highly rotational, the current range expands beyond its recent range window and the ATR expansion floor, opposing wick behaviour remains limited, and the other continuation requirements are satisfied.
The engine can then produce a CONTINUATION LONG setup.
If the market instead produces an oversized low-efficiency spike, the signal can be withheld.
If an existing setup becomes invalidated, Failure Memory records the characteristics of the environment and can make highly similar subsequent attempts more selective.
LIVE CHART EXAMPLE: REACTION LONG ON QQQ (15m)
Price spent an extended stretch below the lower edge of the wick-weighted Fair Price band, with the Reaction Field spine sitting in negative territory, a sign that recent candles had been closing nearer their lows than their highs, reflecting sustained downward closing pressure.
As price pushed further beneath Fair Price, the depth of that penetration cleared the engine's minimum requirement, and the bars driving it stayed clean of spike behaviour, sufficient range, volume, and body efficiency, without any oversized, low-quality wick bar in the mix.
On the signal candle itself, the lower wick grew clearly longer than the upper wick: a decisive rejection of the downside rather than an indecisive drift. At the same moment, the Pressure Centre had already begun migrating upward, flipping the Reaction Field spine from negative to positive on that identical bar.
It was this convergence, sufficient displacement and depth below Fair Price, a wick-confirmed rejection, and a same-bar pressure flip - that opened the gate for a Reaction Long setup, rather than any single condition acting alone.
LIVE CHART EXAMPLE - CONTINUATION LONG ON BTC/USDT (5m)
Price had already pushed above the fair-price band and, over the signal bar and the one immediately before it, closed above it both times- the engine's threshold for acceptance rather than a single overshoot. Over the same stretch, the broader move up from the earlier local low remained efficient enough to qualify as a genuine trend rather than rotational chop, and the Reaction Field spine was already migrating upward, meaning closing pressure was actively supporting the direction of the setup.
On the signal candle, range expanded beyond the recent local maximum and cleared the ATR-based expansion floor, while the upper wick stayed minimal and the body dominated the bar, a decisive, clean directional bar regardless of its color. It was these conditions holding together on that one bar- acceptance above fair, a qualifying expansion bar, clean wick geometry, and trend efficiency- that opened the gate for a Continuation Long setup, rather than any single measurement acting alone.
These examples describe how the engine behaves conceptually. They are not historical performance claims or guarantees of what price will do next.
---
ALERTS
Reaction Path provides alert events for the setup lifecycle.
NEW SIGNAL
Triggered when a new Reaction or Continuation setup is created.
TARGET REACHED
Triggered when the active setup reaches its Path Level 2 completion condition.
INVALIDATED
Triggered when the active setup reaches its invalidation condition.
Signal, target, and invalidation alerts are generated on confirmed bar events using once-per-bar-close alert frequency.
The alert message includes the chart symbol, timeframe, event type, signal type, and relevant price level.
Use TradingView's alert system to create the desired alert from the indicator.
---
CONFIRMATION, REPAINTING, AND DATA BEHAVIOUR
Current-bar signal decisions are restricted to confirmed bar data.
The indicator does not use request.security().
It does not use lookahead.
The signal lifecycle is therefore based on closed-bar confirmation rather than intrabar creation of a setup followed by later modification of that signal.
Some visual elements, such as live setup labels and dashboard presentation, may update while the current chart bar is forming.
Those visual updates do not create, close, or modify the confirmed signal decision.
The indicator is also intentionally disabled on non-standard chart types such as Heikin Ashi, Renko, Kagi, Point & Figure, and Range charts.
Use a standard chart type when evaluating the indicator.
---
LIMITATIONS
Reaction Path is an analytical indicator, not an automatic trading system.
No indicator can determine with certainty whether a market will reverse, continue, reach a target, or respect an invalidation level.
The calculations are sensitive to the characteristics of the selected instrument and timeframe.
Low-liquidity markets, unusual spreads, sudden news events, market gaps, abnormal volatility, and unreliable volume data can affect the behaviour of any price-based analytical model.
Volume-dependent qualification also depends on the quality of volume supplied by the symbol.
The Projected Path is a visual representation of the current confirmed setup and market state. It is not a future-price forecast.
Path Level 1, Path Level 2, and Invalidation are reference levels derived from the configured geometry and current market information. They do not represent guaranteed execution levels or guaranteed outcomes.
Historical setup drawings are provided for visual review and should not be interpreted as a verified backtest or performance record.
If Path Level 2 and Invalidation are both touched during the same bar, the script cannot determine the true intrabar sequence from OHLC data alone. It resolves this ambiguity conservatively by treating the setup as invalidated when both levels are touched on the same bar.
The indicator does not replace independent analysis, risk management, or execution planning.
---
IMPORTANT NOTES
For consistent interpretation:
Use standard chart types.
Evaluate signals on closed bars.
Understand the difference between Reaction and Continuation signals.
Treat the Fair Price area as a dynamic reference, not an absolute support or resistance level.
Read the Reaction Field as pressure migration rather than a traditional overbought/oversold oscillator.
Consider the dashboard as a summary of the engine state, not an independent signal source.
Treat Failure Memory as an adaptive qualification filter, not as a prediction of future failure.
Review Path Level 1, Path Level 2, and Invalidation together.
Do not assume identical behaviour across different symbols and timeframes.
Use your own risk and execution rules before acting on any setup.
---
DISCLAIMER
This indicator is provided for informational and educational purposes only and does not constitute financial, investment, trading, or other professional advice.
Trading financial markets involves substantial risk, including the possible loss of capital.
The signals, states, levels, visualizations, and alerts generated by Reaction Path are analytical references only. They do not guarantee market direction, execution, profitability, target achievement, or avoidance of losses.
Past market behaviour and historical setup visualization do not guarantee future results.
Users are responsible for their own trading decisions, risk management, position sizing, and execution. Wskaźnik

ATR Percentile Bands [TradingFinder] Dynamic Extremes🔵 Introduction
Financial markets constantly move between calm conditions and periods of rapid price expansion. A market may trade close to its average for several sessions and then suddenly move into an extreme price zone as volatility increases. In these moments, traders need more than a fixed channel or a standard volatility indicator.
The ATR Percentile Bands indicator combines Average True Range (ATR), historical price deviation, and percentile analysis to identify dynamic upper and lower bands directly on the price chart. By adapting to both current volatility and historical market behavior, the ATR Percentile Bands indicator helps traders recognize normal price movement, unusual price extensions, and potential reversal zones more clearly.
Unlike traditional ATR bands that calculate band width using only current volatility, this dynamic volatility indicator compares the smoothed ATR distance with the 95th percentile of price deviations from a selected moving average. The indicator then uses the larger value to create adaptive price bands that respond to changing market conditions. A customizable EMA, SMA, RMA, WMA, or HMA forms the central moving average, while multi-layer upper and lower ribbons highlight bullish and bearish extreme zones.
When price approaches the upper percentile band, the market may be experiencing unusually strong buying pressure; when price reaches the lower percentile band, selling pressure may have pushed the market into a historically extended area. These volatility bands do not define guaranteed overbought or oversold levels, but they provide a structured framework for analyzing price extremes, mean-reversion opportunities, trend continuation, and volatility expansion.
Imagine price falling sharply toward the lower ATR Percentile Band. The first touch may attract attention, but the indicator does not immediately display a Buy Signal. Instead, its three-stage confirmation engine waits for a bullish candle to reject the lower inner band and then monitors the following candles for continued bullish confirmation. The same process works in reverse for a potential Sell Signal near the upper band. This confirmation-based logic helps filter weak reactions and reduces signals created by simple band contact.
A live information dashboard also displays the current Signal, Price Zone, Trend, Nearest Band, Volatility, and Next Action, allowing traders to understand the complete market context at a glance. As a result, ATR Percentile Bands can support forex trading, cryptocurrency analysis, stock trading, indices, commodities, scalping, day trading, and swing trading across different markets and timeframes.
🔵 How to Use
This volatility-based trading indicator helps traders understand where price is positioned relative to its moving average, current market volatility, and historical price deviations. After adding the indicator to the chart, traders should first examine the central moving average and the upper and lower percentile bands. Price movement between the two inner bands represents a relatively normal market condition, while movement inside the upper or lower ribbon indicates that price is entering an extended zone.
A close above the outer upper band is displayed as Above Upper Band, while a close below the outer lower band is classified as Below Lower Band. These extreme price zones can highlight increased buying or selling pressure, but touching an ATR Percentile Band does not automatically create a Buy Signal or Sell Signal.
Before evaluating a trading signal, traders should review the live dashboard and combine Price Zone, Trend, Nearest Band, and Volatility information. The Trend column shows whether price and the moving average currently support a Bullish, Bearish, or Sideways condition. Nearest Band indicates which inner ATR band is closer to price, while Volatility compares the current ATR with its historical range.
After price reaches an extreme band, the Signal and Next Action columns can be used to follow the confirmation process. The indicator requires a three-stage candle sequence before publishing a Long or Short Signal, helping separate a simple band touch from a confirmed price reaction. All signal decisions are registered after candle closure, so traders should wait for the active candle to close before interpreting the final signal.
🟣 Buy Signal
A potential Buy Setup begins when price moves down to the Lower Inner Band and then shows a valid bullish rejection. The first candle must satisfy three conditions simultaneously: its low must touch or move below the Lower Inner Band, its closing price must return above the Lower Inner Band, and it must close as a bullish candle with the Close above the Open.
The initial Buy Setup conditions are : A valid Buy Setup requires the candle’s low to touch or move below the Lower Inner Band. The price must then recover and close above the Lower Inner Band, while the closing price must also remain above the opening price to confirm that the candle is bullish.
When these conditions are confirmed at candle close, the ATR Percentile Bands indicator does not immediately display a Long Signal. Instead, it saves the bullish setup and sets the confirmation counter to one. At this stage, the dashboard displays Buy Setup, while the Next Action column changes to Wait for Buy. This tells the trader that a bullish reaction has been detected near the lower percentile band, but the complete three-candle confirmation sequence has not yet formed.
The second confirmation candle does not need to touch the Lower Inner Band again. It only needs to remain bullish and close above the Lower Inner Band. If these conditions are satisfied, the confirmation counter advances from one to two. The third candle must repeat the same continuation conditions: it must close above its opening price and remain above the Lower Inner Band. Once the third bullish confirmation is completed, the indicator publishes the Long Signal on the third candle.
After confirmation, the Signal column displays Buy Signal, and Next Action changes to Buy Confirmed. The final Long marker may appear several candles away from the original contact with the lower band because only the first candle must directly reject the extreme zone. The second and third candles are continuation confirmations and are not required to interact with the band again.
A pending Buy Setup is cancelled if a following candle is not bullish and does not remain above the Lower Inner Band. If a valid bearish setup forms while the indicator is waiting for bullish confirmation, the signal engine switches direction, cancels the previous Buy Setup, and begins counting the new Sell Setup from one. After a Long or Short Signal is published, the Signal Gap setting prevents another setup from beginning until the selected number of candles has passed. The default Signal Gap is 10 candles.
For a more structured bullish analysis, traders can combine the Buy Signal with the following conditions :
Price has reacted from the Lower Inner Band or Lower Outer Band;
Price Zone shows Lower Band or Below Lower Band;
Trend is Bullish or begins shifting from Bearish toward Sideways or Bullish;
Volatility is suitable for the trader’s strategy and risk tolerance;
The bullish reaction occurs near support, demand, liquidity, or a significant market structure level;
The completed Long Signal provides an acceptable stop-loss distance and risk-to-reward ratio.
A Buy Signal represents a confirmed bullish reaction within the indicator’s internal logic. It does not guarantee that the market has reached its final low or that an upward trend will continue. In a strong bearish market, price can repeatedly interact with the lower ATR bands. Traders should therefore evaluate the Long Signal together with market structure, volume, trend direction, higher-timeframe context, and risk management.
🟣 Sell Signal
A potential Sell Setup begins when price moves up to the Upper Inner Band and then produces a valid bearish rejection. The first candle must meet three conditions at the same time: its high must touch or move above the Upper Inner Band, its closing price must return below the Upper Inner Band, and it must close as a bearish candle with the Close below the Open.
The initial Sell Setup conditions are : The bearish sequence starts when price pushes into or beyond the Upper Inner Band but fails to hold at that level. If sellers regain control before the candle closes, price returns below the band and finishes beneath its opening value. This rejection activates the initial Sell Setup and starts the confirmation process.
Once these conditions are confirmed after candle closure, the indicator saves the bearish setup and sets the confirmation counter to one. It does not publish a Short Signal on the first rejection candle. During this stage, the dashboard displays Sell Setup, while the Next Action column shows Wait for Sell. The first rejection identifies a possible bearish response from the upper extreme zone, but two additional confirmations are still required.
The second confirmation candle must be bearish and must close below the Upper Inner Band. It does not need to touch the upper band again. When both continuation conditions are satisfied, the bearish counter increases from one to two. The third candle must also close below its opening price and remain below the Upper Inner Band. After the third bearish confirmation closes, the indicator displays the final Short Signal.
At confirmation, the Signal column changes to Sell Signal, and Next Action displays Sell Confirmed. Because the final Short marker belongs to the third confirmation candle, it may not appear directly at the original upper-band rejection. This distance is a normal result of the three-stage confirmation model and does not indicate delayed calculation or repainting.
The Sell Setup is cancelled when the following candle fails to maintain the required bearish continuation and no valid opposite setup is created. If a valid bullish rejection develops while the indicator is waiting for bearish confirmation, the existing Sell Setup is cancelled, the signal direction changes to Buy, and the bullish confirmation counter begins from one. The configured Signal Gap is applied after every published signal to reduce clusters of nearby Long and Short signals.
For a more complete bearish analysis, traders can evaluate the Sell Signal alongside these conditions :
Price has rejected the Upper Inner Band or Upper Outer Band;
Price Zone displays Upper Band or Above Upper Band;
Trend is Bearish or begins changing from Bullish toward Sideways or Bearish;
The upper band overlaps resistance, supply, liquidity, or an important market structure level;
Market volatility is compatible with the selected stop loss and position size;
The confirmed Short Signal offers a reasonable risk-to-reward structure.
A Sell Signal confirms a bearish reaction according to the ATR Percentile Bands signal engine, but it should not be interpreted as proof that price has formed a permanent top. During powerful bullish trends, price may remain close to the upper volatility band or repeatedly move beyond it. Traders should use the Short Signal as analytical confirmation and assess the wider trend, market structure, volume, news conditions, stop loss, and capital management before making a trading decision.
🔵 Settings
Moving Average Type : Defines the calculation method used for the central moving average. Traders can select EMA, SMA, RMA, WMA, or HMA. EMA is selected by default and responds relatively quickly to recent price changes, while smoother average types can create a more stable band structure.
Moving Average Period : Determines how many candles are included in the central moving average calculation. The default value is 50. A shorter period makes the moving average and dynamic bands react faster to price movement, while a longer period creates a smoother structure with slower changes.
ATR Period : Sets the number of candles used to calculate the Average True Range. The default ATR Period is 14. Lower values respond more quickly to short-term volatility, whereas higher values provide a smoother measurement of market volatility.
ATR Multiplier : Controls the ATR-based distance between the central moving average and the outer volatility bands. Its default value is 2.8. Increasing the ATR Multiplier moves the bands farther from price and can reduce the number of band interactions. Decreasing it creates tighter bands and may produce more frequent setups in volatile or fast-moving markets.
Smooth Period : Specifies the smoothing period applied to the ATR and the final band distance. The default value is 5. A lower Smooth Period makes the ATR Percentile Bands more responsive, while a higher value reduces sudden changes and creates smoother upper and lower ribbons.
Signal Gap : Determines the minimum number of candles required between two published signals. The default Signal Gap is 10 bars. Increasing this value creates more separation between Long and Short Signals, while setting it to zero removes the mandatory waiting period.
Moving Average : Shows or hides the central moving average on the price chart. Disabling this option removes the line from view without changing the calculations of the upper and lower ATR Percentile Bands.
Signals : Controls the visibility of Long and Short markers on the chart. Turning this setting off only hides the signal symbols; the internal signal engine and configured TradingView alerts continue to operate normally.
Show Table : Displays or hides the live information dashboard. The table summarizes the current Signal, Price Zone, Trend, Nearest Band, Volatility, and Next Action.
Table Size : Changes the text size of the dashboard. Available options include Tiny, Small, Normal, and Large, allowing the table to fit different chart layouts and screen sizes.
Table Position : Selects the dashboard location on the chart. The table can be placed in any of the nine standard positions: Top Left, Top Center, Top Right, Middle Left, Center, Middle Right, Bottom Left, Bottom Center, or Bottom Right.
Alert : Enables or disables the dynamic alert messages generated by the indicator. When this option is active, traders can create TradingView alerts for confirmed Long and Short Signals.
Message Frequency : Determines how frequently the indicator is allowed to send an alert message. All sends every valid event, Once Per Bar limits notifications to one event per candle, and Once Per Bar Close sends the alert only after the candle has closed. Once Per Bar Close is the default option and is the most consistent choice for the confirmed-candle signal logic.
🔵 Conclusion
The ATR Percentile Bands indicator combines current market volatility with historical price deviation to create adaptive upper and lower bands around a customizable moving average. By comparing the smoothed ATR distance with the 95th percentile of recent price deviations, the indicator adjusts its band width as market conditions change. The multi-layer ribbons highlight normal price movement, extended price zones, and unusually strong deviations, while the live dashboard summarizes Signal, Price Zone, Trend, Nearest Band, Volatility, and Next Action in one view.
Its three-stage confirmation system separates a simple band interaction from a confirmed bullish or bearish reaction. Long and Short Signals are published only after the required candle sequence is completed, helping traders evaluate price rejection with greater context. These signals should be combined with market structure, trend direction, volume, support and resistance, higher-timeframe analysis, and risk management. As an adaptive volatility and price-extreme analysis tool, the indicator can support forex, cryptocurrency, stock, index, and commodity traders across scalping, intraday, and swing-trading strategies.
Wskaźnik

Order Block Intelligence - Mitigation Probability AI [Dots3Red]🧱 ORDER BLOCK INTELLIGENCE - MITIGATION PROBABILITY AI
This script tracks every order block to its first test and grades the outcome — respected or violated — then reports the measured probability the moment a new zone forms.
✨ WHY THIS MATTERS
An order block is a bet: the market left an imbalance here, and price might react when it returns. That bet is treated as equally good everywhere, regardless of how the zone actually formed. This script checks that assumption directly, on your own chart:
📊 Respect 68% | N=27
That means the 27 most similar order blocks this chart has produced — matched by size, the strength of the move that created them, and volume — were respected 68% of the time when price returned. Measured, not assumed, and specific to this instrument and timeframe.
⚙️ HOW IT WORKS
🧱 Detection — an order block is the last opposite-colored candle before a genuine displacement move: the next candle's body must exceed a configurable multiple of ATR, and by default must also close beyond the base candle's high or low, confirming a real structural break rather than just one large candle.
🎯 Displacement candle highlight — the exact candle that creates the zone is recolored and given a background highlight the moment it qualifies, so you can see precisely which move triggered the block without hunting for it.
📊 The KNN engine — every order block is stored as five measurements at the moment it forms: zone size relative to ATR, the strength of the displacement that created it, volume behavior, volatility context, and trend position. When the zone resolves — respected or violated on its first test — that outcome trains the engine. Every new zone is immediately compared against the K most similar historical zones on this chart, and their measured outcome becomes the probability shown on the label.
🔒 First-touch grading — only the first test of each zone is graded, matching how order blocks are actually used in practice. Respected means price moved away by a meaningful distance (or never closed back through); violated means price closed through the far edge.
🔒 Non-repainting — detection and grading both happen strictly on confirmed bars.
🧭 HOW TO USE
1️⃣ Check the sample size before trusting the percentage. "Respect 68% | N=27" reflects real history; a fresh chart will show "Training…" until enough zones have resolved to say anything meaningful.
2️⃣ Use the displacement highlight to understand why a zone exists. If the highlighted candle was a modest, unconvincing move, that context is worth factoring in even before checking the probability label.
3️⃣ Watch the near edge vs. the far edge differently. The near edge (solid, thinner) is where price is expected to react first; the far edge (dashed, thicker by default) is the zone's origin — a close beyond that line is what defines a violation.
4️⃣ Check the global Respect Rate for chart-level context. Beyond any single zone, the dashboard tracks what percentage of every order block on this chart has been respected overall — useful for judging whether this instrument tends to honor these zones or run through them.
5️⃣ Use "Keep Tested Zones Visible" if you want a visual history of what held and what didn't, rather than a clean chart showing only what's currently active.
⏱️ WHICH TIMEFRAMES WORK BEST
Order blocks require a genuine displacement move to qualify, which makes 15-minute through 4-hour the most effective range — the same window that tends to work best across structure-based tools in general. Fast enough that zones form regularly and the KNN engine builds a real sample; slow enough that the displacement candles represent meaningful moves rather than noise.
On very short timeframes (1-3 minute), lower the Displacement Strength setting somewhat, since ATR-relative moves are naturally smaller and more frequent there — otherwise very few candles will qualify. On daily or higher timeframes, genuine order blocks are rarer by nature, so expect longer waits between zones and a slower-growing sample size; this is expected, not a malfunction.
🛠️ SETTINGS
🧱 Order Block Detection
• Displacement Strength (×ATR) — how large the impulse candle's body must be to qualify. Lower this on fast timeframes, raise it on slow ones or if too many weak zones are forming.
• Require Structure Break — toggle whether the displacement candle must also close beyond the base candle's range
• Max Order Blocks Shown, Zone Extension — chart management
📊 KNN Engine
• ATR Baseline Period, Trend MA Length — context windows used in matching
• K Neighbors, Max/Min Training Samples — how the probability engine is tuned
🎯 Mitigation Grading
• Respect Distance, Outcome Window — define what counts as a genuine respect versus a violation
🎨 Visualization
• Independent bullish/bearish zone line and fill colors, plus a separate Tested Zone color
• Independent near-edge and far-edge (base) line widths — the base edge is thicker by default to visually anchor the zone
• Displacement candle highlight with independent bullish/bearish colors, plus an optional plain-bar mode for the rest of the chart that never overrides the highlight
🖥️ Dashboard — show/hide, position — untested zone count by direction, global respect rate, KNN training progress, and the active outcome window
📝 NOTES
Only one active zone per direction accumulates statistics from the moment it's created; a fresh, stricter, or looser Displacement Strength setting will naturally change how many zones qualify and therefore how quickly the sample size builds. Zone size and displacement strength are measured relative to ATR, so the same settings adapt reasonably across different instruments without manual retuning.
⚠️ DISCLAIMER
This is an analytical and visualization tool. It does not generate trade signals and does not constitute financial advice. Historical mitigation rates do not guarantee how any specific future order block will resolve. Wskaźnik

SATTAM | MarketMindSATTAM | MarketMind — a complete trading workspace in one overlay: a Heikin-Ashi trend engine, automatic targets and trailing stop, volume-weighted support and resistance, a multi-timeframe dashboard and a live economic calendar. Open source, with every key parameter exposed as an input.
HOW IT WORKS
MarketMind builds Heikin-Ashi candles internally and uses them to read the trend, then places every level on real price. The trend decision comes from a smoothed candle, so market noise flips it less often. Entries, targets and stops are measured on the price you actually trade.
Keep your chart on regular candles. The script calculates Heikin-Ashi itself, so switching the chart to Heikin-Ashi would smooth the data twice and distort the signals.
THE ENGINE
A SuperTrend calculated on Heikin-Ashi values with ATR(14), in three modes:
• MarketMind: uses the fast multiplier (default 3.0). The most responsive mode, with more signals and earlier flips.
• MarketMind + (default mode): uses the slow multiplier (default 4.0). Balanced, with one signal per trend leg.
• MarketMind + FILTER: the most selective mode. It signals only when price breaks the high or low of the last 120 bars in the trend direction, and never gives two signals in a row in the same direction.
Both multipliers and the breakout window can be changed in the settings.
FEATURES
① Signals : buy and sell triangles at trend flips, with optional price text.
② Confirmation signals ◆: continuation entries inside a running trend. They require a Heikin-Ashi candle with a strong body (at least 0.70 × ATR and 30% of its range) and a short tail against the move (no more than 25% of its range). The candle must be early in its colour run, and at least 6 bars must have passed since the previous confirmation.
③ Targets and stops : TP1, TP2 and TP3 default to 2, 4 and 6 × ATR, and the stop loss to 4 × ATR. A Golden Entry (GE) pullback level sits at 1 × ATR, and a trailing stop (TSL) follows the slow SuperTrend line. All multipliers are adjustable. Targets that get hit are marked ✓1, ✓2 and ✓3, and an optional box shows risk against reward.
④ Support and resistance with volume : pivot zones (10/10) with a height of 0.40 × ATR(50), up to 12 live zones at once. Each zone has a volume bar and a label. On resistance zones the label shows the selling share (for example "167.72K · 39% Sell"), and on support zones the buying share ("79.64K · 61% Buy"). The bar's length follows that share. Optional "$" markers show breaks.
⑤ Drawing tools : a MarketMind moving average (EMA 34), a linear-regression price channel (100 bars), Fibonacci levels (internal, external or both), and CHoCH and BoS structure breaks with internal (3) or external (15) pivots.
⑥ Trend candles : the whole candle (body, border and wick) is painted in your chosen trend colours.
⑦ Daily and weekly levels : previous day and previous week high and low, with optional daily and weekly dividers.
⑧ Next-candle probability : shows the expected range of the next candle.
⑨ Higher-timeframe candles : up to ten candles from any higher timeframe beside price, with an optional volume profile.
⑩ MarketMind dashboard : a table with the columns Frame, HTF, Gauge, Reading and Session. It shows trend direction on six timeframes (3m, 5m, 15m, 1h, 4h and D) plus short- and long-term averages, and FIB, VOL, RSI and $$$ readings. The four trading sessions (New York, London, Tokyo and Sydney) light up while they are open. An 8-point BULL / BEAR score with ▰▱ bars leads to a JUDGE verdict (SLIGHT, MODERATE or STRONG). There are two themes (Classic, and Dark for black backgrounds), five sizes and nine positions.
⑪ Live economic calendar : real Forex Factory events on the chart, for today or the whole week. It filters by impact (red and orange by default), supports a timezone offset, and can optionally show only the events for the symbol's currencies.
⑫ External data : blocks signals around high-impact news, adds a macro filter (DXY / US10Y), and can show a COT net-position row and a company fundamentals row (revenue, EPS, net income, debt/equity). All of these are off by default.
ALERTS
MarketMind Buy · MarketMind Sell · Confirm Buy · Confirm Sell. Each message includes the ticker and timeframe.
CREDITS
The economic calendar uses the open-source toodegrees Forex Factory libraries (MPL-2.0), with data from Pine Seeds.
This indicator is an analysis tool, not financial advice. Test any setting on your own market and timeframe before trading with it.
==============================================
SATTAM | MarketMind — أدوات تحليل كاملة في مؤشر واحد: محرّك اتجاه مبني على هايكن آشي، أهداف ووقف متحرّك يُحسبان تلقائياً، دعوم ومقاومات مع قراءة الفوليوم، لوحة لعدة أطر زمنية، وتقويم اقتصادي حيّ. مفتوح المصدر، وكل إعداداته الأساسية قابلة للتعديل.
كيف يعمل
يحسب ماركت مايند شموع هايكن آشي بنفسه ويقرأ منها الاتجاه، ثم يضع كل المستويات على السعر الحقيقي. قرار الاتجاه يأتي من شمعة مُنعَّمة، فلا يتقلّب مع كل حركة صغيرة في السوق. أما الدخول والأهداف والوقف فتُقاس على السعر الذي تتداول به فعلاً.
خلِّ الشارت على الشموع العادية. المؤشر يحسب هايكن آشي داخلياً، فلو غيّرت الشارت إلى هايكن آشي ستُنعَّم البيانات مرتين وتتشوّه الإشارات.
المحرّك
سوبرترند محسوب على قيم هايكن آشي مع ATR(14)، وله ثلاثة أوضاع:
• MarketMind: يستخدم المضاعف السريع (الافتراضي 3.0). أسرع الأوضاع، إشاراته أكثر وانقلاباته أبكر.
• MarketMind + (الوضع الافتراضي): يستخدم المضاعف البطيء (الافتراضي 4.0). متوازن، وفيه إشارة واحدة لكل موجة اتجاه.
• MarketMind + FILTER: أكثرها انتقائية. لا يعطي إشارة إلا إذا كسر السعر أعلى أو أدنى آخر 120 شمعة في اتجاه الترند، ولا يعطي إشارتين متتاليتين في نفس الاتجاه.
تقدر تغيّر المضاعفين وعدد شموع الكسر من الإعدادات.
المميّزات
① الإشارات: مثلثات شراء وبيع عند انقلاب الاتجاه، ويمكن إظهار السعر معها.
② إشارات التأكيد ◆: فرص دخول مع الاتجاه وهو مستمر. تحتاج شمعة هايكن آشي جسمها قوي (0.70 × ATR على الأقل، و30% من طولها على الأقل)، وذيلها عكس الحركة قصير (25% من طولها كحد أقصى). ولازم تكون الشمعة من أوائل سلسلة لونها، وأن تمرّ 6 شموع على الأقل منذ آخر تأكيد.
③ الأهداف والوقف: TP1 وTP2 وTP3 افتراضياً عند 2 و4 و6 × ATR، ووقف الخسارة عند 4 × ATR. مستوى الدخول الذهبي (GE) للارتداد عند 1 × ATR، والوقف المتحرّك (TSL) يلحق خط السوبرترند البطيء. كل هذه القيم قابلة للتعديل. الأهداف المتحقّقة تُعلَّم بـ ✓1 و✓2 و✓3، ويمكن إظهار صندوق يوضّح المخاطرة مقابل العائد.
④ الدعوم والمقاومات مع الفوليوم: مناطق من القمم والقيعان (10/10) ارتفاعها 0.40 × ATR(50)، وتظهر حتى 12 منطقة في نفس الوقت. لكل منطقة عمود فوليوم وليبل. في مناطق المقاومة يعرض الليبل نسبة البيع (مثل «167.72K · 39% Sell»)، وفي مناطق الدعم نسبة الشراء («79.64K · 61% Buy»). طول العمود يتبع هذه النسبة. ويمكن إظهار علامة «$» عند كسر المنطقة.
⑤ أدوات الرسم: متوسط ماركت مايند (EMA 34)، وقناة سعرية بالانحدار الخطي (100 شمعة)، ومستويات فيبوناتشي (داخلي أو خارجي أو كلاهما)، وكسر الهيكل CHoCH وBoS بقمم وقيعان داخلية (3) أو خارجية (15).
⑥ تلوين الشموع: الشمعة كاملة (الجسم والإطار والفتيل) تتلوّن بألوان الاتجاه اللي تختارها.
⑦ المستويات اليومية والأسبوعية: أعلى وأدنى سعر لليوم السابق والأسبوع السابق، مع فواصل يومية وأسبوعية اختيارية.
⑧ احتمالية الشمعة القادمة: يعرض النطاق المتوقّع للشمعة الجاية.
⑨ شموع الإطار الأعلى: حتى عشر شموع من أي إطار أكبر بجانب السعر، مع بروفايل فوليوم اختياري.
⑩ لوحة ماركت مايند: جدول بأعمدة Frame وHTF وGauge وReading وSession. يعرض اتجاه ستة أطر زمنية (3د، 5د، 15د، 1س، 4س، يومي) ومتوسطَي المدى القصير والطويل، مع قراءات FIB وVOL وRSI و$$$. الجلسات الأربع (نيويورك، لندن، طوكيو، سيدني) تضيء وقت فتحها. ومقياس BULL / BEAR من 8 نقاط بأشرطة ▰▱ يعطي حكم JUDGE (SLIGHT أو MODERATE أو STRONG). فيه ثيمان للألوان (كلاسيكي، وداكن للخلفيات السوداء)، وخمسة أحجام وتسعة مواضع.
⑪ التقويم الاقتصادي الحيّ: أحداث Forex Factory الحقيقية على الشارت، لليوم أو للأسبوع كله. تقدر تفلترها حسب الأهمية (الأحمر والبرتقالي افتراضياً)، وتضبط فرق التوقيت، وتختار عرض أخبار عملتَي الرمز فقط.
⑫ بيانات خارجية: إيقاف الإشارات وقت الأخبار القوية، وفلتر ماكرو (DXY وUS10Y)، وصف COT لصافي مراكز المضاربين، وصف لأساسيات الشركة (الإيرادات، ربحية السهم، صافي الدخل، الدين إلى حقوق الملكية). كلها مطفأة افتراضياً.
التنبيهات
MarketMind Buy · MarketMind Sell · Confirm Buy · Confirm Sell. كل تنبيه يذكر الرمز والإطار الزمني.
التقويم الاقتصادي يستخدم مكتبات toodegrees مفتوحة المصدر لأخبار Forex Factory (رخصة MPL-2.0)، وبياناتها من Pine Seeds.
هذا المؤشر أداة تحليل وليس نصيحة مالية. جرّب أي إعداد على سوقك وإطارك الزمني قبل ما تتداول به. Wskaźnik

Pivot Consolidation Zone█ OVERVIEW
Pivot Consolidation Zone detects consolidation ranges built between a confirmed pivot high and a confirmed pivot low. A zone is only created once both pivots have been tested and the pair satisfies a set of conditions: time distance, continuity of closes, and an optional height limit relative to ATR.
Once a zone is created, the indicator tracks its development and builds a Volume Profile for the range between the pivot high and pivot low. The profile shows the distribution of volume across price levels, along with an approximate Buy/Sell Volume split.
A close outside the zone ends the zone's activity and can generate a bullish or bearish signal. An optional Volume Confirmation filter requires the breakout direction to agree with the dominant volume side accumulated inside the zone before the breakout candle.
After a breakout, the zone is closed regardless of whether Volume Confirmation is met — the filter only determines whether a confirmed signal (and the zone recolor) is generated, not whether the zone ends. An optional TP/SL module can then plot Entry, Stop Loss, and up to three Take Profit levels, based on ATR or a fixed percentage and a chosen Risk:Reward.
█ CONCEPTS
The indicator combines pivot structure, the consolidation range, tests of the pivot candles, volume distribution, and breakout detection. A pivot on its own does not create a zone — a paired upper and lower pivot, a test on both sides, and price behavior inside the resulting range are all required.
Pivot Structure
A confirmed pivot high and pivot low mark the potential boundaries of a future zone. Pivot Length is the number of candles required on both sides of a local high or low to confirm it.
The zone's upper boundary is the pivot high price, and the lower boundary is the pivot low price. These two levels define the box and should not be confused with a test (see "Pivot Tests" below).
Pivot Pair
A zone is only created from a pair that satisfies all of the following conditions at once:
• the pivot high sits above the pivot low,
• both pivots fall within Max Pivot Pair Distance,
• closes between the start of the pair and the current candle stay inside the resulting range,
• the pair's height passes the optional ATR limit.
Max Pivot Pair Distance limits how far apart in time the pivots forming a single zone can be. This prevents distant price extremes from being automatically merged into one wide range.
Zone Range
Once a valid pair is found, the indicator draws a box:
• Top — the pivot high,
• Bottom — the pivot low,
• Left — extends backward as long as closes stay inside the range, up to a maximum of Max Box Left Edge bars,
• Right — advances with each new candle for as long as the zone remains active.
An optional ATR filter rejects pairs whose height exceeds a specified multiple of ATR.
Pivot Tests
A test does not refer to a touch of the finished zone's boundary. It refers only to the range of the candle that formed a given pivot.
For a pivot high, the indicator stores the range from that candle's high down to its low. For a pivot low, it stores the range from that candle's low up to its high. A test is recorded whenever a later candle overlaps this stored range.
Both pivots must accumulate at least one such test before the pair can form a zone. Optional markers show:
• ▼ — the pivot high candle,
• ▲ — the pivot low candle,
• numbered labels — successive tests of that pivot candle's range.
Numbering runs separately for the upper and lower pivot. These markers document the history that preceded the zone's formation, not subsequent touches of the already-drawn box.
ATR Breakout Margin
Min Breakout Size (x ATR) sets how far a close must move beyond a level to be treated as a breakout:
ATR × Min Breakout Size
A value of 0 disables the filter. The same margin is used to invalidate pivots, to check the continuity of the range, and to detect the zone breakout itself, so minor violations can be treated as noise.
Volume Profile
For an active zone, the range's height is divided into Price Bins. Each candle's volume is distributed across the bins according to how much of its high-low range overlaps each price level, then split into Buy and Sell Volume based on where the candle's close sits within that range:
• a close nearer the high increases the Buy Volume share,
• a close nearer the low increases the Sell Volume share.
The width of the strongest bin corresponds to Max Profile Width, and the remaining bins are scaled proportionally to it. The profile therefore shows both where volume concentrated and its approximate directional split.
By default, only the portion of a candle inside the zone is counted. Include Wick Volume Outside the Zone also adds volume from wicks extending beyond the range, assigning the excess to the nearest edge bin. This setting affects the profile, the Buy/Sell bars, the percentage label, and Volume Confirmation.
Buy/Sell Volume Split
Below the zone, two bars and a label can show the Buy/Sell Volume split for the entire range. The dominant side is:
• Buy — when Buy Volume is greater than or equal to Sell Volume,
• Sell — when Sell Volume is greater than Buy Volume.
Breakout
A zone ends when price closes outside its range:
• Breakout Up — Close > Zone Top + ATR margin,
• Breakout Down — Close < Zone Bottom − ATR margin.
If Volume Confirmation is disabled, the signal direction depends only on the breakout side. If enabled, a bullish breakout requires Buy Volume to be dominant, and a bearish breakout requires Sell Volume to be dominant.
The breakout candle is not added to the profile before this evaluation, so the breakout impulse itself cannot inflate the side that is confirming its own exit from the zone.
After a confirmed breakout, Recolor Zone on Breakout can change the box color to bullish or bearish. If the breakout is not confirmed, the zone stays neutral in color but is still closed.
TP/SL
After a confirmed signal, the TP/SL module plots Entry at the close of the breakout candle, a Stop Loss, and up to three targets. SL can be calculated as ATR × multiplier or as a fixed percentage from Entry. TP levels are derived from the chosen Risk:Reward ratios applied to the Entry-SL distance.
A new signal replaces the previous set of levels. The lines extend with price and stop once the market reaches the SL or the highest enabled TP. This is a level-planning tool, not an assessment of entry quality.
█ FEATURES
• Zone detection from a tested pivot high/pivot low pair, with a time-distance limit, close continuity check, and an optional ATR height limit.
• Volume Profile inside the zone, split into Price Bins with Buy and Sell Volume.
• Optional inclusion of wick volume extending outside the zone.
• Bars and label showing the total Buy/Sell Volume split below the zone.
• Upside and downside breakout signals, with optional Volume Confirmation.
• Zone recoloring on a confirmed breakout.
• Optional markers for pivot candles and numbered tests of their range.
• TP/SL module: Entry, SL, and TP1-TP3 based on ATR or percentage, and Risk:Reward.
• Alerts for upside and downside breakouts.
█ APPLICATIONS
Consolidation Analysis
The indicator locates ranges where price stays between a confirmed and tested pivot high and pivot low, producing a structure anchored to specific swing candles instead of a manually drawn box.
Zone Strength and Volume
The Volume Profile shows which price levels accumulated the most volume. The Buy/Sell split adds context on which side held the advantage across the whole range, not just at the moment of breakout.
Breakout Analysis
A signal marks price leaving the zone on a close outside its range. Volume Confirmation can narrow this down to breakouts that align with the volume split accumulated beforehand.
Example of Use
An active zone is better treated as an area of equilibrium than as a ready-made entry. Before acting on a signal, it helps to weigh:
• the breakout side,
• the dominant Buy/Sell Volume,
• the shape of the Volume Profile,
• the zone's position within the broader structure,
• momentum and context from a higher timeframe.
The zone being drawn, or a triangle appearing, is not on its own a sufficient reason to trade.
█ NOTES
• A test refers to the range of the pivot candle, not to a touch of the already-formed zone boundary.
• Volume Confirmation is optional. Without it, the signal depends only on the breakout direction.
• The breakout candle is excluded from the Volume Profile until after Volume Confirmation is evaluated.
• Buy and Sell Volume are derived from where the close sits within each candle's range. This is an estimate, not actual tape/order-flow buy/sell data.
• Show Breakout Signals is a shared switch: disabling it also disables the TP/SL module and the alerts, not just the on-chart triangles.
• TP/SL is a visual level-planning tool and does not assess the quality of a signal.
• This indicator does not replace independent market analysis or risk management. Wskaźnik

TBR Stats+ (M1D)TBR Stats+
Measures how far price has historically travelled once a fixed New York morning window breaks from its opening price, and draws that history as percentile boxes on today's window. It is built for one-minute to one-hour charts. It is not a signal generator, and the entry is left to you.
What it does
1 · The window. One window is read each weekday, 8:00 to 12:00 New York time by default. The open of its first bar is the TBR Open, drawn as a solid line with a dotted trigger line either side of it.
2 · The break. The trigger sits 0.25 standard deviations either side of the TBR Open, where the standard deviation is taken from the open-to-close change of the last 20 windows. A break is the first bar that CLOSES beyond a trigger line. A wick through it is not a break.
3 · The boxes. Every past window that broke the same way is measured twice. Ext is how far price travelled past the TBR Open in the break direction before the window closed. Rev is how far it came back through the TBR Open after the break, and a window that never came back measures zero. Each box is drawn from the median to the 90th percentile of its distance: the heavier part runs median to 75th, the lighter part 75th to 90th. Until the window breaks, both sides' Ext boxes are drawn faintly. On the break they are replaced by the break side's Ext box and the opposite Rev box.
4 · The sample. On NQ and MNQ with the default window, trigger and lookback, the boxes and held rates come from five years of MNQ one-minute sessions, October 2021 to September 2026: 1,269 windows, 614 that broke up and 643 that broke down. Those distances are stored in standard deviation units and multiplied by the live standard deviation, so a box sizes itself to current volatility rather than to price levels from years ago. On any other symbol or setting, the sample is built from the chart's own history on a five-minute request, and the boxes stay hidden until at least 15 windows have broken the same way. The archive is fixed; it does not update itself.
5 · The table. It reports whether this window has broken up, down or not yet; how many windows broke each way and how many of those held; how many never broke; the trigger distance in points; and where the sample comes from. A break held when the window closed on the break side of the TBR Open, or, in the stricter setting, beyond the trigger line.
Visual grammar
The up side is purple and the down side is magenta. The Ext and Rev names sit to the left of the window, each listing its median, 75th and 90th percentile prices in one block, or on every edge as a setting. The TBR Open name sits at the right, beside the line it names. Only the last five windows stay on the chart by default.
Method & repainting
Breaks are evaluated on confirmed bars only. A window only enters the sample once it has closed, so today's window never feeds its own boxes. The sample request runs without lookahead; its figures change only when a window closes.
Settings
The window; whether to use the archive on NQ and MNQ, the sample timeframe, the trigger in standard deviations, the standard deviation lookback, the sample cap and the minimum sample before boxes draw; the held definition; label layout and side, windows kept on the chart, the before-break boxes, right offset and text size; the table and its position. Two alerts: break up, and break down.
Disclaimer
This is a decision-support tool for discretionary trading. It is not financial advice, and no market's past behaviour is indicative of future results. Wskaźnik

Real Fair Value Gaps [GBB]Real Fair Value Gaps
A fair value gap is a three-candle imbalance: the wicks of candle 1 and candle 3 do not overlap, leaving a price range that was never traded. This script finds those gaps on the chart timeframe and on one higher timeframe, tracks each one through its full life (fresh, touched, midpoint tapped, mitigated or inverted), and draws only the ones that matter right now.
What it does differently than other Fair Value Gap indicators
Consumed vs. remaining : As price trades into a gap, the drawn zone shrinks to the unfilled remainder. The consumed part is shown as a dashed fill from the entered edge to the deepest penetration, so you see how much of the gap is actually left, not a full box that price already went through.
Spotlight : Only the N active gaps closest to price carry the full glow (gradient bands, dotted midpoint, origin notch, price chip). Everything else is a thin outline. The chart stays readable with dozens of live gaps.
Freshness : Glow decays to half strength over a set number of bars and then holds. A gap from 300 bars ago looks different from one made ten bars ago.
Inversions : A close beyond the far edge flips the gap into an inverted FVG (IFVG) with the opposite bias instead of retiring it. This is an optional setting
Visibility window : Gaps farther than X ATR from price are tracked but not drawn, so far-away zones do not stretch your price scale.
Higher timeframe without repainting : HTF gaps are built only from completed HTF candles (values are read with a offset) and are anchored to the exact HTF candle times. Auto mode picks one step above your chart (1m→15m, 5m→1H, 15m→4H, 1H→D, 4H→W, D→W).
Everything on confirmed bars. Detection, state changes and alerts all fire on bar close.
Inputs
Detection
Min size (ATR ×) : ignore gaps smaller than a multiple of ATR(14) on the gap's own timeframe. 0 = off.
Auto threshold : keep a gap only if its height relative to price is above the running mean of all candidates seen so far. Overrides Min size.
Require displacement : candle 2 must close beyond candle 1's extreme.
Mitigation
Source : Wick or Close.
Point : Near edge, Midpoint or Far edge (fully filled).
Track inversions : on/off.
Higher timeframe
Enable, and the timeframe (empty = automatic).
Look
Palette : (GBB / Calm blue-amber / Custom), glow intensity, spotlight count, fade length, how long mitigated outlines stay, label mode, and the ATR visibility window.
Display
Info table : active gap counts, nearest gap above and below price, HTF status, and a running fill rate over the loaded bars.
Alerts
New bullish / bearish FVG (chart TF), new HTF bullish / bearish FVG, price entered a gap, midpoint tapped, gap mitigated, gap inverted. All on confirmed bars.
Data window
Active bull count, active bear count, mitigated count, HTF active count, and a last-event code (1 new bull, 2 new bear, 3 touch, 4 midpoint, 5 mitigated, 6 inverted) are exposed as hidden plots for use in your own scripts.
How to read it
The dotted midpoint line is the consequent encroachment level; it disappears once price has consumed it. The small solid notch marks the birth candle. The chip on the right edge shows the midpoint price and tags the gap as HTF or IFVG. A mitigated gap collapses to a grey dashed outline frozen at the bar where it was filled, then drops off after the configured number of bars. Wskaźnik

Colored TMA Trend Signals [josseliani]This is a very simple indicator for beginners in trading, based on the popular Triangular Moving Average.
I wanted to keep it simple: minimal settings, clear visuals, and easy-to-understand trade logic.
TMA color-change signals are popular, but there is one thing I wanted to improve. Sometimes, by the time TMA changes direction, price has already moved quite far away from the average. The turn is there, but entering is already uncomfortable: price is stretched, and the potential stop becomes too large.
So I added a simple candle-close confirmation engine instead of using every color change as an entry.
→ THE TMA
TMA is a Triangular Moving Average, calculated here using two consecutive simple moving averages of the same length.
Green → TMA is rising.
Red → TMA is falling.
A basic standard-deviation channel surrounds it. Optional EMA smoothing can be applied to the price source.
Small triangles mark confirmed changes between rising and falling TMA direction. They show the turn itself; BUY/SELL uses a separate confirmation.
→ BUY/SELL CONFIRMATION
For BUY, the indicator counts consecutive candle closes above the selected level. For SELL, it counts consecutive closes below it.
The default is three candles, with TMA as the confirmation level.
You can also select Bands:
• BUY → closes above the upper band.
• SELL → closes below the lower band.
Each close is compared with the level calculated on that candle.
The important detail is that the candle counters run independently of the TMA color change.
Confirmation is checked exactly on the selected Nth close — the third close by default. If the direction and signal-limit conditions do not allow a signal then, that confirmation is not reused on later candles.
The sequence must reset and form again.
For example, if price has already closed above TMA for more than three consecutive candles before TMA turns green, the earlier confirmation is not reused. Price must first close at or below TMA, then form three consecutive closes above it again.
If TMA turns green on the third close, BUY can appear together with the triangle. SELL follows the same logic in the opposite direction.
This was my simple way of skipping some entries where the move had already started before TMA turned. The script does not measure the distance from price to TMA, so a fresh confirmation can still appear far from the average.
→ ONE SIGNAL PER COLOR
With the default settings:
• A confirmed turn to green unlocks one BUY and blocks SELL.
• A confirmed turn to red unlocks one SELL and blocks BUY.
The first eligible confirmation produces the signal.
After BUY, another BUY is blocked until TMA turns red and then green again. After SELL, another SELL is blocked until it turns green and then red again.
A color section can also have no signal if the conditions are not met.
Disabling One Trade Per Color allows further signals after new confirmation sequences form. Its directional restrictions remain active while it is enabled, even if Only With TMA Trend is disabled.
→ HOW I USE IT
For me, the small triangle is simply information: TMA has changed direction.
BUY/SELL is a separate trade signal.
I made this mainly for people who are just starting to work with the market and do not want to immediately dive into complicated strategies and lots of settings.
It is basically ordinary trading with a moving average, just visualized a little more conveniently.
You can leave the default settings and watch the TMA direction and the confirmed BUY/SELL signals.
This is not a complete trading system. The trader still decides whether an entry makes sense at the current price and determines the stop, target, position size and risk management.
→ INPUTS
• Half Length → TMA smoothing length. Default: 12. The double-SMA calculation has an effective length of 2 × Half Length − 1, or 23 by default.
• Price Source → selects the calculation price. The default Weighted Price is (High + Low + 2 × Close) / 4.
• Band Deviation → standard-deviation multiplier controlling channel width. Default: 2.0. Standard deviation uses the selected source and the effective TMA length.
• Use Source Smoothing → optional EMA smoothing before calculating TMA and the channel. Disabled by default.
• Smoothing Period → optional EMA length. Default: 12.
• Show Bands → shows or hides the channel.
• Show TMA Color-Change Signals → shows or hides the triangles without disabling their alerts.
• TMA Line Width → adjusts line thickness.
• Show BUY/SELL Labels → shows or hides trade labels without disabling trade calculations or alerts.
• Break Level → selects TMA or Bands for confirmation.
• Confirm Bars → required consecutive closes, from 1 to 10. Default: 3. Confirmation is checked exactly on the selected Nth close.
• Only With TMA Trend → allows BUY only while TMA is rising and SELL only while it is falling. Enabled by default.
• One Trade Per Color → applies the directional signal limits explained above. Enabled by default.
Label spacing uses ATR and the candle range. It is only visual and does not change the signal candle or trading logic.
→ WHAT I ADDED AND WHY
TMA and standard-deviation bands are established calculations. My addition is the confirmation and signal-handling logic around them:
• Separate markers for TMA turns and BUY/SELL confirmations.
• Candle-close counters independent of color changes.
• Confirmation checked on the exact Nth close, without reusing a blocked confirmation later.
• One eligible signal per matching color turn.
• A choice of TMA or bands as confirmation levels.
• Separate alerts independent of marker visibility.
The purpose is to distinguish a moving-average turn from a confirmed price sequence while keeping the visual presentation and trading logic simple.
→ ALERTS
• TMA Bullish Color Change
• TMA Bearish Color Change
• Any TMA Color Change
• Trade Long
• Trade Short
• Any Trade Signal
All signal conditions require a closed candle. Select Once Per Bar Close when creating alerts.
→ CONFIRMATION AND LIMITATIONS
Triangles and BUY/SELL signals appear on the confirmation candle after it closes. They are not shifted into the past. The first established TMA direction does not produce a turn triangle, and unchanged TMA values preserve the last direction for turn detection.
The line, its color and the channel can change while the current candle is open. The calculation uses no future bars or higher-timeframe requests.
TMA and candle confirmation introduce delay. Signals can arrive late, sideways markets can produce unsuccessful signals, and a sequence reset does not guarantee an entry close to TMA.
Use standard time-based candles. This is an indicator, not a backtested strategy; it does not calculate trade results or a verified win rate.
Wskaźnik

Wskaźnik

Delta Run ConfluenceDelta Run Confluence
Any bar can show net buying or net selling in its volume delta. This looks for the runs: several bars of the same flow that moved price the way flow should, with nothing pushing back.
That's what this indicator finds. It watches every bar for a run of one-sided delta, checks whether price responded to it, checks that the other side has gone quiet, and marks the bar where all three line up.
It's a confluence tool, not a standalone indicator. Here's the approach. Put it on your chart and keep trading your own setup. When a marked run shows up at a level you're already watching, you can start asking a real question: do reversals happen more often when a run lands there? Or do continuations? The chart shows you the runs and the table gives you the numbers, so you can work that out on your own symbol and timeframe.
🔸 Three checks, one bar
It runs three checks on estimated volume delta and only marks a bar when all three pass:
▪ 3-Bar Delta Run. Delta is estimated from lower-timeframe candles (1-second candles on a 1-minute chart, 1-minute candles up to 15 minutes), each one's volume signed by its direction. A run is three bars in a row with net delta on the same side, buying or selling. Three is the default and you can change it. It means one side kept pressing.
▪ Delta Efficiency. Take the run's price range and divide it by the delta behind it. Compare that with the last 100 bars. Above average, price moved more than it normally does for that much delta. Below average, price barely moved for it, which is what absorption looks like. You can look for either, or both.
▪ Isolation Test. No run the other way in the last 45 minutes. One-sided flow, not a tug-of-war.
Persistent, effective and uncontested, all on the same bar. When that happens the run is marked, green for buy-flow, red for sell-flow. That's the confluence.
Every threshold is a plain number you can turn up or down. Want only the cleanest runs? Widen the isolation window. Curious about absorption near session highs and lows? Set the efficiency filter to Absorbed.
🔶 WHAT YOU'LL SEE
▪ Marked runs take the flow colour. The rest of your chart stays as it is.
▪ A soft glow around the marked candles, so you spot them zoomed right out.
▪ A triangle under a buy-flow run, or over a sell-flow run, on the bar that completed it.
▪ Dots along the bottom count runs as they build. A faded stack is a run that didn't pass. A bright one-two-three staircase is one that did.
▪ Alerts for buy-flow and sell-flow runs.
🔶 THE TABLE
It tells you what marked runs did on the chart you have open right now:
▪ Marked runs ▲ / ▼ and how many per session.
▪ Avg run size · flow strength. How big the runs were in ticks, and how heavy their delta was compared with normal. Above one means heavier than usual.
▪ Next candle continued / reversed. What the very next candle did.
▪ Follow-through / pullback. Over the next five bars (adjustable), how far price ran with the flow and how far against it, in ticks.
▪ Delta source. Where the delta came from and how much of the chart had real lower-timeframe data.
▪ Last bar. So you know it's live.
Load it on the timeframe you actually trade. Look at the numbers. Then decide whether run confluence adds anything to your entries, long or short.
🔶 HOW IT'S BUILT
▪ Each lower-timeframe candle's volume takes the sign of that candle. If open equals close, the sign comes from the previous candle's close.
▪ Signed volumes are added up for each chart bar.
▪ 1-minute charts use 1-second data. Up to 15 minutes, 1-minute data. Above that, 5-minute data. Or pick a source manually.
▪ Bars with no lower-timeframe data fall back to candle direction times volume. The table tells you how much of the chart that applies to.
All three checks run on that one delta series. No second data source, no third-party code. Everything is evaluated on closed bars.
🔶 SETTINGS
▪ Run length. Default 3.
▪ Delta source timeframe. Auto, or fixed.
▪ Efficiency filter and baseline. Any, Efficient or Absorbed. Baseline default 100 bars.
▪ Require isolation and window. Default on, 45 minutes.
▪ Follow-through window. Default 5 bars.
▪ Palette. Green / Red by default. Already on green and red candles? Aurora (cyan and magenta) stands out more. Heat (yellow and orange) if you want something else.
▪ Dim all other candles. Off by default. Turn it on and the marked runs become the only colour on the chart.
▪ Glow and glow size. Sized in ATR multiples so it scales with volatility.
▪ Run dots. Marked runs only, completed runs, all run bars, or off.
▪ Table. On or off, corner, text size.
🔶 LIMITATIONS
▪ Delta comes from lower-timeframe candles, not bid and ask ticks. It won't match a footprint.
▪ Lower-timeframe history is limited. Older bars use the fallback, and that boundary moves
forward over time. Check the Delta source row before trusting long histories.
▪ Real-time intrabars can differ slightly from historical ones specifically after a refresh.
▪ No volume, no runs. Minute-based intraday charts only.
▪ The glow draws on recent runs only. Older runs keep their colours, markers and dots.
▪ The table is descriptive and in-sample. No costs, no backtest, and the numbers change with every symbol and timeframe.
🔶 SUMMARY
Three checks on estimated volume delta, marked on the chart at the bar where all three pass, with a live table showing what those runs did on your chart. Built as confluence for traders who want to know whether one-sided flow, buying or selling, is behind the setups they already take.
Wskaźnik

QRB - Quarterly Break RangeQRB — Quarterly Break Range is a market-structure indicator designed to help traders visualize how price interacts with the previous quarter’s range.
At the beginning of each new calendar quarter, QRB automatically identifies the completed previous quarter’s:
High
Low
50% midpoint
Those three levels are then projected across the current quarter, creating a simple structural map for price.
The indicator automatically updates when a new quarter begins, so there is no need to manually redraw the levels.
The Idea Behind QRB
The concept behind QRB comes from a simple observation:
Markets often react to important historical ranges.
Intraday traders commonly use concepts such as the Opening Range, previous-day high and low, session ranges, and other reference levels to understand where price is accepting, rejecting, or breaking away from prior value.
QRB applies that same thought process to a much larger timeframe.
Instead of asking:
“Where is price relative to today's opening range?”
QRB asks:
“Where is price relative to the previous quarter?”
The previous quarter becomes the reference range, while the current quarter shows how the market responds to that range.
This allows traders to study quarterly price behavior using only three objective levels.
Understanding the Three Levels
Previous Quarter High
The previous-quarter high represents the upper boundary of the completed quarterly range.
When price approaches this level, traders may watch for:
Rejection
Consolidation
Breakout attempts
Acceptance above the range
Retests after a breakout
A sustained move above the previous-quarter high may indicate that the market is beginning to expand beyond the prior quarter's range.
Previous Quarter Midpoint
The midpoint is calculated as:
(Previous Quarter High + Previous Quarter Low) ÷ 2
This represents the 50% level of the previous quarter's range.
The midpoint can be useful as a simple measure of where price is trading relative to the prior quarter.
Price holding above the midpoint places it in the upper half of the previous quarter's range.
Price holding below the midpoint places it in the lower half.
The midpoint may also act as an important area of balance, support, resistance, or transition.
Previous Quarter Low
The previous-quarter low represents the lower boundary of the completed quarterly range.
When price approaches this area, traders may watch for:
Support
Rejection
Consolidation
Breakdown attempts
Acceptance below the range
Retests following a breakdown
A sustained move below the previous-quarter low may indicate that the market is expanding beneath the previous quarter's range.
How to Use QRB
QRB is primarily designed as a market-structure framework, not a standalone buy or sell signal.
The three quarterly levels can help answer a few simple questions:
Where is price?
Above the previous quarter
Inside the previous quarter
Below the previous quarter
Which half of the prior range is price occupying?
Above the midpoint
Below the midpoint
How is price reacting to the boundaries?
Breaking
Rejecting
Retesting
Consolidating
Accepting beyond the range
That information can then be combined with a trader's existing approach to trend, momentum, price action, support and resistance, volume, or other forms of confirmation.
Example Market Behaviors
One possible bullish sequence could look like:
Previous-quarter high is tested
→ Price breaks above it
→ Price remains above the level
→ The level is retested
→ Buyers continue pushing price higher
A possible bearish sequence could look like:
Previous-quarter midpoint fails
→ Price moves into the lower half of the range
→ Previous-quarter low breaks
→ Price remains below the range
→ Selling pressure continues
Another possible scenario is simple rejection:
Price reaches the previous-quarter high
→ Fails to gain acceptance above it
→ Moves back inside the range
→ Rotates toward the midpoint
QRB does not attempt to predict which scenario will occur.
It simply provides the structural levels needed to observe what price actually does.
Why Quarterly Ranges?
Calendar quarters are natural market periods.
Each quarter contains roughly three months of price discovery and can represent a significant amount of accumulated positioning and market activity.
Rather than treating each daily candle independently, QRB allows traders to step back and see price within a broader structural framework.
The previous quarter essentially becomes a large reference range.
The current quarter then answers the question:
Will price remain inside that range, reject its boundaries, or expand beyond it?
That is the central idea behind QRB.
Best Use
QRB was designed primarily for higher-timeframe analysis, especially the Daily chart.
It may be useful across different markets, including:
Stocks
Forex
Futures
Indices
Cryptocurrencies
Because different markets behave differently, traders should evaluate the concept independently on the instruments they trade.
Customization
QRB allows users to customize the appearance of each level, including:
Previous Quarter High color
Previous Quarter High thickness
Midpoint color
Midpoint thickness
Previous Quarter Low color
Previous Quarter Low thickness
This allows the quarterly structure to remain visible without overwhelming the chart.
The Philosophy Behind QRB
QRB is intentionally simple.
There are no complicated calculations, predictive algorithms, or large collections of indicators.
The purpose is to create a clean structural map and allow price action to provide the information.
The core idea is:
Previous quarter = reference range
Current quarter = reaction to that range
From there, the trader observes whether price accepts, rejects, breaks, retests, or rotates around those levels.
Sometimes three well-defined levels can tell you more about market structure than twenty indicators ever could. Wskaźnik

Weekday Return Distribution [Pineify]Weekday Return Distribution
Overview
This day-of-week seasonality indicator keeps bounded samples for all seven days on 1D-1W charts. It reports median return, interquartile range (IQR), positive-return rate, and sample count.
Problem Definition
A weekday mean can be raised by one extreme gap even when most observations are negative. The same mean can describe a tight cluster or a wide distribution, and it does not reveal whether the sample has six cases or sixty. This creates false precision. This script separates robust location, middle spread, sign balance, and evidence quantity. It describes historical conditioning, not the next return.
Design Rationale
Median replaces the mean because rank location is less sensitive to outliers. Q1 and Q3 describe the middle half without assuming a Gaussian sample. Positive-return rate tests whether direction is broadly shared, while N stops thin samples from receiving full authority. A lifetime sample can preserve obsolete regimes, while a short one makes quantiles jump. Bounded memory trades stability for adaptation. A requested daily context lets weekly charts inherit weekday statistics instead of calling a weekly return Monday data.
Key Features
Seven bounded weekday buckets with optional weekend exclusion.
Median, interpolated Q1/Q3, positive-return rate, and N.
Rotating IQR band, median track, reliability opacity, and table.
Joint bias gates, three alerts, and switchable layers.
How It Works
The engine runs in a requested 1D context. At a new daily bar, it calculates the previous completed log return as 100 x ln(previous close / earlier close) and assigns it to the weekday where that return ended. The live return is excluded; weekends are optional.
Each bucket keeps at most the chosen limit, removing its oldest excess value. A copied bucket is sorted. Q1, median, and Q3 are linearly interpolated at 25%, 50%, and 75%. Positive rate is the share strictly above zero, and N is the actual count.
The latest daily weekday selects the pane row. Gold bounds show Q1-Q3 and the thick line shows median percent return. Interpretation begins when N reaches the minimum. Positive bias requires median and positive rate to pass both positive thresholds; negative bias applies symmetric gates. Disagreement is Mixed; insufficient evidence is Wait. Teal, coral, and gray encode state, and opacity shows maturity.
How Multiple Indicators Work Together
All components measure one distribution. Median supplies location, Q1/Q3 supplies spread, positive rate checks sign participation, and N governs eligibility. The state is conjunctive: without spread uncertainty is hidden; without sign balance a few large returns can dominate; without N a sparse day looks mature. Band, line, color, and table share the same samples.
Trading Ideas and Insights
Use this as scheduling context, not an entry command. A positive median inside a narrow IQR with a high positive rate is more consistent than the same median inside a wide band. Compare days within one symbol and sample policy because assets have different scales. No state estimates profit or next-bar probability.
Unique Aspects
Common weekday tools show one mean or static rank. Here each day owns a bounded queue, the pane rotates through robust location and IQR, and sign participation plus N controls a separate state. Returns stay in percentage units. Only a previous completed daily return is inserted. Weekly charts reuse the daily engine, preserving the definition across 1D-1W.
How to Use
Start on a standard 1D chart and load enough history for each active day to reach minimum N. Read the thick line as median and the gold band as the middle 50% for the highlighted weekday. In the table, Pos or Neg means both gates pass; Mix means mature disagreement; Wait means insufficient evidence. Alerts report state entry or lost reliability, not orders.
Customization
Maximum samples sets memory from 12 to 104 observations per day. Larger values are smoother but slower; smaller values adapt faster. Minimum samples controls readiness. Median magnitude filters effects near zero, and Positive-return threshold sets sign participation with a symmetric negative rule. IQR, halo, background, marker, and table can be hidden without changing calculations. Defaults are not universal optima.
Assumptions and Limitations
This is descriptive seasonality, not causal evidence. Returns include sessions, gaps, feed adjustments, and chart construction. Holidays, missing bars, and calendar changes make buckets unequal; revisions can alter history. Quantiles lag regimes and depend on window settings. Positive rate ignores magnitude; IQR omits tails. On weekly charts, TradingView maps the latest daily context into each bar, so coverage and live timing depend on loaded history and access. Weekday and alerts advance with daily context. Use standard 1D-1W charts; other timeframes are invalid. No future access, backtest, costs, or execution model is included.
Conclusion
Weekday Return Distribution replaces a fragile average with a bounded distribution view. Median shows location, IQR shows middle spread, positive rate shows participation, and N controls readiness, keeping uncertainty and data boundaries visible.
Wskaźnik

Gold M15 Signal Engine with H4 Trend FilterWHAT THIS SCRIPT DOES
This indicator detects intraday entry setups on the 15-minute chart and attaches a complete, pre-calculated trade frame to each one: an entry, a stop-loss, and three targets. It then tracks that setup bar by bar and reports what actually happened to it — which target was reached, whether the stop was hit, and when the setup has gone stale.
It was built and tuned for gold (XAU/USD) on the 15-minute timeframe. The script deliberately refuses to run on any other timeframe.
WHY IT IS DIFFERENT FROM A STANDARD SIGNAL SCRIPT
Most published signal scripts stop at the arrow. They mark an entry and leave the trader to guess the rest. Three design choices separate this one:
1. Every signal ships with its own risk frame.
The stop-loss is derived from the structural level that produced the signal, not from a fixed pip distance, and it is then capped by a percentage-of-price ceiling so a single wide candle cannot create an unreasonable stop. The first target is ATR-based. The second target prefers a real support or resistance level detected on the chart, and only falls back to an ATR multiple when no suitable level exists. This means targets sit where price is actually likely to react, not at arbitrary distances.
2. The higher timeframe has a veto.
A 4-hour EMA200 trend filter gates every signal. A long is only permitted when the 4-hour close is above its own EMA200, and a short only when it is below. This removes the most common failure mode of intraday signal scripts — firing counter-trend entries during a strong higher-timeframe move. The filter can be switched off in the settings.
3. Signals report their own outcome.
Once a signal is active the script follows it: it marks the bar where each target was reached, automatically moves the displayed stop to breakeven after the first target and to the first target after the second, and hides the setup once the stop is hit. Setups that neither complete nor fail within a configurable number of bars are marked as expired rather than being left on the chart indefinitely.
HOW THE SIGNAL ENGINE WORKS
Three independent detection paths can produce a signal. All of them must additionally pass the RSI gate, the higher-timeframe filter, and a cooldown period.
EMA pullback. In an aligned trend (EMA20 above EMA50 and price above EMA200 for longs, inverted for shorts), price wicks into the EMA20 and closes back on the trend side of it. The candle must close in the outer 55% of its own range, which filters out indecisive bars.
Support and resistance reaction. Price tests a detected level within a 0.15% tolerance and closes back on the correct side of it with the same candle-strength requirement.
N-bar breakout. Price closes beyond the highest high or lowest low of the previous N bars with a directional close.
Support and resistance levels are built from confirmed pivot highs and lows. A minimum-gap rule prevents clustered levels from stacking on top of each other, and the number of active levels on each side is capped.
RSI gate. The pullback path requires RSI between 35 and 65 — it avoids entries that are already stretched. The reaction and breakout paths use wider one-sided bounds appropriate to their context.
Cooldown. A minimum number of bars must pass between signals, and a new signal in the same direction is blocked while an earlier one is still running.
READING THE PANEL
The panel in the top-right corner shows the direction of the active signal, its entry, the current stop, all three targets, the bar the signal was created on, its live status, and the current 4-hour trend state.
The status line progresses through: active, then first target reached with the stop moved to entry, then second target reached with the stop moved to the first target, then complete. If the stop is hit the panel is removed and the bar is marked on the chart.
SETTINGS
Moving averages — lengths for the three EMAs.
Support / resistance — pivot lookback, how many levels to keep on each side, and the minimum percentage gap between them.
Signal engine — RSI length, cooldown bars, breakout lookback, and how many bars before a setup is marked expired.
Targets and stop — ATR length, the three ATR multipliers, and the maximum stop size as a percentage of price.
Higher-timeframe filter — enable or disable the 4-hour trend veto.
LIMITATIONS - PLEASE READ
It runs on the 15-minute timeframe only. On any other timeframe the script draws a warning and produces nothing. The thresholds were tuned for 15-minute gold behaviour and do not transfer.
It was tuned on gold. The tolerance values, ATR multipliers and RSI bounds reflect how XAU/USD moves. On other instruments the defaults will need adjustment and the results may differ substantially.
Signals are evaluated on confirmed bars only. Nothing is drawn or evaluated from an unclosed bar, so the script does not repaint — but this also means a signal appears at the close of its bar, not during it.
The 4-hour filter uses the last closed 4-hour bar. The higher-timeframe request uses lookahead_off, so no future data is used. The consequence is that within a forming 4-hour bar the filter reflects the previous one.
Target and stop levels are calculated at the moment the signal fires and are not recalculated afterwards. If volatility changes materially after entry, the levels do not adapt.
The stop and target tracking uses bar high and low values. When both the stop and a target fall inside the same bar's range, the script resolves the stop first. Real intrabar sequence may have differed.
It does not know about scheduled news. Economic releases routinely produce moves that invalidate technical setups. The script has no awareness of the economic calendar.
This is an analysis tool, not a trading system. It does not account for spread, commission, slippage or position sizing, and no historical behaviour implies future results.
ON PERFORMANCE CLAIMS
This publication makes no claim about win rate, accuracy or profitability, because no such claim can be substantiated for future market conditions. What the script does is make each setup's assumptions explicit and visible so you can evaluate them yourself.
ORIGINALITY
The three detection paths use well-known building blocks — EMAs, RSI, ATR, pivot-based levels. The original work is in how they are combined: a structural stop bounded by a percentage ceiling, a second target that prefers real chart levels over a fixed multiple, a higher-timeframe veto applied uniformly across all three detection paths, and a per-signal outcome tracker with automatic stop progression and expiry. The code is entirely original and is published open-source so every one of these mechanics can be inspected and modified. Wskaźnik

Mizan Thrust Oscillator (P-RMA vs P-VWMA)Title: Mizan Thrust Oscillator: Adaptive Momentum & Volume Dynamics
Description:
Classic moving averages and traditional oscillators often fall short because they treat the market as a static entity, relying purely on fixed lookback periods. However, the market is never truly static; it is a continuous flow shifting from one probability space to another.
Developed by Mizan Lab, the Mizan Thrust Oscillator is built on the philosophy of dynamic adaptation. It abandons rigid time-based calculations to measure the true "thrust" of the market by calculating the divergence between a momentum-backed volume average and an adaptive rolling moving average.
⚙️ Core Logic & Mathematics
This indicator does not rely on standard price data alone. Instead, it introduces PSI (Scaled RSI Momentum) as the core gravitational pull for its calculations.
It is powered by two distinct hybrid averages (calculated under the hood):
P-VWMA (PSI-Volume Weighted Moving Average): Unlike a standard VWMA that only weights price by volume, the P-VWMA requires both high volume and high momentum (PSI) to move the needle. It tracks the true footprint of institutional flow.
P-RMA (PSI-Adaptive RMA): This moving average dynamically changes its length based on the deviation of current momentum from the "Equilibrium Center". When the trend is explosive, the length decreases to hug the price (reducing lag). When the market is flat, the length expands to filter out the noise.
The lower-panel histogram visualizes the mathematical difference (the Thrust) between the fast-adapting P-RMA and the volume-anchored P-VWMA.
📊 How to Read the Oscillator
The histogram is color-coded to instantly communicate shifts in momentum entropy and trend exhaustion:
Zero Line (Equilibrium) Crossovers: When the histogram crosses above the zero line, it signals a bullish structural shift. Crossing below indicates bearish control.
Dark Blue (Growing Bull): Strong, expanding upward momentum. The adaptive average is pulling away from the volume baseline.
Light Blue (Fading Bull): Bullish momentum is losing entropy. The thrust is weakening, serving as an early warning for potential pullbacks or profit-taking.
Dark Red (Growing Bear): Strong, expanding downward momentum. Sellers are aggressively in control.
Orange (Fading Bear): Bearish momentum is exhausted. The downward thrust is shrinking, indicating a potential bottom or reversal.
Yellow Signal Line: A 5-period WMA applied directly to the histogram to smooth out micro-fluctuations. Crossovers between the histogram bars and this yellow line can be used as secondary confirmation for localized entries/exits.
💡 Why Use the Mizan Thrust Oscillator?
Zero-Lag Responsiveness: By dynamically shortening its internal lookback periods during volatile moves, it catches sharp reversals much faster than traditional MACD or fixed oscillators.
Fakeout Filtration: A move requires both volume and momentum validation to register as a strong thrust, naturally filtering out low-volume traps.
No Repainting: The script is strictly calculated on confirmed bars and historical data without utilizing forward-looking functions.
This script is for educational and analytical purposes only. It is designed to be a supplementary tool for market structure and volume-momentum analysis. Wskaźnik

Linear Regression Channel Fit AuditLinear Regression Channel Fit Audit
Overview
Linear Regression Channel Fit Audit is a price-chart overlay for studying statistical slope and the behavior of a rolling regression channel. It separates three questions: how well a line fits its own historical window, how the next observation compares with the model available before it arrived, and what happens when an earlier model is kept unchanged through several later observations.
The practical question is simple: did price fit the channel that was available beforehand, or did updating the channel make it appear to fit?
The script combines a current ordinary least-squares channel, a previous-model reference, refit attribution, historical as-of inspection, and scheduled frozen-channel studies. It is a descriptive model-diagnostics indicator, not a trading strategy, probability forecast, or source of entry and exit instructions.
What distinguishes the approach
Regression lines, residual bands, R-squared and historical channels are established tools. The contribution here is their use in a connected comparison of model updates and subsequent observations.
The same observation is evaluated before and after refitting. Movement of the fitted center is separated into removal of the oldest observation and addition of the newest. Changes in containment are examined separately through center movement and width changes. Earlier models are also retained on a predetermined schedule, allowing endpoint containment to be distinguished from containment throughout the observed path. Matched comparisons then show how a fixed model differs from an updating model and how shifting the starting level affects extrapolation errors.
These components address one problem: a rolling channel can change its apparent relationship with price because the model itself has moved or widened. They do not vote on a combined trade score or choose a supposedly best model.
Getting started
Use standard time-based candles and a price-valued Source. The default Source is close, the regression length is 120 bars, and the width is twice the residual standard error. Snapshot updates default to Confirmed close.
Start with the Model panel. Read the slope and in-window fit, then compare Prior/Now. Use Refit research to examine the effect of updating the model, Horizon research for one-step and H-step endpoint checks, and Frozen paths for complete fixed-model observation sequences.
Historical frozen paths are enabled by default. Four recent paths are retained for display. Each evaluates 24 later Source values, followed by a 24-bar gap, so scheduled origins are 48 bars apart. Drawing retention and numerical sample retention are separate controls.
Chart guide
The solid upper and lower boundaries are cyan and pink by default. The solid center is colored according to rising, falling or approximately flat normalized slope. Optional dotted inner guides and transparent shading help locate price within the selected width. These colors describe geometry, not trade direction.
OLS identifies the fitted center. +1w and -1w identify the selected upper and lower boundaries, where w means one channel half-width, not necessarily one standard deviation. The dashed EXT segment continues the current slope and width geometrically. It is not an uncertainty interval and is not used in any audit statistic.
The short amber reference uses the preceding model and its preceding width. Its endpoint at the displayed observation is the one-step reference. Optional historical reference traces connect those successive one-step centers and boundaries; they are not one permanently fixed channel.
Thin dashed channels identified by F1, F2 and similar labels are scheduled frozen paths. They retain their origin model rather than being refitted with later prices. A dotted vertical line marks the origin. Optional amber connectors show the first observed exit and the distance from the fixed center at the latest evaluated observation.
The Forward only setting shows the observed forward portion. Fit + forward additionally restores the original fitted training segment as faint dotted lines. That training segment became available at its origin, not at each older bar through which it is drawn.
Small event symbols have no filled background:
! means a transition outside the respective previous-model envelope, including a direct switch from one outside side to the other.
↺ means refit inclusion has appeared: outside the previous envelope but inside after refitting.
= means a transition inside the respective previous-model envelope again.
An optional letter mode uses O, R and I. These are state transitions, not buy/sell signals. Each observation uses its own preceding model; an inside-again event does not prove that price crossed back through one unchanged boundary.
Symbols are offset outside nearby candle wicks for readability. Their vertical placement is not an event or execution price. When conditions coincide, refit inclusion takes drawing priority. Marker spacing, count and display-window filters can hide glyphs without removing observations or suppressing the corresponding alert conditions.
Regression and residual width
The script fits a straight line to N consecutive Source observations using equally spaced bar positions. It works in source-price units, not log price or elapsed calendar time. For each observation, its residual is its Source value minus the fitted value at the same position in that window.
Three half-width methods are available:
Residual standard error: multiplier * sqrt(SSE / (N - 2)).
Mean absolute residual: multiplier * mean(abs(residual)).
Residual percentile: the nearest-rank percentile of absolute residuals from the fitted window.
SSE is the sum of squared fitted residuals. The percentile method does not use the multiplier. Mean absolute residual is not median absolute deviation. A configurable minimum width in symbol ticks, together with a small numerical floor, prevents a zero denominator on flat or nearly exact-line data. The floor can dominate such samples.
These are descriptive residual envelopes. A selected percentile measures the fitting sample; it does not specify a future coverage probability. None of the methods constructs a confidence interval or prediction interval.
Model panel
Slope is the fitted price change over the selected measurement span divided by the current half-width. The default span is 20 bars. Arrows and the flat threshold use this normalized value. Changing the width method or multiplier can therefore change the normalized slope and its flat classification. It is not an on-screen angle or annualized return.
R-squared measures in-window fit relative to variation around the sample mean. The five-segment meter is a coarse visual representation of that number. Constant data display n/a. High R-squared does not establish useful future prediction.
In/Next compares current fitted-window containment with realized one-step containment over the audit sample. These are different samples. Amber highlights the configured coverage gap after enough valid observations are available; it is not a significance test.
Prior/Now shows the signed Source distance before and after refitting. Prior uses the old half-width; Now uses the new half-width. Values beyond +1 or -1 are outside the respective envelope. Do not subtract these readings as raw price distances because their denominators differ.
Add/Drop reports the center-update components explained below. State refers to the previous envelope, except REFIT IN, which explicitly identifies inclusion after updating. Audit shows the valid observation count. A check mark means the sample is full, not that the model passed a performance test.
Detailed mode also shows one-step error skill, residual persistence, older/recent half-window slopes, width change and the number of refit-included observations. Residual persistence is the sum of adjacent residual products divided by SSE, not a significance test. The two half-window slopes use a common full-channel width; with odd lengths the older half contains one extra observation.
Add/Drop: why the center changed
The previous and current N-observation windows share N - 1 observations. All three models below are evaluated at the current observation's time coordinate:
Previous center: the preceding N-observation model extended by one bar.
Common center: the model fitted to the N - 1 shared observations.
Current center: the newly fitted N-observation model.
Drop = Common center - Previous center.
Add = Current center - Common center.
Add + Drop = Current center - Previous center.
The defined update order removes the oldest observation first and then adds the newest. The calculation uses the least-squares endpoint leverage identity to obtain the addition term without fitting another model on every bar.
Both displayed components are signed shifts in prior half-widths, not percentages. Opposite signs indicate offsetting effects. This is an attribution of a model update, not an explanation of the economic cause of a price movement.
Refit research: center versus width
Before/After compares exactly the same confirmed observations against their respective prior and refitted envelopes. In/Out n counts outside-to-inside and inside-to-outside observations. Their difference accounts for the change in matched containment:
After coverage - Before coverage = (Included observations - Excluded observations) / Paired observations.
The After result includes each observation in its own fit and is not an out-of-sample forecast.
Containment margin is half-width minus the absolute distance from the center. Its change is split into:
Center contribution = abs(old residual) - abs(new residual).
Width contribution = new half-width - old half-width.
Both displayed contributions are divided by the prior half-width, and their sum equals the normalized margin change.
For outside-to-inside observations, the Cause field tests two alternative geometries: new center with old width, and old center with new width.
CENTER: only the center change alone is sufficient.
WIDTH: only the width change alone is sufficient.
JOINT: neither change alone is sufficient; both are needed.
EITHER: either change alone is sufficient.
The four classification counts sum to the included count. These are geometric comparisons, not evidence of price reversal or economic causality. For example, WIDTH can identify a point accommodated by a wider envelope without needing the center to move.
One-step and H-step endpoint research
At observation t, the one-step reference is the center fitted at t-1 plus that model's slope. Its width is the width fitted at t-1. The observation at t is not included in that reference.
The second reference uses the model fitted H bars earlier, extended by H bars while keeping its origin width. H defaults to 5 and is selectable from 2 to 50. Results enter the statistics only when their endpoint has been reached and confirmed. This endpoint test does not require all intermediate observations to remain inside; the Frozen paths study addresses that separate question.
Each horizon reports realized containment and an error-skill comparison with holding its origin Source value unchanged:
Skill (%) = 100 * (1 - Model squared-error sum / Unchanged-source squared-error sum).
Model and baseline use identical eligible observations at that horizon. Positive values mean lower squared error than that baseline; negative values mean higher squared error. A zero baseline error produces n/a. Scores are not returns, win rates or significance levels. The two horizons can have different valid counts and are not necessarily identical samples across horizons.
The page also reports H-step mean absolute error in source-price units, the matching baseline error, mean absolute error normalized by origin width, and upper/lower endpoint misses. Successive horizon tests can overlap and are dependent.
Scheduled frozen paths
A path saves the fitted center, slope, width and Source value at its origin. It then evaluates the next L confirmed Source values without changing those saved parameters:
Fixed center at age k = Origin fitted center + Origin slope * k.
Fixed boundaries = Fixed center at age k +/- Origin half-width.
The origin observation itself is not one of the L tested outcomes. A path is extended only through observations already reached. It is not reset or discarded when price exits. Historical line colors do not change retrospectively to label the whole path as successful or unsuccessful.
Origins follow a bar-count schedule beginning at the first loaded confirmed close at or after Path schedule anchor. They recur every L plus Gap bars. Price behavior does not choose the scheduled times. An invalid origin fit is skipped, not moved to a more favorable observation. Skipped origins are reported in the sample tooltip.
With a zero gap, a path finishes before the next starts on the same close. Tested outcome segments do not overlap, although training windows can overlap and market observations remain dependent.
At maturity, the result label is:
ALL: all L sampled Source values were inside.
BACK: the final Source value was inside after at least one earlier sampled exit.
OUT: the final Source value was outside.
DATA: the path contained missing Source observations and is excluded from valid-result denominators.
A fraction such as 8/24 indicates an unfinished path. It is not counted as success or failure. ALL is about sampled Source values at confirmed bars, not an intrabar high/low test. With close as Source, a wick can exceed a boundary while the sampled close remains inside.
The first-exit connector marks the first observed outside Source value, not an intrabar crossing or order fill. Maximum distance is the largest sampled absolute distance from the fixed center divided by origin width.
For a simple example, a path that exits at age 6 and finishes inside at age 24 is BACK, not ALL. Looking only at the final observation would miss that distinction.
Frozen paths panel and matched comparisons
End/All reports final-observation containment and every-observation containment over the same valid completed paths. Back/Exit reports paths ending inside after an exit and paths with any sampled exit. End count equals All count plus Back count.
First exit is the average first-exit age among exited, valid, completed paths only. Paths without an exit and unfinished paths are not assigned zero-time exits. This conditional average is not a survival estimate.
F/A skill compares two centers against one common unchanged-origin-Source baseline over the same complete paths:
F: origin fitted center + origin slope * k.
A: origin Source + the same origin slope * k.
A changes the starting level, not the slope. The comparison helps inspect the effect of initial fitted-center displacement. It does not prove that the slope is useful or select a winning model. Scores use pooled squared errors across all included observations, not an average of individual path percentages.
Roll/Fix compares updating one-step envelopes with the saved fixed envelope on the same eligible observations within valid completed paths. It reports the percentage inside only the updating envelope and the percentage inside only the fixed envelope. Both-inside and both-outside counts are also available in the tooltip, along with matched error comparisons.
Both references exclude the observation being tested, but the updating model has intermediate information that the fixed model does not. Their widths may also differ. This comparison measures the effect of updating; it is not a contest between models with equal information.
Paired gives the number of matched observations. Done/Open gives the valid completed-path count and current unfinished age. Missing-data slots are separately disclosed and remain part of slot retention. The drawing cap never changes the numerical sample.
As-of research and sample scope
Set View to As-of research, choose Research start and As-of cutoff, and select the relevant panel page. The main channel and snapshot represent the last available confirmed bar whose close time is inside that interval. The header or its tooltip identifies the actual selected close in the exchange timezone.
Training can use earlier observations, but test origins must be calculated inside the admitted interval. One-step and H-step results therefore need their respective earlier origin models. The script does not invent those initial tests. A frozen path still unfinished at the cutoff remains unfinished.
Rolling audit uses the last K chart bars for the ordinary audit metrics. Selected interval aggregates valid tests admitted throughout the interval. Frozen-path statistics have a separate completed-slot sample: Latest and Rolling research retain up to the configured number of completed slots; Selected interval uses all completed slots. Actual counts, not requested maxima, determine the denominators.
As-of mode does not scroll the chart or hide later candles. It reconstructs the model at the selected time, but it is not a blind replay environment. Alerts are disabled in this mode. Later loaded timestamps can place optional annotations; later Source prices do not enter the selected model or its statistics. Without those timestamps, annotation spacing beyond loaded data uses a nominal bar duration and can differ around session gaps or irregular periods.
Schedule reproducibility and workload
If the path anchor is at or before the beginning of loaded history, the Frozen paths header displays PHASE*. The schedule may then change when additional earlier bars load. For reproducible comparisons, place the anchor within loaded history with earlier bars available, and retain the same symbol, timeframe, settings and research interval.
The default calculation budget is 600 bars, configurable from 100 to 4,000. Latest view adds audit/horizon warm-up to the recent fitted range. Frozen-path origins and retained results are bounded by the recent path range; chronological path IDs are local identifiers, not permanent IDs across recalculations.
In research, the budget is a hard limit on admitted interval bars. RANGE > CAP blocks the main research display rather than silently presenting an earlier endpoint as the selected result. Earlier traces or numeric records can remain partial and must not be read as complete interval results. Narrow the dates or raise the budget. START > END, NO ELIGIBLE BAR and WARM-UP / DATA identify other unavailable states.
Larger windows and percentile sorting increase processing cost. Drawing caps are independent of statistical caps. Up to 12 paths can be retained visually. Defaults are starting points, not optimized parameters.
Numeric history and alerts
Numeric history page selects Model, Refit research, Horizon research or Frozen paths independently of the visible panel; Match panel follows that panel. Outputs are paged rather than exposing every metric simultaneously. Titles use M, R, H and F to identify page-specific meanings, and a numeric page ID accompanies the values. Record that page and the settings when comparing exports. The settings tooltip lists the field mapping.
Common fields include Source, the inclusion-cause code and additive event flags. Cause codes are 0 for none, 1 CENTER, 2 WIDTH, 3 JOINT and 4 EITHER. Event bits are 1 outside, 2 inside again, 4 refit inclusion, 8 refit exclusion, 16 coverage gap, 32 half-window disagreement, 64 path start, 128 path completion and 256 first path exit. Coexisting bits are added. Numeric events are not thinned by marker spacing.
Historical records describe the observation where they were calculated; they do not repeat the frozen as-of panel into later bars. On a zero-gap finish/start close, path step fields describe the finishing path while event flags can identify both events.
Six confirmed-close alert conditions are available in Latest view: Outside prior channel; Inside prior channel again; Refit inclusion appeared; Refit exclusion appeared; Coverage gap appeared; and Half-window slopes disagree. Path start/completion/exit flags are research records, not additional standalone alert conditions. Configure alerts through the chart interface; the indicator does not create them automatically.
Updates and limitations
Confirmed close holds the main snapshot on the last confirmed bar during an open bar. Live preview permits that snapshot to change intrabar. Audit totals, path evaluation, event records and alerts still use confirmed closes.
The current fitted historical segment redraws as its window changes. Restored training segments also use information available at their origin, not at every earlier point. Do not treat those lines as contemporaneous historical signals or describe the entire indicator as non-repainting. Frozen parameters remain fixed within a path for unchanged inputs and data, but changing settings, loaded history, the schedule phase or the data feed can change the reconstructed study. An external Source can introduce its own repainting or revisions.
No volume data, imported libraries, external requests or higher-timeframe series are required. ATR is used only to separate labels from candle wicks. Bar counts are not elapsed calendar time. Non-standard or synthetic charts can change the meaning of prices and time; use standard time-based charts for the described interpretation.
Wide envelopes can achieve high containment without useful directional information. High in-window fit can coexist with weak future error scores. Retained samples can be small, and missing-data exclusions can affect representativeness. No confidence level, calibrated future probability, statistical significance, economic causality or trading profitability is established by these readings.
The script is free and open-source under the Mozilla Public License 2.0. Users can inspect the calculations and modify the research settings. It does not place orders, simulate a trading strategy or guarantee outcomes. Wskaźnik

Symbol vs NQ [BMT]Symbol vs NQ
Is the symbol on the chart adding something of its own, beyond how much more it moves than the Nasdaq does, and does it need megacap leadership to work? The name's move from a shared anchor, minus its beta to NQ times NQ's move from the same anchor, is the residual: above zero the name is beating the path its beta implies, below zero it is rising less than its beta alone would have delivered. The chart is tinted by that state.
What it draws
A background tint on the price chart: green while the name is beating its NQ-beta path by more than the threshold, red while it is missing it, nothing in between. A stronger green marks a confirmed lead, and a triangle under each confirmed bar (size is an input) carries a hover reading. A vertical line marks the anchor bar. A status table along one edge shows the name's move, its residual and sigma, its beta to NQ, NQ's own move and state, the regime profile, and the anchor in force.
The green takes the stairs up and the elevator down. It needs four consecutive bars above the threshold before it paints, and it drops the moment the residual is back at or under zero rather than waiting for minus the threshold. Red is immediate both ways. That is the asymmetry of the CARS state machine, and it is what keeps the tint from flickering on one-bar noise without smoothing away the turns.
While the name closes under its 50-day average, a positive residual is discounted to 70% before the threshold applies (an input, on by default). A discount, never a veto: a name can still read as leading under its 50-day, it just needs more to get there, and a lagging reading is never damped since that would slow the off-switch. The 50-day is read from the daily bars on every chart timeframe, the prior session's value, so it does not repaint.
The anchor
Measure picks the bar both series are measured from; the name and NQ always share it. The period anchors are the same bars Index Lead Lag uses, so with both on the chart they agree; the swing anchors are NQ's extremes where that script uses ES's.
Auto (default) chooses from the chart timeframe: session open under an hour, week open intraday above that, month open on a daily chart, quarter open above. The Ref cell shows what it resolved to.
Session open , Prior close , Week open , Month open , Quarter open . Each resets on its boundary. On CME index futures the daily bar opens at 18:00 ET, so Session open is the Globex open and the overnight sits inside the measure; Prior close is the 17:00 settlement.
RTH open : the open of the first bar of the cash session (09:30 to 16:00 New York by default, an input), with the overnight left out.
NQ swing low / NQ swing high : the lowest low or highest high NQ has printed in the range on screen, so it reads as "since the Nasdaq turned, has this name done more than its beta?". Pan or zoom and it re-resolves to the new view. NQ's turn rather than the name's own on purpose: a name measured from its own low is at its minimum there by construction, which flatters every residual.
Fixed date : a date from the date picker. Does not reset.
The period anchors are read as prices from a higher-timeframe request rather than counted back as bars, so there is no history-buffer limit on how far back an anchor can sit.
Beta and the residual
Beta is the ordinary least squares slope of the name's bar returns against NQ's, fitted on the bars before the one being scored so a bar cannot explain itself away, over a window of four anchor periods on the chart's own bars (four sessions for a session anchor, four months for a month anchor, four times the span for a swing or a date; floor 60 bars, cap 2000). Sizing the window from the anchor keeps beta fitted at the horizon it is subtracted over. The table shows the bars in use.
The residual is scored in standard deviations of where it could have drifted by chance by this point in the period: per-bar residual noise times the square root of bars since the anchor. Early in a period it takes less to clear the threshold and late in a period it takes more, rather than one yardstick set by the period's average size. The sigma is measured on the name's own per-bar residual, so 1.0 means the same thing for a stock as for an index even though the stock moves several times as far.
Until the beta window has filled there is no beta and no reading, and the table says so: a recent listing with fewer bars than the window shows n/a and the bar count against the window, because a name that cannot be measured is not a weak name.
Confirmed leads
Beating a beta while merely quiet is a read that inverts by regime: in a panic the names that have not yet fallen can be the best shorts, not the best buys. So a lead is confirmed only when the name is also at a period high NQ has not made, the upside leg, which is the half of the read that holds in both regimes. An unconfirmed lead is not nothing; it is a sign whose direction you cannot yet read. There is no mirror on the lag side.
Regime profile
NQ's own state against its beta to ES is tracked the same way, and the table shows what the name's residual has averaged while NQ was leading its beta and while NQ was lagging it, over about the last 50 qualifying bars of each. A wide gap says the name rides megacap leadership and NQ's state matters to it; two similar numbers say it trades on its own.
NQ source
Futures (NQ1!, with ES1! for the NQ regime) intraday, where the cash index has no overnight bars; the cash index (NDX, with SPX) on daily and above, where a long anchor would otherwise carry the futures' roll gaps. Auto chooses by timeframe; the Ref cell says which is in use. Wskaźnik

RedK DualTF Volume-Accelerated RSI (RedK_VARSI)█ RedK_VARSI — Release Notes
The idea behind RedK Dual Timeframe V olume- A ccelerated RSI (RedK_VARSI) is to enable traders to impose volume impact on the widely used RSI (Relative Strength Index) indicator - for improved "combined price action + volume" analysis - and then to visualize the resulting insight from 2 different timeframes simultaneously; the current (chart's) timeframe, and a higher timeframe (the Context timeframe) of their choice.
This analysis approach enables traders to effectively scan for opportunities, and make trading decisions that are in the direction of the broader market "context", without leaving the chart.
Two quick notes here:
---------------------------
Dual Timeframe RSI trading strategy is a very common technique among traders - used with various instruments (Futures, crypto, FOREX, stocks...) and various trading styles (scalp, swing, trend...) - What RedK_VARSI does is to provide an effective tool to enable traders to easily work their dual timeframe RSI analysis, in one chart, while also taking volume impact into consideration.
RedK_VARSI is the modern sibling of an indicator I created back in 2020, the RedK Volume-Weighted RSI . The basic concept is the same, but there are features that could only be implemented with the more recent versions of Pine, like pulling true higher (context) timeframe volume-weighted RSI series, adding advanced visualization, dynamically enable and disable settings ...among other features. It's exciting to see what we can now achieve with the advancements in Pine compared to what was possible back then.
█ Reading VARSI - Indicator visual elements
RedK_VARSI plots a volume-weighted RSI for the current chart timeframe (plotted as a blue/orange line), alongside a second VARSI read from a higher Context timeframe (plotted as green/red area backdrop). The main indicator panel is set as a 0 - 100 oscillator - same as the classic RSI.
When the two plots agree in direction from the midline, that means there's a momentum alignment across the two timeframes. When the two VARSI plots disagree, that possibly means the market is in transition - and the risk is higher - we should wait for a better setup.
(Throughout the settings and these notes, "Context" and "higher timeframe" mean the same thing)
Key indicator elements:
Current TF volume-weighted RSI (VARSI), with a selectable moving-average method.
Optional smoothing of the main RSI line, with its own selectable MA method.
A signal line for the current VARSI.
Context TF volume-weighted RSI — the same calculation on a higher timeframe, derived as a multiple of the current chart's timeframe.
Alignment Markers: will show (if enabled) when the current and Context VARSI agree on direction.
Single-timeframe mode — turn the Context off entirely and use VARSI as a straight, volume-weighted RSI - or turn volume-weighting off, and use RedK_VARSI as a regular RSI (see below settings in details).
Other elements: similar to the classic RSI, there's overbought & oversold levels (70 and 30 respectively) and a midline (at 50).
█ Indicator Settings & Usage
RedK_VARSI reads like a standard RSI. The 0–100 scale and the 50 midline work exactly as you'd expect, so everything you already know about reading the classic RSI still applies.
Volume weighting is the core idea: each bar's price change is weighted by that bar's volume before averaging, so moves on strong participation count for more than moves on thin volume. On symbols with no volume data, VARSI automatically falls back to a standard (unweighted) RSI, so it always works.
Optional smoothing lets you take noise out of the main plot with a short moving average of your choice. Keep it small — smoothing always trades responsiveness for a cleaner line. Set it to 1 to switch it off.
The Context timeframe is set as a multiplier of the current chart. For example, on a 1-hour chart a multiplier of 5 gives you a ~5-hour Context read. This is the modern, correct version of what I used to approximate with a length multiplier ("sentiment") in the old version.
Context Update — Live vs Last Closed Bar. By default the Context TF VARSI updates live as the higher-timeframe bar develops. This is the most responsive behavior. If you prefer a steadier line that only changes when the higher-timeframe bar closes, switch to "Last Closed Bar."
Alignment markers print when the current VARSI and the Context VARSI plots are on the same side of the midline — both bullish or both bearish. These are the moments when short-term momentum and the broader price momentum agree.
Single-timeframe mode: If you just want a clean, volume-weighted RSI without a second timeframe, turn off "Show Context RSI." That hides the Context plot, its shading, and the alignment markers, leaving you a straightforward single-timeframe RSI with all the volume-weighting, smoothing, and signal-line features intact. The alerts work the same either way.
Setting RedK_VARSI to match TradingView's built-in RSI
Set Length = 14, Averaging = RMA, Smoothing = 1, and Volume Weighted = off — VARSI will match a classic RSI. Disable the Context TF to remove the higher TF area plot.
█ Using VARSI to analyze price action
(for more details, search online for "Dual Timeframe RSI trading strategy")
High-gain/lower-risk trade opportunities can be found (both to the upside or the downside) when the current timeframe momentum aligns with the broader timeframe.
VARSI can help you locate opportunities where the higher timeframe momentum gives a bullish reading, while the current (shorter) timeframe retraces within the bullish alignment - this works like catching the waves in an ongoing current. Opportunities to the downside (short) would be worked in a similar way in during a bearish alignment.
Both the alignment markers and the signal line will provide the clues the trader needs to find these entry/re-entry setups - which a single timeframe RSI will not provide as effectively.
This screenshot shows examples of how to use VARSI to find possible bullish side setups
█ Using Alerts in RedK-VARSI
RedK_VARSI introduces five alerts - to use the alerts, right-click on any indicator element, and choose the first shortcut menu command "Add alert on RedK_VARSI..." and choose one of the 5 alerts from the dropdown. See the screenshot below for the steps.
VARSI crosses above the midline (bullish)
VARSI crosses below the midline (bearish)
VARSI swings around the midline (either direction — one alert for both)
VARSI enters the overbought zone
VARSI enters the oversold zone
==================================================================================
📝 Notes on Use and Limitations
==================================================================================
Volume data: if the symbol has no volume feed, VARSI automatically falls back to an unweighted (standard) RSI calculation.
Context multiplier and available history: at very large multipliers the resulting Context timeframe may exceed the history available for some symbols, in which case the Context TF plot won't show. That's a data-availability limit, not an error.
Debug option: an optional Debug checkbox shows the resolved Context timeframe in the Data Window (split into minutes, hours, or days) — handy for confirming exactly which timeframe the multiplier landed on.
This is an insight tool, not a signal service. The markers and alerts describe price action readings. They are not advice to enter or exit any position, and the indicator does not claim predictive accuracy.
==================================================================================
⚠️ Important Notes & Disclaimer
==================================================================================
Using this indicator means you have read and agreed to the following:
Not Advice. This indicator, and other work of this author, represent analytical studies of price and volume behavior. No parts should be considered buy/sell recommendations or signals — “Bulls” and “Bears” describe measured states only. Nothing here is financial, investment, or trading advice.
Risk & Responsibility. Trading involves substantial risk of loss and is not for everyone. All decisions, interpretation, and risk and money management are yours alone. Past behavior does not predict future results. The author accepts no liability for any loss or consequence arising from use of this tool.
Indicator Provided As-Is. Feature requests are welcome and can be shared with the author, but whether or when any request is implemented cannot be promised or guaranteed.
Wskaźnik

Normalized SPMA | NAL1. Overview
Normalized SPMA | NAL is a selective trend-regime oscillator built around the Shock Percentile Moving Average (SPMA) concept.
Unlike a conventional moving average that continuously absorbs every new bar, SPMA is deliberately selective. It evaluates current price movement relative to its own historical distribution and only allows qualifying movements to update the underlying baseline.
Normalized SPMA takes this concept further by expressing the relationship between price and the selective baseline in normalized form, then combining it with a volatility-adjusted boundary.
The result is a compact regime model designed to distinguish meaningful directional structure from lower-impact market movement.
2. Shock Percentile Moving Average
The foundation of the indicator is its percentile-gated moving average.
Current price change is ranked against a configurable historical window:
float Ret = close - close
float Per = ta.percentrank(Ret, percentrank_lookback)
bool Gate = Per > percentile_gate
Rather than updating continuously, the SPMA only accepts a new EMA value when the percentile condition is satisfied. Otherwise, its previous value is retained.
MA := na(MA ) ? emaValue : Gate ? emaValue : MA
This creates a form of selective memory: ordinary movement can leave the baseline unchanged, while sufficiently significant positive price events are allowed to reshape it.
3. Normalized Regime Structure
The SPMA is then normalized relative to current price, allowing the model to study the relationship between the selective baseline and the market on a proportional scale.
A rolling standard-deviation component is applied to this normalized structure, creating a second volatility-sensitive series.
float normalizedSPMA = close != 0.0 ? -SPMA / close : na
float normalizedSD = ta.stdev(normalizedSPMA, normSDLen)
float normalizedLowerSD = normalizedSPMA - normalizedSD
The interaction between these two measurements and the normalized reference level forms the final regime logic.
This combination is what gives Normalized SPMA its distinctive character: event-selective trend memory combined with normalized volatility structure.
4. Key Features
Percentile-Gated Trend Filtering
Selective Market Memory
Price Normalization
Volatility-Adjusted Confirmation
Persistent Regime State
Colored Candles and Clear Visualization
5. Purpose
Normalized SPMA was developed to explore a simple idea:
What happens when a trend model is allowed to remember important movement while becoming selectively insensitive to everything else?
By combining percentile-based event selection, adaptive baseline memory, normalization and volatility analysis, the indicator provides a different perspective on directional market structure than a continuously updating moving average.
It is intentionally compact, but the underlying interaction between selectivity, memory, normalization and volatility can produce a remarkably clean representation of changing market regimes.
Normalized SPMA | NAL is provided free and open source for research, experimentation and further study. Wskaźnik

Mean-Reversion Half-Life [RC Tools]RC Tools — Mean-Reversion Half-Life
────────────────────────────────────────────────────────────────────
█ OVERVIEW
Knowing a market is "mean-reverting" isn't enough to trade it — a series that takes 5 bars to snap back and one that takes 50 bars to snap back are both technically mean-reverting, but call for completely different holding periods and expectations. This tool estimates that missing number directly: the half-life, in bars, of mean reversion, using the same Ornstein-Uhlenbeck-style regression approach used in quantitative statistical-arbitrage research.
█ WHAT IT DOES
Estimates mean-reversion speed via a rolling OLS regression and classifies each confirmed bar as Fast Mean-Reversion, Slow Mean-Reversion, or No Mean-Reversion based on the resulting half-life. Colours the chart background accordingly, plots the half-life (in bars, capped for readable scale) as a histogram against Fast and No-Reversion threshold lines, and shows a table with the current state, its estimated half-life, and historical base rates (average forward return and win rate) for each state.
█ THE THEORY BEHIND IT
This is a companion tool to RC Tools' Hurst Exponent Regime script, and answers the natural follow-up question it leaves open. The Hurst Exponent tells you whether a market's statistical character is trending, mean-reverting, or a random walk — but it doesn't say how fast a mean-reverting move actually closes. This tool fits a simple version of the Ornstein-Uhlenbeck model, a classical stochastic process used to describe a quantity that drifts back toward a long-run mean at a speed proportional to its current distance from that mean, and converts the fitted speed into a half-life: the number of bars it takes, on average, to close half the current deviation.
█ HOW IT IS CALCULATED
1. Take the log of price, and regress its bar-to-bar change against its own prior level (a one-lag OLS regression): Δy = α + β·y(prior), where y is log price.
2. A negative β implies mean reversion — the more negative, the faster the pull back toward the mean. A β at or above zero implies no reversion (the series is trending or behaving like a random walk).
3. Convert β into a half-life: -ln(2) / β, in bars.
4. Classify: half-life at or below the Fast threshold (default 10 bars) → Fast Mean-Reversion. Above that but at or below the No-Reversion threshold (default 60 bars) → Slow Mean-Reversion. Above the cap, or β non-negative → No Mean-Reversion (the series isn't reliably reverting, or the estimate is too unstable to trust).
β is smoothed before the half-life calculation (rather than smoothing half-life itself), because half-life is numerically unstable near a zero slope and can spike to extreme values that a direct smoothing pass wouldn't tame cleanly.
Classification occurs ONLY on confirmed bar close — the plotted half-life, the background colour and the table all update together, so nothing here can disagree mid-bar or flip back and forth as the current bar forms.
█ SETTINGS & CONFIGURATION
• Source (default close)
• Regression Window (default 50 bars) — longer windows give a more stable estimate but react slower to a genuine regime change
• Fast Mean-Reversion Threshold (default 10 bars) and No-Reversion Threshold (default 60 bars) — the half-life cutoffs between the three states
• Smoothing Length and Type (default 3-period EMA) — applied to the regression slope, not the half-life itself
• Forward Return Window (default 20 bars) — the horizon used for the base-rate table
• Table visibility, position and colours are fully configurable; the main-chart background painting can be toggled off if you only want the statistics pane
█ HOW TO USE IT
Use it to calibrate holding periods and expectations for a mean-reversion approach, not as a standalone entry signal. A Fast Mean-Reversion reading suggests a short-holding-period approach is appropriate; a Slow reading suggests patience is required and tight stops may cut off the reversion before it completes; a No Mean-Reversion reading suggests a mean-reversion approach isn't currently well-suited to this market at all. Pairs naturally with the Hurst Exponent Regime tool — Hurst tells you IF the market's character favours mean reversion, this tool tells you roughly HOW FAST.
Works on any asset and timeframe with sufficient history for the Regression Window.
█ LIMITATIONS
• This is a SIMPLE linear (OLS) estimate of mean-reversion speed, not a full maximum-likelihood Ornstein-Uhlenbeck fit. It is a practical approximation, not a research-grade estimator.
• Half-life describes an estimated SPEED, not a guarantee of reversion — a series classified as mean-reverting can still trend away for an extended period before, or instead of, reverting.
• Near a regression slope of zero, the raw half-life estimate is numerically unstable and can spike to very large values; display values are capped for readability.
• The regression window assumes the mean-reversion relationship is roughly stable across the window; a structural break partway through will distort the estimate until it fully rolls off.
• Shorter windows react faster but produce noisier, less reliable estimates; longer windows are more stable but slower to reflect a genuine change.
• Historical base-rate stats need a meaningful sample count (check N) before being trusted, especially for the less common states.
• This script does NOT repaint. All classification updates on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past behaviour of any mean-reversion state does not indicate future results. Trade at your own risk.
Wskaźnik
