CVD Delta Divergence [JOAT]CVD DELTA DIVERGENCE
A full-featured Cumulative Volume Delta engine with proper pivot-based divergence detection. CVD on its own is one of the cleanest reads of net flow you can produce without L2 data — but the value of CVD lives almost entirely in its divergence with price. CVD Delta Divergence builds the CVD properly (with footprint-API or reconstructed-tick options), then runs a strict pivot-vs-pivot divergence engine on top of it, with strength scoring and configurable cooldown.
Three data-source modes
CVD is only as good as the delta classification underneath it. Three modes are exposed:
Footprint API — uses PulseWire's Footprint dataset when the instrument supports it. The cleanest read, equivalent to professional delta feeds.
Reconstructed — when Footprint is unavailable, reconstructs buy/sell from a configurable lower-timeframe stream (1m / 3m / 5m / 15m / 30m) using the standard tick rule. Optional intrabar volume weighting.
Auto — picks Footprint when present, falls back to Reconstructed. The recommended default.
This is unusual — most public CVD scripts hardcode one method. Auto-mode means the script works correctly on any instrument that has either dataset, without per-instrument configuration.
Four CVD anchors
Cumulative deltas need an anchor — running a sum from inception of data is rarely meaningful. Four anchoring modes:
Cumulative — never resets. Maximum context, slowest divergence detection.
Session Reset (default) — anchors at the start of each trading session. The most useful read for day-trading reference.
Day Reset — anchors at midnight exchange time.
Week Reset — anchors at week boundary. Good for swing-frame divergences.
Pivot-based divergence engine (the headline)
Slope-comparison divergence is noisy. CVD Delta Divergence uses proper pivots :
ta.pivothigh / ta.pivotlow on price with a configurable lookback (default 5 bars left/right).
At each confirmed pivot, the corresponding CVD value is recorded.
A divergence is built only when two price pivots and their CVD readings disagree directionally.
A minimum-strength filter (default 15.0 on a 0–100 scale) suppresses weak signals — strength is the normalised disagreement magnitude between the price-pivot motion and the CVD-pivot motion.
A strict HL/LL toggle requires the second pivot to strictly exceed/undershoot the first by a small fraction so equal-pivot edge cases do not produce noise divergences.
A cooldown per divergence class (default 3 bars) prevents back-to-back fires of the same class.
Four divergence classes are detected:
Regular Bull — price lower-low, CVD higher-low. Reversal up.
Regular Bear — price higher-high, CVD lower-high. Reversal down.
Hidden Bull — price higher-low, CVD lower-low. Trend continuation up.
Hidden Bear — price lower-high, CVD higher-high. Trend continuation down.
Divergence markers can be force-overlaid onto the main chart pane (toggleable) so you see them on price without flipping panes.
Visual system
Slope-coloured CVD line — bull / bear gradient based on the CVD's own short-term slope (configurable window).
Smoothed CVD overlay — toggleable EMA-smoothed CVD on top of the raw line. Useful for cutting through noisy 1m reconstructions.
Delta histogram — bar-by-bar delta as columns behind the CVD line. Useful for seeing per-bar flow vs cumulative flow.
Zero line and crossover alerts.
Divergence connecting lines — when a divergence fires, a connector line is drawn between the two pivots for visual proof.
A locked Lava palette (gold bull / orange-red bear / oxblood mid on a deep lava-black ground) gives the pane a distinctive flow-read identity.
Dashboard
Monospaced table, positionable to any of eight corners, with:
Current CVD value with sign.
CVD slope direction (Rising / Falling / Flat).
Active anchor mode.
Last divergence class with bar age.
Source mode in use (Footprint / Reconstructed).
Zero-cross status with bars-ago.
Alerts
Six alert conditions, each independently controllable:
Regular Bull Divergence
Regular Bear Divergence
Hidden Bull Divergence
Hidden Bear Divergence
CVD Crosses Zero
CVD Slope Flips
How to read it
Three reads, in order of conviction:
Regular divergence — the classic reversal read. Price made a new extreme, CVD did not. The flow that was needed to extend the move did not show up. A regular divergence at a known structural level is one of the highest-conviction reversal setups in tape reading.
Hidden divergence — the trend-continuation read. Price retraced, but CVD did not. The flow is still committed in the original direction even though price wavered. Often produces clean re-entry signals in trends.
CVD zero-cross + slope flip — the regime change read. Cumulative flow has rotated sides — what was net-buying is now net-selling (or vice versa). Useful as a "the tape has flipped" notification.
Suggested settings
Defaults are tuned for 5m–1H charts on liquid markets in Session Reset mode. For lower timeframes, drop pivot lookback to 3 and divergence window to 30. For higher timeframes, raise pivot lookback to 7–10 and switch anchor to Day Reset. The minimum strength threshold (15) is intentionally loose; raise to 25–30 if you want only the strongest divergences.
Originality / what's reused
CVD (cumulative volume delta) is public-domain market-structure language; the tick rule is standard. The implementation — the Auto/Footprint/Reconstructed source switch, the four-anchor reset logic, the pivot-based divergence engine with strict HL/LL gating and minimum-strength filter, the slope-coloured CVD with histogram backdrop, the force-overlay divergence markers, and the cooldown-per-class state machine — is JOAT-original and tuned together. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. The source is sectioned, every input has a tooltip, every helper is documented inline. The CVD engine, the source-mode router, the pivot logic, and the divergence engine are independent modules — adapt any single piece without reading the whole file.
Limitations
Reconstructed CVD is a proxy — the tick rule is the accepted public-market inference but it is not a direct read of bid vs ask volume. Footprint mode requires the PulseWire Footprint dataset and is unavailable on some instruments. Pivot divergences are non-repainting once confirmed (they lag by the pivot's right-lookback) but the divergence between two pivots cannot fire until both are confirmed — so the second pivot's lag is the structural lag of the signal.
—
-made with passion by jackofalltrades
Indicator

Low-Lag Strength OscillatorLow-Lag Strength Oscillator
What this script does
LLSO is a bounded 0–100 momentum oscillator in the relative-strength family. It measures the balance between up-strength and down-strength in price, but smooths each side with a low-lag two-pole low-pass filter instead of the rolling/exponential average a classic strength index uses. The result keeps the familiar overbought/oversold behaviour and the 50 balance line, but turns several bars earlier — better measurement of the same momentum, not a different concept bolted on.
Why these components are combined (mashup justification)
This is not several indicators shown side by side. There is exactly one plotted value — the smoothed strength oscillator. Everything else is a decision-support layer built on that single value, and each layer answers one specific question about the same oscillator:
The low-lag smoother is the core. A short EMA reduces lag but overshoots and adds noise; a long average is smooth but late. The two-pole low-pass filter removes lag in the pass band without the overshoot, so the up/down strength legs are both responsive and stable. This is what makes the oscillator usable for early reads.
Divergence compares price pivots to oscillator pivots. Because the oscillator is a strength reading, a higher price high against a lower oscillator high is fading strength — information that the line alone doesn't make explicit. Regular and hidden divergences are detected from confirmed pivots only.
Reversal dots mark the moment the line turns back from inside the overbought/oversold bands — a context cue about where in the range the turn happened, which a bare line forces you to eyeball.
The calibration harness is the reason the rest is trustworthy. It logs every signal the oscillator produces and, a fixed horizon later, checks whether price actually moved at least k×ATR in the signal's direction — then reports Hit %, the unconditional Base %, and the Edge (Hit − Base). It scores the oscillator's own output against reality.
These belong in one script because they all operate on, and report about, the same single oscillator. Splitting them into separate studies would mean re-deriving the oscillator three times and losing the shared pivot/threshold context that ties them together.
What makes it original
Two things. First, the strength index is rebuilt on a low-lag low-pass smoother rather than the conventional average, which changes its timing without changing its bounded, mean-reverting character. Second — and more importantly — most oscillators emit signals and never tell you whether those signals lead anywhere. LLSO carries a built-in honesty layer: the calibration harness shows the realized hit rate of its own signals against the base rate on your instrument and timeframe. If the Edge sits near zero, the script says so plainly. That measurement-first design, not the oscillator alone, is the contribution.
How to use it
Add to a chart. Defaults target intraday index futures (e.g. NSE NIFTY); for other instruments simply change the chart, or set the Price / High / Low source inputs (group 01) to retarget the engine — you can even feed it another indicator's plot.
Read the line: green above the 50 balance line = net up-strength, red below = net down-strength; the gradient fill and color saturation scale with conviction (distance from 50). The dashed bands mark overbought/oversold.
Use divergences as early warning of fading strength and reversal dots as in-band turn cues — points to investigate, not automatic trades.
Read the Edge row in the panel before trusting signals. A positive Edge means the signal preceded a forward move more often than chance on this symbol/timeframe; near zero means it didn't. The panel shows "warming" until enough samples accumulate.
The smoother period, OB/OS levels, divergence pivots, and the calibration horizon/threshold are all configurable.
Limitations
Statistics are in-sample, close-to-close, without costs — a study aid, not a backtest. They describe past behaviour on loaded history, not a forward guarantee.
Lower lag is better measurement, not an edge; an earlier turn is still wrong if the turn leads nowhere.
Divergence prints a few bars after the pivot it confirms — that lag is inherent to honest, non-repainting pivot detection.
This is an analytical oscillator. It issues no automated buy/sell instructions and is not a strategy.
Concept credit
The low-lag two-pole low-pass smoother and the strength-index reformulation are based on the published work of John F. Ehlers (Technical Analysis of Stocks & Commodities, 2024).
The Relative Strength Index that this oscillator generalizes is by J. Welles Wilder (New Concepts in Technical Trading Systems, 1978).
The implementation, the calibration harness, the divergence/reversal layers and the packaging are original.
Disclaimer
For research and educational purposes only. This script is not financial advice, not a recommendation, and not a guarantee of future results. Indicators describe price behaviour; they do not predict the future. Trading carries risk of loss. Test on out-of-sample data and make your own decisions. The author accepts no liability for any use of this script. Indicator

[Viprasol] Real Relative StrengthOverview
This indicator is based on the open-source "Real Relative Strength" (RRS) concept, which measures how an asset is performing against a benchmark after normalising for volatility. The original plots ATR-normalised relative momentum versus a benchmark (e.g. SPY) with zero-cross arrows and strong/weak zones. This version keeps that calculation and adds RRS/price divergence detection, a second-benchmark agreement filter, a signal cooldown, an RRS acceleration read, and a compact dashboard.
How It Works
Real Relative Strength (from original concept):
Relative momentum = (asset momentum − benchmark momentum) / average ATR × multiplier, where momentum is close − close for both the asset and the benchmark, and the divisor is the average of the asset and benchmark ATR. The result is smoothed with an EMA. Positive = the asset is outperforming the benchmark on a volatility-adjusted basis; negative = underperforming. Strong/weak zones mark RRS beyond a configurable level.
Divergence (new):
Using pivots on the smoothed RRS, a bearish divergence is flagged when RRS makes a lower pivot high while price makes a higher high; bullish when RRS makes a higher pivot low while price makes a lower low.
Second-Benchmark Agreement (new):
Optionally compute RRS against a second benchmark and only confirm a zero-cross when both agree in sign — a confluence filter against single-benchmark noise.
Signal Cooldown (new):
A minimum bar gap between confirmed zero-cross signals to prevent clustering.
RRS Acceleration (new):
The bar-to-bar change in smoothed RRS, shown as a rising/falling momentum read in the dashboard.
What Is Original (Viprasol Additions)
1. RRS/price divergence detection (regular bullish and bearish).
2. Optional second-benchmark agreement filter on zero-cross signals.
3. Signal cooldown.
4. RRS acceleration (momentum-of-RRS) state.
5. Compact relative-strength dashboard.
Key Features
From the Original:
- ATR-normalised relative strength vs a benchmark
- EMA smoothing, zero-cross arrows, strong/weak zones, extreme background tint
Added in This Version (Viprasol):
- Divergence detection, dual-benchmark agreement, cooldown, acceleration read, dashboard
- Six alerts with dynamic {{ticker}}/{{close}}/{{interval}} messages
How to Use
1. Set the benchmark to match your asset class (SPY/QQQ stocks, IWM small-caps, BTCUSD crypto).
2. Above zero (aqua/green area) = outperforming; below zero (red area) = underperforming.
3. Zero-cross arrows mark fresh shifts; circles mark divergences; the strong/weak zones flag standout strength.
Recommended Starting Points:
- Intraday (15m-1H): Length 10-14
- Swing (Daily/4H): Length 14-20
- Use dual-benchmark agreement for higher-conviction crosses
These are starting points only — backtest and adjust before trading live.
Settings
Core: benchmark symbol, momentum length, ATR multiplier, RRS smoothing.
Confluence & Filters: 2nd-benchmark agreement (+ symbol), signal cooldown, strong/weak zone level.
Divergence: detect divergence toggle, pivot length.
Visuals: zero-cross arrows, RRS line, RRS area.
Dashboard: toggle and position.
Alerts
1. Bullish Cross — now outperforming the benchmark
2. Bearish Cross — now underperforming the benchmark
3. Strong Outperformance — RRS beyond the strong level
4. Strong Underperformance — RRS below the weak level
5. Bullish Divergence — RRS/price bullish divergence
6. Bearish Divergence — RRS/price bearish divergence
All alerts include {{ticker}}, {{close}}, and {{interval}}.
Limitations & Disclaimer
- RRS uses request.security for the benchmark; benchmark data quality and session alignment affect readings, especially across asset classes/exchanges.
- Divergence uses confirmed pivots, which lag by the pivot length.
- Relative strength shows leadership, not absolute direction — a rising RRS in a falling market only means the asset is falling less.
- Past performance does not guarantee future results. This indicator is for educational purposes only and is not financial advice. Always use proper risk management and test on historical data before trading live.
Credits & Attribution
Based on the open-source "Real Relative Strength" concept (community / SMB-style), which provided the ATR-normalised relative-momentum calculation, EMA smoothing, zero-cross signals, and strong/weak zones. Added by Viprasol: RRS/price divergence detection, optional second-benchmark agreement, signal cooldown, RRS acceleration, and the dashboard.
Published open-source per PulseWire House Rules.
Indicator

Trend Efficiency Exhaustion Regime-Gated & CalibratedTrend Efficiency Exhaustion — Regime-Gated & Calibrated
What it is
A single-pane oscillator that measures when a trend is losing efficiency and turns that into graded, forward-calibrated exhaustion and ignition signals. It is built around one question — "is this efficiency-exhaustion event actually worth acting on?" — and every component in the script exists to answer that one question rather than to add an independent signal.
It plots, in one pane: an efficiency-gap histogram, a fast efficiency line, event markers, a regime "weather-strip" ribbon, and an information table that states the read in plain language. It is symbol- and timeframe-agnostic; defaults are tuned for NIFTY / BANKNIFTY but a Source input and a VIX-symbol input let you use it on any instrument in any market.
The core idea — efficiency, not a magic multiplier
The Efficiency Ratio is the net move divided by the total path travelled over a window: ER = |close − close | / Σ|close − close |, bounded 0–1. A value near 1 means price moved in a straight, efficient line (trend); near 0 means it wandered (chop).
Reading efficiency at two horizons gives the central signal:
Efficiency Gap = ER_fast − ER_slow. When the fast read rolls over while the slow read is still elevated, the trend is losing efficiency under an otherwise intact trend — the classic exhaustion tell.
Displacement percentile ranks the current leg's travel against recent completed legs on this symbol and timeframe, so "stretched" is defined by the instrument's own recent behaviour rather than a fixed price > k·ATR multiplier.
Exhaustion = a stretched leg with fast efficiency rolling over, under a genuine trend. Ignition = fast efficiency surging from a young leg (continuation).
Why these components belong in ONE script (how the mashup works together)
This is a mashup by design, but it is not a stack of indicators each drawing its own signal. Every layer is a gate or a grade on the same event, feeding one decision pipeline:
Efficiency (dual-horizon Efficiency Ratio) — detects the candidate event (exhaustion / ignition).
Regime engine (Efficiency + ADX + a self-exciting volatility-cluster intensity) — decides when the event is even allowed to fire. Exhaustion is only meaningful inside a real trend; it is suppressed in chaotic, news-driven volatility. The regime is rendered as a continuous 5-state read (strong-trend / trend / neutral / reversion / chaos).
Variance ratio (Lo-MacKinlay) — a second, short-window-reliable lens that confirms a real trend existed to exhaust (VR > 1 = trending, < 1 = mean-reverting, ≈ 1 = random walk), with a significance z-statistic.
Ornstein-Uhlenbeck half-life — quality gate: if the estimated mean-reversion half-life is longer than the evaluation horizon, the expected reversion is too slow to pay off in time, so the exhaustion call is rejected.
Implied-volatility (VIX) state — quality gate: exhaustion is more reliable when implied volatility is elevated but stable (fear present, not spiking). The gate blocks exhaustion during a volatility spike.
Divergence quality — grades each exhaustion on the price↔efficiency divergence at the extreme: the slope of the efficiency drop between successive same-side pivots, how developed the swing is, and whether volume waned into the extreme. Weak-divergence setups are filtered out.
Forward calibration — the scorekeeper. Each fired event is logged as a hypothesis and resolved a fixed number of bars later against an ATR-scaled move, then summarised as a realised hit-rate versus an unconditional base rate.
Take any single layer away and the remaining pipeline still describes the same one event — they are complementary measurements of a single hypothesis (a trend running out of efficiency), which is precisely why they belong together rather than as separate scripts. The regime, variance-ratio, OU and VIX layers never plot their own buy/sell calls; they only decide whether the efficiency-exhaustion event is trustworthy.
The part most scripts skip — forward calibration
Most indicators emit a score and never check whether that score was right. Here, every event is queued and resolved N bars later against moveATR × ATR, in R-multiples. The information table reports, per class (Exhaustion / Ignition):
n — resolved sample size
Hit% with a Wilson 95% interval (so you see how stable the rate is)
Base% — the unconditional same-horizon move rate (the honest benchmark)
Edge = Hit% − Base%, marked * when a z-test clears 95%
MFE / MAE in R (how far it ran for you vs against you)
a recency-weighted hit-rate and a regime-conditional hit-rate for the current regime
If Edge is not positive, the signal is not adding information over chance on your chart — and the script tells you so instead of hiding it.
How to use it
Ribbon = context. Don't fade a strong trend; stand aside in chaos.
Histogram rolling over + a marker = the trigger.
Verdict line = the plain-language call (e.g. "TREND · watch for exhaustion", "EXHAUSTION ↓ · fade the up-move (edge +12%*)", "CHAOS · stand aside"), with the calibrated edge appended when the live class is calibrated.
Chart View: Clean (default) shows only the decision elements; Full adds the slow-ER line, displacement %, all reference levels and the divergence glow for analysis.
Information Table: Compact (default) is the key-info panel — verdict, efficiency/displacement/regime, variance-ratio/OU/VIX, best calibrated edge. Pro adds the full per-class calibration table with confidence intervals, recency and regime-conditional rows.
Treat it as a context-and-confirmation overlay on your own process, not an autotrading signal. Paper-trade first and confirm the Edge column is positive on your symbol and timeframe before relying on a class.
Originality
The novelty is not any single formula — those are credited below — but the closed loop: a self-referential displacement percentile (no fixed multiplier), a regime engine and four independent quality gates that all condition one event, and a forward-calibration layer that scores that event against its own base rate with confidence intervals, recency weighting and regime conditioning. Everything is original Pine; no third-party script code is reused.
Inputs, data & markets
Source (group 1) sets the raw series the whole engine reads — change it to use any instrument in any market.
Defaults are tuned for NIFTY / BANKNIFTY; the VIX Symbol defaults to NSE:INDIAVIX. For other markets, change the Source, the ER horizons and the VIX symbol (e.g. CBOE:VIX). A missing VIX symbol auto-disables that gate.
Inputs are organised institutionally: Source & Efficiency · Regime & Variance-Ratio · Displacement · Events · Quality Gates · Calibration · Display · Theme · Exports. The table colour scheme adapts automatically to a light or dark chart background.
Non-repaint
Efficiency is read on confirmed closes, legs are taken from confirmed pivots, events fire on barstate.isconfirmed, and there are no dynamic-length ta.* calls. Forward statistics are in-sample, close-to-close, with no costs, slippage or stops — a study aid, not a backtest.
Concept credits (original Pine re-derivations)
Efficiency Ratio — Perry Kaufman
Variance-ratio test — Andrew Lo & Craig MacKinlay (1988)
ADX / Directional Movement — J. Welles Wilder
Self-exciting (Hawkes) intensity — Alan G. Hawkes (1971)
Mean-reversion half-life — Ornstein & Uhlenbeck process
Score confidence interval — Edwin B. Wilson (1927)
Dominant-cycle homodyne discriminator — John F. Ehlers
Disclaimer
For education and information only. Not financial advice and not a recommendation to buy or sell anything. Past performance does not guarantee future results. The forward statistics are in-sample and idealised (close-to-close, no costs/slippage/stops). Always do your own analysis and manage your own risk; paper-trade before risking real money. Indicator

VWAP Deviation Divergence OscillatorVWAP Deviation Divergence Oscillator
## Overview
The VWAP Deviation Divergence Oscillator turns the **deviation of price from its session-anchored Volume-Weighted Average Price (VWAP)** into a standardized, bounded oscillator, and then looks for **divergence between price and that deviation**. The idea it tests: when price makes a new extreme but sits less far from VWAP than before, the volume-weighted average is no longer confirming the move.
It is a single-pane oscillator. It requires real traded volume (use a futures contract; cash indices report none, in which case the dashboard shows "no volume"). Every data input is user-configurable, so it runs on any symbol that reports volume, in any market and on any timeframe. Defaults target NSE NIFTY index futures on intraday charts.
## What it plots
- A z-scored **VWAP deviation oscillator** (stretched above VWAP = up, stretched below = down), with a glow line and sigma-based overbought/oversold levels.
- **Extreme-zone bands** (default +/-3 sigma) with a gradient fill that deepens toward the edge.
- **Divergence lines and labels** on the oscillator - regular (reversal) and hidden (continuation), in two colors.
- **In-band reversal dots** where the oscillator turns inside an extreme zone.
- Optional **price-pane marks** at the confirmation bar (all generated by this one indicator).
- A **background-adaptive status dashboard** (oscillator value in sigma, zone, last divergence, last reversal, live distance to VWAP).
## Why these components are combined (mashup rationale)
This script combines a **derived measure**, a **normalization stage**, a **divergence engine** and a **reversal read**, because each answers a question the others cannot and none is useful here alone:
1. **VWAP deviation (price + volume).** VWAP is the volume-weighted "fair value" the session has actually transacted at - it blends price and traded volume, which a price-only oscillator does not. How far price sits from VWAP, in standardized terms, is a mean-reversion read: the deviation = price - session VWAP.
2. **Standardization (rolling z-score).** VWAP deviation differs in scale across instruments. The z-score expresses it in standard-deviation units, so "overbought/oversold" and the extreme bands mean the same thing on NIFTY, on a commodity future, or on a crypto instrument. Without this step the divergence thresholds would not transfer between symbols.
3. **Divergence engine.** The original payload is reading **price-versus-VWAP deviation disagreement at confirmed pivots**. The engine pairs each new price pivot with the oscillator value, then requires: a genuine new price extreme; the measure failing to confirm it; a minimum oscillator gap scaled to the oscillator own stdev; the two pivots within a maximum bar distance; and optionally an overbought/oversold reading at the pivot. These gates make the combination produce signal rather than noise.
4. **Reversal read.** Independently, the engine flags oscillator turns that occur inside the extreme bands - a complementary exhaustion cue.
Together the components form one pipeline: **build the signal -> make it comparable (z-score) -> surface where price and that signal disagree (divergence) and where it exhausts (reversal).** Each is incomplete alone.
## How it works (method)
deviation = price - session-anchored VWAP (which resets each session and requires real volume); this is standardized with a rolling z-score to the oscillator.
Regular and hidden divergence are detected from confirmed pivothigh/pivotlow pivots and filtered by the gates above; reversals are oscillator pivots that print inside the extreme bands. Pivots confirm a few bars after they occur, so a printed signal does not repaint. The confirmation lag equals the pivot length.
## How to use it
1. Add the indicator on a volume-bearing instrument (a futures contract); on a cash index it will read "no volume".
2. Read divergence as **context, not a trigger**: a bearish divergence (price higher high, deviation lower high) says price is less extended above VWAP than at the prior high; a bullish divergence says the opposite at lows. Confirm with your own structure, levels and risk process.
3. Tune the **pivot length**, **max gap** and **min oscillator gap** to your timeframe; raise them for fewer, cleaner signals.
## Originality
This is an original implementation - not a VWAP deviation line and not a generic divergence script, but the specific combination of VWAP deviation, sigma-standardization that makes the read portable across markets, a multi-gate divergence engine (magnitude + distance + extreme-zone), hidden-divergence and in-band reversal detection, and a background-adaptive dashboard. The code is written from scratch; helper functions use only their arguments and built-ins.
## Credits
The **Volume-Weighted Average Price (VWAP)** and **price/oscillator divergence** are standard, publicly documented techniques. This script is not affiliated with, nor endorsed by, any third party.
## Notes / limitations
- VWAP deviation needs real volume and is session-relative; it resets each session and is undefined without a volume feed.
- Divergence is descriptive context, never a guarantee of reversal.
- Confirmation lags each pivot by the pivot length.
## Disclaimer
Research and educational tool only. NOT financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Range Expansion Divergence OscillatorRange Expansion Divergence Oscillator
## Overview
The Range Expansion Divergence Oscillator turns **directional range expansion** - how large each bar range is versus its recent average, signed by the prevailing price direction - into a standardized, bounded oscillator, and then looks for **divergence between price and range**. The idea it tests: when price makes a new extreme on shrinking ranges, the move is "thin" and lacks effort behind it.
It is a single-pane oscillator. It needs no external data and no volume. Every data input is user-configurable, so it runs on any symbol, asset class or timeframe, in any market and on any timeframe. Defaults target NSE NIFTY index futures on intraday charts.
## What it plots
- A z-scored **range oscillator** (expanding range with the trend = up, contracting range = near zero), with a glow line and sigma-based overbought/oversold levels.
- **Extreme-zone bands** (default +/-3 sigma) with a gradient fill that deepens toward the edge.
- **Divergence lines and labels** on the oscillator - regular (reversal) and hidden (continuation), in two colors.
- **In-band reversal dots** where the oscillator turns inside an extreme zone.
- Optional **price-pane marks** at the confirmation bar (all generated by this one indicator).
- A **background-adaptive status dashboard** (oscillator value in sigma, zone, last divergence, last reversal, current range z-score).
## Why these components are combined (mashup rationale)
This script combines a **derived measure**, a **normalization stage**, a **divergence engine** and a **reversal read**, because each answers a question the others cannot and none is useful here alone:
1. **Directional range expansion (effort/participation).** Price geometry alone cannot show participation. A new high made on shrinking bar ranges is "thin"; a high on expanding ranges has effort behind it. The oscillator z-scores the bar range (high - low) versus its recent average and signs it by the net direction of price, giving the closest read to participation buildable from the bars of the instrument itself - with no volume required.
2. **Standardization (rolling z-score).** range differs in scale across instruments. The z-score expresses it in standard-deviation units, so "overbought/oversold" and the extreme bands mean the same thing on NIFTY, on a commodity future, or on a crypto instrument. Without this step the divergence thresholds would not transfer between symbols.
3. **Divergence engine.** The original payload is reading **price-versus-range disagreement at confirmed pivots**. The engine pairs each new price pivot with the oscillator value, then requires: a genuine new price extreme; the measure failing to confirm it; a minimum oscillator gap scaled to the oscillator own stdev; the two pivots within a maximum bar distance; and optionally an overbought/oversold reading at the pivot. These gates make the combination produce signal rather than noise.
4. **Reversal read.** Independently, the engine flags oscillator turns that occur inside the extreme bands - a complementary exhaustion cue.
Together the components form one pipeline: **build the signal -> make it comparable (z-score) -> surface where price and that signal disagree (divergence) and where it exhausts (reversal).** Each is incomplete alone.
## How it works (method)
bar range (high - low) is standardized to a rolling z-score, then signed by the net direction of price over the range window so that up = bullish; the result is the oscillator.
Regular and hidden divergence are detected from confirmed pivothigh/pivotlow pivots and filtered by the gates above; reversals are oscillator pivots that print inside the extreme bands. Pivots confirm a few bars after they occur, so a printed signal does not repaint. The confirmation lag equals the pivot length.
## How to use it
1. Add the indicator on any chart; no volume or external data is required.
2. Read divergence as **context, not a trigger**: a bearish divergence (price higher high, range lower high) says the new high lacks expanding range/effort; a bullish divergence says the opposite at lows. Confirm with your own structure, levels and risk process.
3. Tune the **pivot length**, **max gap** and **min oscillator gap** to your timeframe; raise them for fewer, cleaner signals.
## Originality
This is an original implementation - not a range line and not a generic divergence script, but the specific combination of range, sigma-standardization that makes the read portable across markets, a multi-gate divergence engine (magnitude + distance + extreme-zone), hidden-divergence and in-band reversal detection, and a background-adaptive dashboard. The code is written from scratch; helper functions use only their arguments and built-ins.
## Credits
Range-expansion / **effort-versus-result** analysis is a long-standing public technical-analysis approach (in the **Wyckoff** tradition). **Price/oscillator divergence** is likewise a standard, publicly documented technique. This script is not affiliated with, nor endorsed by, any third party.
## Notes / limitations
- Range is a participation proxy, not a direction call; the sign comes from a short price window, so very choppy segments can flip it.
- Divergence is descriptive context, never a guarantee of reversal.
- Confirmation lags each pivot by the pivot length.
## Disclaimer
Research and educational tool only. NOT financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Efficiency Divergence OscillatorEfficiency Divergence Oscillator
## Overview
The Efficiency Divergence Oscillator turns the **signed efficiency ratio** - net price displacement divided by the total path price actually travelled - into a standardized, bounded oscillator, and then looks for **divergence between price and the efficiency of its travel**. The idea it tests: when price makes a new extreme but reaches it on an increasingly choppy, inefficient path, the move is losing conviction.
It is a single-pane oscillator. It needs no external data and no volume. Every data input is user-configurable, so it runs on any symbol, asset class or timeframe, in any market and on any timeframe. Defaults target NSE NIFTY index futures on intraday charts.
## What it plots
- A z-scored **efficiency oscillator** (clean advance = up, clean decline = down, choppy travel = near zero), with a glow line and sigma-based overbought/oversold levels.
- **Extreme-zone bands** (default +/-3 sigma) with a gradient fill that deepens toward the edge.
- **Divergence lines and labels** on the oscillator - regular (reversal) and hidden (continuation), in two colors.
- **In-band reversal dots** where the oscillator turns inside an extreme zone.
- Optional **price-pane marks** at the confirmation bar (all generated by this one indicator).
- A **background-adaptive status dashboard** (oscillator value in sigma, zone, last divergence, last reversal, signed efficiency in %).
## Why these components are combined (mashup rationale)
This script combines a **derived measure**, a **normalization stage**, a **divergence engine** and a **reversal read**, because each answers a question the others cannot and none is useful here alone:
1. **Signed efficiency ratio (path quality).** Momentum tells you how FAR price moved; it does not tell you how DIRECTLY it got there. The signed efficiency ratio = (price - price ) / sum(|price - price |, len), a value in +/-1 that is positive for efficient up-moves and negative for efficient down-moves. It isolates path quality - a dimension a magnitude-only momentum oscillator cannot show.
2. **Standardization (rolling z-score).** efficiency differs in scale across instruments. The z-score expresses it in standard-deviation units, so "overbought/oversold" and the extreme bands mean the same thing on NIFTY, on a commodity future, or on a crypto instrument. Without this step the divergence thresholds would not transfer between symbols.
3. **Divergence engine.** The original payload is reading **price-versus-efficiency disagreement at confirmed pivots**. The engine pairs each new price pivot with the oscillator value, then requires: a genuine new price extreme; the measure failing to confirm it; a minimum oscillator gap scaled to the oscillator own stdev; the two pivots within a maximum bar distance; and optionally an overbought/oversold reading at the pivot. These gates make the combination produce signal rather than noise.
4. **Reversal read.** Independently, the engine flags oscillator turns that occur inside the extreme bands - a complementary exhaustion cue.
Together the components form one pipeline: **build the signal -> make it comparable (z-score) -> surface where price and that signal disagree (divergence) and where it exhausts (reversal).** Each is incomplete alone.
## How it works (method)
efficiency = (price - price ) / sum(abs(price - price ), len) over the efficiency window, a value in +/-1; this is standardized with a rolling z-score to the oscillator.
Regular and hidden divergence are detected from confirmed pivothigh/pivotlow pivots and filtered by the gates above; reversals are oscillator pivots that print inside the extreme bands. Pivots confirm a few bars after they occur, so a printed signal does not repaint. The confirmation lag equals the pivot length.
## How to use it
1. Add the indicator on any chart; no special data is required.
2. Read divergence as **context, not a trigger**: a bearish divergence (price higher high, efficiency lower high) says the advance is getting choppier; a bullish divergence says the decline is. Confirm with your own structure, levels and risk process.
3. Tune the **pivot length**, **max gap** and **min oscillator gap** to your timeframe; raise them for fewer, cleaner signals.
## Originality
This is an original implementation - not a efficiency line and not a generic divergence script, but the specific combination of efficiency, sigma-standardization that makes the read portable across markets, a multi-gate divergence engine (magnitude + distance + extreme-zone), hidden-divergence and in-band reversal detection, and a background-adaptive dashboard. The code is written from scratch; helper functions use only their arguments and built-ins.
## Credits
The Efficiency Ratio was introduced by **Perry J. Kaufman**. **Price/oscillator divergence** is a long-established, publicly documented technical-analysis technique. This script is not affiliated with, nor endorsed by, any third party.
## Notes / limitations
- Efficiency is a path-quality read, not a direction call; in strong clean trends it stays elevated without diverging.
- Divergence is descriptive context, never a guarantee of reversal.
- Confirmation lags each pivot by the pivot length.
## Disclaimer
Research and educational tool only. NOT financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Basis Divergence OscillatorBasis Divergence Oscillator — PulseWire publication description
## Overview
The Basis Divergence Oscillator turns the **futures-versus-spot basis** (the premium or discount of a future to its cash market) into a standardized, bounded oscillator, and then looks for **divergence between price and that basis**. The idea it tests is simple: when price makes a new extreme but the premium does not confirm it, the move is more likely leverage being unwound than fresh demand.
It is a single-pane oscillator. By default it pairs NSE NIFTY index futures with the NSE:NIFTY cash index, but every data input is user-configurable, so it runs on any future that has a cash/spot counterpart, in any market and on any timeframe.
## What it plots
- A z-scored **basis oscillator** (premium expanding = up, premium shrinking toward discount = down), with a glow line and σ-based overbought/oversold levels.
- **Extreme-zone bands** (default ±3σ) with a gradient fill that deepens toward the edge.
- **Divergence lines and labels** drawn on the oscillator — regular (reversal) and hidden (continuation), in two colors.
- **In-band reversal dots** where the oscillator turns inside an extreme zone.
- Optional **price-pane marks** at the confirmation bar (all generated by this one indicator).
- A **background-adaptive status dashboard** (oscillator value in σ, zone, last divergence, last reversal, live basis in points).
## Why these components are combined (mashup rationale)
This script deliberately combines a **cross-symbol calculation**, a **normalization stage**, a **divergence engine** and a **reversal read**, because each one answers a question the others cannot, and none of them is useful here on its own:
1. **Cross-symbol basis (two instruments → one series).** The basis is `chart price − cash/spot reference`. It isolates the small premium/discount component of price, which is driven by cost of carry, financing and leverage/positioning demand — information that the instrument's own price and its own volume do not contain. This is the whole reason a second symbol is pulled: remove either symbol and the basis is undefined. The two-symbol construction is intrinsic, not decorative.
2. **Standardization (rolling z-score).** The raw basis drifts slowly with time-to-expiry and carry, and its scale differs by instrument. The z-score detrends that drift and expresses the basis in standard-deviation units, so "overbought/oversold" and the extreme bands mean the same thing on NIFTY, on a commodity future, or on a crypto perpetual. Without this step the divergence thresholds would not transfer between symbols.
3. **Divergence engine.** A plotted basis line is already common; the original payload here is reading **price-versus-basis disagreement at confirmed pivots**. The engine pairs each new price pivot with the basis oscillator's value, then requires (a) a genuine new price extreme, (b) the basis failing to confirm it, (c) a minimum oscillator gap scaled to the oscillator's own stdev, (d) the two pivots within a maximum bar distance, and (e) optionally an overbought/oversold reading at the pivot. These gates exist so the combination produces meaningful signals rather than noise.
4. **Reversal read.** Independently, the engine flags oscillator turns that occur inside the extreme bands — a complementary "exhaustion" cue to the divergence cue.
In short, the components form one pipeline: **build an independent signal (basis) → make it comparable (z-score) → surface where price and that signal disagree (divergence) and where it exhausts (reversal).** They are read together; each is incomplete alone.
## How it works (method)
- `basis = price − request.security(reference, close)` on the chart's timeframe (no lookahead).
- `oscillator = z-score(basis, normalization window)`, optionally EMA-smoothed.
- Regular and hidden divergence are detected from confirmed `pivothigh`/`pivotlow` pivots and filtered by the gates above.
- Reversals are oscillator pivots that print within the ±extreme bands.
- Pivots confirm a few bars after they occur, so a printed signal does not repaint afterward. The confirmation lag equals the pivot length.
## How to use it
1. Put the indicator on a **future** (e.g. NIFTY index futures).
2. In **Data source**, set **Reference (cash/spot) symbol** to that instrument's spot (default NSE:NIFTY). A mismatched reference makes the basis meaningless.
3. Read divergence as **context, not a trigger**: a bearish divergence (price higher high, basis lower high) says the advance is not backed by premium; a bullish divergence says the opposite. Confirm with your own structure, levels and risk process.
4. Tune the **pivot length**, **max gap** and **min oscillator gap** to your timeframe; raise them for fewer, cleaner signals.
## Originality
This is an original implementation. It is not a basis line and not a generic divergence script: it is the specific combination of a cross-symbol basis, σ-standardization that makes the read portable across markets, a multi-gate divergence engine (magnitude + distance + extreme-zone), hidden-divergence and in-band reversal detection, and a background-adaptive dashboard. The code is written from scratch; helper functions use only their arguments and built-ins.
## Credits
The basis (futures premium/discount) is explained by the **cost-of-carry / theory-of-storage** framework in futures-pricing economics — foundational work by N. Kaldor (1939) and H. Working (1948–49). **Price/oscillator divergence** is a long-established, publicly documented technical-analysis technique. This script is not affiliated with, nor endorsed by, any third party.
## Notes / limitations
- The basis needs a clean reference feed and a matched contract; on illiquid or mismatched references, or when spot and future trade on different clocks, it is noisy.
- Divergence is descriptive context, never a guarantee of reversal.
- If the reference symbol is unavailable the oscillator holds flat and the dashboard shows "n/a".
## Disclaimer
Research and educational tool only. NOT financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Multi Factor Divergence Confluence OscillatorMulti-Factor Divergence Confluence Oscillator
What it is
This indicator detects price/oscillator divergence on four independent indicator families at the same price pivots and reports how many of them agree. The lower-pane histogram shows the signed agreement count — positive (bullish) above the zero line, negative (bearish) below — and a signal is flagged only when at least N independent families diverge at the same swing. It is a context tool that measures agreement, not a buy/sell system, and it places no orders.
Why these components are combined (and why it is not just stacked indicators)
Divergence on a single oscillator is a weak, noisy signal. The instinctive "fix" is to stack several oscillators and look for agreement — but stacking RSI, Stochastic, MACD and similar tools does not create real confluence, because they are all rate-of-change of price. They are highly correlated, so a divergence on one almost always coincides with the others. That is one witness counted several times, which feels like confirmation while adding almost no new information.
Meaningful confluence requires independent witnesses. This script therefore measures divergence on four families chosen specifically because each looks at a different dimension of the same bar, and each covers a blind spot of the others:
Momentum — Relative Strength Index. The classic rate-of-change read. It says nothing about who is transacting or how far price has travelled.
Volume — Normalized Cumulative Volume Delta. Detrended, standardized signed volume — an order-flow read that is independent of price geometry. (Signed volume is estimated; see Limitations.)
Volatility — Parabolic-SAR-to-price extension, in ATR units. How stretched the current trend leg is relative to its trailing stop, normalized by volatility — a read that ignores both momentum and volume.
Forecast — price minus its linear-regression forecast. A z-scored "how far has price departed from its own fitted path" term, independent of the three above.
All four are rescaled to share polarity (up = bullish), so a single divergence rule applies to every engine and the counts are directly comparable. Counting agreement across these families is information; counting it within one family is not — that independence is the entire reason these four are combined, rather than four momentum clones.
How the parts work together
Each enabled family is reduced to one bounded, bullish-up oscillator.
At every confirmed price swing (the families share the same price pivots), each family is asked whether it diverges there. Bearish = price makes a higher high while the oscillator makes a lower high; bullish = price makes a lower low while the oscillator makes a higher low.
The number of agreeing families becomes the signed confluence histogram, with glowing tip dots on flagged signals and a connecting line/label on the pane.
A signal flag is raised only at or above the chosen agreement threshold. That threshold can adapt to the chart timeframe — lower timeframes are noisier, so by default 1–5m require four families, 15–60m require three, and above 60m require two.
How to use it
Read the height and sign of the histogram: how many independent families diverge, and in which direction. The flag lines and the optional shaded zones mark where agreement is strong (three or more).
Treat it as context that qualifies your own analysis, not a standalone trigger. A divergence marks where price and a flow/momentum read disagree; it can resolve either way. More agreement is rarer, not guaranteed-better.
The dashboard summarizes the last signal, which families diverged, the active engines, the current threshold, and whether the signed-volume estimate is using lower-timeframe data or the proxy.
Enable/disable any family, switch between regular (reversal) and hidden (continuation) divergence, and tune the pivot, gap and threshold settings to your instrument and style.
What is original
The originality is the integration discipline, not the individual techniques: divergence is measured only across deliberately independent families on one shared set of price pivots and one comparable axis, with an explicit rule that within-family agreement is excluded. The result is a single confluence read that resists the double-counting that ordinary multi-oscillator "confluence" tools fall into, plus a timeframe-adaptive agreement threshold and an honest, configurable, multi-market implementation.
Universal across markets (configurable data source)
The Price / High / Low sources are user-selectable in Settings, so the engine runs on any symbol, asset class or timeframe — equities, futures, forex, crypto or indices. The Volume family needs a symbol that reports real volume; otherwise it falls back to a high/low/close proxy, and the dashboard shows which is active. Defaults are tuned for NSE NIFTY index futures on intraday charts; change the sources, lengths and lower timeframe for any other instrument.
Concept credits
Relative Strength Index and Parabolic SAR — J. Welles Wilder Jr. Cumulative Volume Delta, linear-regression forecasting and price/oscillator divergence are standard, publicly documented techniques. This is an original integration built around those public concepts and is not affiliated with, nor endorsed by, any originator.
Limitations (honest)
Divergence is context, not a trigger. Signed volume is estimated from lower-timeframe sub-bars (or an intrabar proxy), not exchange aggressor data, so the Volume family is an approximation and is unreliable on instruments without real volume. Divergence confirms a few bars after its pivot — inherent to honest, non-repainting pivot detection. Past behaviour does not predict future results.
Disclaimer
For research and educational purposes only. This is not financial advice and carries no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading involves risk of loss. Test out-of-sample and make your own decisions.
Indicator

Volume Flow Divergence OscillatorVolume Flow Divergence Oscillator (VFDO)
Volume Flow Divergence Oscillator
A bounded order-flow oscillator that measures whether buying or selling pressure dominates and how stretched it is, then detects price/flow divergences with statistical filtering. Three interchangeable flow engines share one axis so the same read can be cross-checked three independent ways.
Why these components are combined (and why this is not a generic mashup)
Order-flow pressure can be measured several ways, and each has blind spots. The problem this script solves is specific: raw Cumulative Volume Delta (CVD) trends without bound, so classic "swing-high vs swing-high" divergence on it is unreliable — the comparison ends up dominated by the accumulated drift instead of local buying/selling conviction. Stacking more momentum tools (a second RSI, a MACD) would only double-count the same information.
Instead, this tool (a) detrends and standardizes the flow into a bounded, mean-reverting oscillator so divergence becomes valid, and (b) offers three orthogonal lenses on one question — is buying or selling winning, and is it stretched?:
Normalized CVD — cumulative signed volume, detrended (minus its EMA) and divided by the residual's standard deviation. The reading is a z-score of how stretched flow is versus its own recent trend.
CVD-RSI — Wilder's RSI applied to the detrended CVD (not raw CVD, which would pin near 0/100 in a sustained trend). A 0–100 momentum-of-flow read.
MFI (Money Flow Index) — a volume-weighted RSI that does not depend on the signed-volume estimate, so it acts as a genuine independent cross-check.
These three are not redundant: they are different constructions of the same idea. A divergence that appears on all three is far more robust than one that appears on only one — and if they disagree, the "divergence" is construction-dependent noise. That cross-checking is the core purpose of putting them on a shared bounded axis.
Four context modules sit on top, each adding what the raw line cannot:
Filtered divergence — regular and hidden divergence between price pivots and the flow oscillator, gated by a minimum magnitude (marginal wiggles don't count), a maximum bar-distance between pivots (no stale comparisons), and an optional extreme-zone requirement (only count divergences forming from overbought/oversold, where they carry the most meaning). Lines are drawn on the oscillator curve; price marks print at the confirmation bar.
Gradient extreme zones — ±4σ (or 90/10) bands that shade lighter at the edge and darker as flow pushes further out, marking genuinely stretched conditions.
In-band reversal dots — a red/green dot when the oscillator makes a local turn inside an extreme band, flagging that stretched flow is unwinding.
Adaptive dashboard — a compact panel (oscillator value, zone, last divergence, last reversal, data source) that auto-themes to the chart background for legibility on any color scheme.
How signed volume is estimated (honesty)
True aggressor-tagged delta is unavailable on most PulseWire feeds, so signed volume here is estimated: per bar it is summed from lower-timeframe sub-bars (each sub-bar's volume signed by whether it closed up or down), falling back to an intrabar OHLC proxy when sub-bar data isn't available. The dashboard's Delta source row shows which is live ("LTF" vs "proxy"). This is the standard approach CVD tools use; it is an estimate, not exchange-tagged order flow.
How to use
Add to any symbol that reports volume. Read it like a bounded flow gauge: above the upper band = buying stretched; below the lower band = selling stretched; midline = balance.
Treat divergences as context, not standalone triggers. A bearish divergence at the upper extreme means buying conviction is fading as price makes a new high.
Cross-check with the Engine selector: confirm a divergence by switching between Normalized CVD, CVD-RSI and MFI. Agreement across all three is the strong case.
Reversal dots mark stretched-flow unwinding — combine with your own price structure and risk rules.
Settings overview
Data Source — lower-timeframe for the delta estimate; selectable High/Low sources for divergence, so the engine fits any instrument.
Flow Oscillator — engine selector, detrend/normalize window, OB/OS, smoothing, RSI/MFI lengths.
Extreme Zones & Reversals — ±4σ band level, band display, reversal dots.
Divergence — magnitude, pivot length, max bar-distance, extreme-zone gate, regular/hidden.
Dashboard & Theme — colors, position, and Auto/Dark/Light theme.
Defaults are tuned for NSE NIFTY futures on intraday timeframes (1-minute sub-bar delta). For other assets or timeframes, adjust the lower timeframe, normalize window, and band levels — every parameter is exposed.
Originality
This is not a re-skin of a single public indicator. The original contributions are: the detrend-then-standardize normalization that makes CVD divergence valid; three interchangeable flow engines on one shared bounded axis for cross-checking; and a divergence engine with magnitude + distance + extreme-zone gating drawn on the oscillator curve, with in-band reversal detection.
Concept credits
Relative Strength Index — J. Welles Wilder Jr.
Money Flow Index — Gene Quong & Avrum Soudack.
Cumulative Volume Delta and divergence analysis are standard public order-flow / technical-analysis concepts.
This script is an original implementation built around those public concepts and is not affiliated with, nor endorsed by, their originators.
Disclaimer
For research and educational purposes only. Not financial advice and no guarantee of profitability or accuracy. Signed volume is estimated, not exchange-tagged. Indicators describe past price behavior; they do not predict the future. Trading carries risk of loss. Test on out-of-sample data and make your own decisions. The author accepts no liability for any use of this script.
Indicator

Multi Cycle KST OscillatorMulti-Cycle KST Oscillator — Publication Description
What it does
The Multi-Cycle KST Oscillator is a momentum oscillator built on the Know Sure Thing (KST) — a summed, weighted blend of four smoothed Rate-of-Change series. The standard KST plots one line. This script computes three KSTs at short, intermediate and long cycle lengths, reads their alignment, and wraps the plotted short-term KST in five decision-support modules so the momentum reading is filtered, contextualized and scored rather than read at face value. A single 0–100 Confidence value summarizes everything, and the oscillator line is colored by it.
Why these components are combined (the reason for the mashup)
KST on its own is a momentum (rate-of-change) factor, and it lags by construction. Adding more momentum tools such as RSI, MACD or Stochastic would only restate the same information. So every module added here is deliberately orthogonal to momentum — each answers a question the KST cannot answer by itself:
Long-term KST direction — the regime gate. A slower KST decides which side to trade. Short-term buy crosses are only trusted when the long-term cycle is rising, short crosses only when it is falling. This is the core of the multi-cycle idea: trade the shorter cycle in the direction of the longer one.
ADX/DMI regime filter — trade only in a real trend. Momentum crosses whipsaw in sideways markets, so signals are suppressed and the background is shaded while ADX is below threshold.
Higher-timeframe filter — alignment with the bigger picture. The same momentum direction is read from a higher, confirmed (non-repainting) timeframe to drop counter-trend crosses.
Price/KST divergence — early warning. Because the oscillator measures momentum, a price high against a lower oscillator high (or the inverse) flags fading momentum before the signal-line cross. Regular and hidden divergences are detected from confirmed pivots.
Efficiency-Ratio conviction scaler — how much to trust it now. A Kaufman Efficiency Ratio scales the Confidence up in clean trends and down in chop. It is a magnitude scaler, never a direction vote, so it cannot double-count momentum.
How the parts work together
Each module feeds one combined output. The plotted oscillator is the short-term KST (optionally standardized). A Buy or Sell is raised only when the short-term KST crosses its signal line AND the long-term cycle agrees AND the regime and higher-timeframe filters agree AND Confidence clears its threshold. Confidence itself is a weighted vote across the four orthogonal inputs (KST-vs-signal, long-term direction, price location, divergence), scaled by the Efficiency Ratio and clamped to 0–100. Divergence labels and the ATR stop/target are context around that one decision.
What makes it original
It is not a KST with other indicators drawn beside it. It turns a single KST line into a three-cycle alignment model with a long-term regime gate, then standardizes the result so its bands carry a consistent statistical meaning across instruments, and fuses five orthogonal checks into one bounded Confidence reading with explicit buy/sell gating. The combined output — "is momentum turning, in a real trend, in line with the larger cycle, and how much should I trust it" — does not exist in the source indicator.
How to use it
Pick an Oscillator mode: Raw (native KST), Z-Score, or Robust Z (median/MAD, least sensitive to spikes).
Green = up-cycle momentum, red = down-cycle; further from zero and brighter = stronger and higher conviction. Warn / Extreme bands mark stretched readings.
Buy / Sell triangles fire only when the cross, the long-term gate, the regime and higher-timeframe filters, and the Confidence threshold all agree. Treat them as points to investigate, not automatic entries.
Use divergences as early warning of fading momentum, and the two dashboards for the full read: right panel = Bias, Confidence, Signal, Cycle alignment, Oscillator; left panel = Long-term KST, Regime, Divergence, ATR Stop and Target.
The dashboards adapt to your chart's background brightness so both stay legible on dark or light themes.
Settings and defaults
Inputs are grouped and numbered: Data Source, the three KST cycles, Normalization & Display, Threshold Bands, Confirmation Filters, Divergence, Confidence Engine, Risk Targets, Signals & Alerts, and Visuals & Dashboard. Defaults follow the classic KST values and are tuned for NSE NIFTY on intraday charts. Because the Price / High / Low sources are user-selectable, the engine works on any instrument or even another indicator's output — for other assets, adjust the ROC/SMA lengths, the higher timeframe and the ATR period to suit.
Concept credit
The Know Sure Thing (KST) oscillator was created by Martin J. Pring. This script is an original multi-cycle implementation built around that public concept and is not affiliated with, nor endorsed by, its originator.
Honest limitations
KST is lagging by construction; this confirms moves, it does not predict them. Confidence (0–100) is an ordinal heuristic for how aligned the components are — it is not a probability or a win rate. Divergence is computed on confirmed pivots and therefore prints a few bars after the pivot forms; that latency is inherent to honest pivot detection. Signals confirm on bar close (non-repainting) by default, and the higher-timeframe filter uses the previous confirmed higher-timeframe bar. Backtest any settings on your own market before relying on them.
Disclaimer
For research and educational purposes only. This is not financial advice, not an investment recommendation, and not a solicitation to trade. Indicators describe past price behavior; they do not predict the future. Trading involves substantial risk of loss. Test on out-of-sample data and make your own decisions. The author accepts no liability for any use of this script. Indicator

Z-Score Flow Pro [JOAT]Z-SCORE FLOW PRO
A rigorously-statistical mean-reversion oscillator built on top of two of the cleanest primitives in market analysis — the Z-score of price against its own rolling mean and the EMA-smoothed RSI — and wrapped in a regime-aware visual and signal pipeline that knows when not to fire.
Why Z-score
A Z-score answers the question every reversion trader is really asking: "How many standard deviations is price from where it usually sits?" It is regime-aware by construction — when realised volatility expands, the same dollar move produces a smaller Z; when it contracts, the same dollar move produces a larger Z. That means the signal levels (Z = ±2, ±3, etc.) carry the same statistical meaning across instruments and timeframes, which a price-distance level never does.
Z-Score Flow Pro uses:
Z-score core — close vs SMA basis, normalised by rolling stdev, over a configurable lookback (default 100).
EMA trend filter — a long EMA (default 50) decides which side of the chart the engine considers in-regime. Signals are weighted by regime alignment, not blindly suppressed.
Smoothed RSI — RSI is computed, then EMA-smoothed (default 8-bar) to eliminate the single-bar whipsaws that plague the raw indicator without re-introducing visible lag.
A signal needs both the Z-score and the smoothed RSI to be at extremes on the same side — that AND-gating is what removes most of the false signals that pure RSI or pure Z systems produce.
Signal engine
A Buy signal requires Z ≤ Buy threshold (default −2.0) and smoothed RSI ≤ oversold level (default 30). A Sell signal requires Z ≥ Sell threshold (default +2.0) and smoothed RSI ≥ overbought level (default 70). A configurable cooldown prevents back-to-back signals; the labels respect the EMA regime filter so the strongest read is when signal direction agrees with the EMA trend.
Background heatmap (JOAT enhancement)
The chart pane is tinted bull or bear with an intensity proportional to |Z|. The mapping is linear: at Z = 0 the heatmap is nearly invisible, at |Z| = the saturation threshold (default 1.5) the tint reaches its loudest configured opacity. Both ends are tunable, so you can dial the heatmap from "barely there" to "institutional cockpit". This is the cleanest at-a-glance read of how stretched the market is right now — you do not need to read the Z value itself.
Divergence engine (JOAT enhancement)
A slope-comparison divergence runs in parallel: it compares the slope of the Z-score against the slope of price over a configurable lookback. A bullish divergence requires price slope negative and Z slope positive; bearish is the mirror. Both slopes must exceed a small epsilon to suppress flat-region noise, and a divergence cooldown spaces them out. Divergences print directly in the chart pane in the palette colour.
Slope-coloured Z-mean line
The Z-score's own running mean is plotted as a slope-coloured ribbon: bull / bear / flat colours based on the slope over a configurable sensitivity window. The shadow underneath the line uses an alpha-modulated version of the same colour so the line visually breathes with regime.
Dashboard
A compact monospaced table, positionable to any of nine corners, with togglable cell transparency. Rows surface:
Current Z-score and its direction (Rising / Falling / Flat).
One-year (252-bar) percentile of Z — how unusual the current reading is in its own recent history.
Smoothed RSI and its slope direction.
Active EMA regime (Up / Down / Neutral).
Distance of Z from its own min/max range (position-in-Z, 0–100%).
Alerts
Alerts are exposed for buy / sell signals, divergences, regime flips, and a configurable Z-extreme alert that fires when |Z| crosses a user-set high level (default 3.0). The extreme alert is the cleanest "the market is genuinely far from home" trigger this script produces and is suitable for end-of-day notification workflows.
How to read it
Three reads, in order of conviction:
Background heatmap — a glance tells you whether you are in a normal-Z regime (no tint) or stretched (bright tint). Most of the time, do nothing.
Signal labels — fade extremes only when both Z and RSI agree, and respect the EMA regime — counter-trend trades into a sustained EMA-aligned move are lower-conviction by definition.
Divergences — the highest-conviction reads. A bullish divergence with the heatmap saturated bear and the signal in the right direction is the cleanest setup the engine can produce.
Suggested settings
Defaults are tuned for 1H–4H on liquid markets. For 5m–15m, drop Z period to 50 and RSI period to 9. For daily and above, raise Z period to 200 and EMA trend filter to 100. The thresholds (±2.0 Z, 30/70 RSI) are intentionally classic — they correspond to the textbook two-sigma deviation and are well-understood; loosen them only if you are running on a less-liquid instrument.
Originality / what's reused
Z-score and RSI are public-domain mathematics, used here as primitives. The implementation — the smoothed-RSI gating, the slope-coloured Z-mean line with alpha shadow, the |Z|-driven background heatmap, the 252-bar percentile rank, the divergence epsilon filter, and the AND-gated signal pipeline — is JOAT-original and tuned together. No third-party code reused.
Open source
Published open-source under the default Mozilla Public License 2.0. Every section is banner-headed, every helper is documented inline, every input carries a tooltip. The Z-mean line, the heatmap, the divergence engine, and the dashboard are each in their own isolated module so you can study or adapt any single piece without reading the whole file.
Limitations
Z-score mean-reversion is a counter-trend tool by definition. In sustained one-sided trends the Z will live at an extreme for many bars and the signals will give back giveback — the EMA regime filter exists to warn you when you are in this state. The 252-bar percentile rank needs ~1 year of data to be meaningful; on shorter histories it warms up to neutral. Divergences are non-repainting but carry the natural lag of slope-over-window comparison.
—
-made with passion by jackofalltrades
Indicator

EV Edge | AnonycryptousEV Edge | Anonycryptous
Description & user manual
Why this indicator is different;
Most breakout indicators stop at the entry. A box compresses, price breaks out, an arrow appears, and the indicator's job is considered done. What happens next - whether that breakout actually develops into a sustained move or stalls and reverses within a few bars - is left entirely to the trader to monitor manually.
EV Edge treats the moment of entry as the beginning of the analysis, not the end of it.
At its core is a consolidation detection engine that identifies tight, compressed ranges using an ATR-based threshold. When price breaks out of one of these ranges in the direction of the move that led into it - a continuation pattern sometimes described as the right side of a V - a signal fires. This part is familiar territory for breakout-based tools.
What happens afterward is not. Every signal starts with an EV score, a value between 0 and 100 that represents the expected value of the trade as it currently stands. The rule is simple: higher is better, lower is worse - for both long and short trades. A score climbing toward 100 means the trade is developing in your favor. A score falling toward 0 means price is moving against you. This holds regardless of direction. A short trade with an EV score of 85 is developing well. A long trade with an EV score of 12 is going the wrong way.
This score is not fixed at entry. It evolves on every subsequent bar based on how price actually behaves - how far it has moved in the trade's favor relative to ATR, and whether it has retraced back into the consolidation zone it broke from. A trade that continues cleanly in its intended direction sees its EV score climb toward 100. A trade that stalls or reverses back into the consolidation sees its score fall toward 0, with the penalty scaling proportionally to how deep the retracement goes.
The trade is then managed automatically by its own EV score. If the score reaches a configurable extreme - high or low - the trade closes out and the indicator becomes ready for the next signal. If neither extreme is reached within a maximum bar count, the trade times out. Every closed trade is recorded with its entry score, exit score, exit reason, and duration in an optional trade log table, turning the chart into a running record of how setups actually played out rather than a static history of where arrows appeared.
This is the central idea behind EV Edge: a signal is not a single judgment made once. It is a starting hypothesis that is continuously re-evaluated against what price does next.
A note on the colors
EV Edge uses two independent color systems that represent different things, and reading them correctly is essential.
The entry label color - the small triangle marker and its background - reflects trade direction. A long entry uses the bull color. A short entry uses the bear color. This is fixed at the moment of entry and never changes.
The trade zone box uses a separate, monochrome system that reflects how strongly the trade is currently developing, independent of direction. The box is a single configurable color throughout - by default a neutral steel grey - and only its intensity changes. Near the middle of the EV range the box is barely visible. As the EV score moves toward either extreme, the box becomes more opaque. The box answers one question only: how strong is the current reading, regardless of which way it points.
The EV score itself - shown as a number, a ten-segment meter, and a zone label in the dashboard - uses a four-zone color system based purely on score value, with no reference to trade direction:
90 to 100 : amber - the score is approaching the high exit threshold
60 to 90 : green (bull color) - the trade is developing favorably
40 to 60 : gold - neutral territory, no strong reading in either direction
10 to 40 : red (bear color) - the trade is developing poorly
0 to 10 : amber - the score is approaching the low exit threshold
This color system is direction-independent. A short trade with EV 85 shows green because the short is working well. A long trade with EV 14 shows red because the long is working against you. The amber zones at both extremes serve as a visual warning that an automatic exit is approaching, regardless of whether the trade is succeeding or failing. When no trade is active, the EV display is grey.
The text inside entry labels and EV shift labels is rendered in the measurement/brand color, against a background in the bull or bear color matching the trade direction. This keeps the label readable against either background while keeping the directional color as the dominant visual cue.
Important notice
EV Edge generates signals based on price action, volume behavior, and momentum confirmation.
These signals are not financial advice.
They do not predict future price movement.
They do not guarantee profitability.
All trading decisions are made entirely by the user.
Always manage your own risk. Always apply your own judgment.
1. Overview
EV Edge is a consolidation breakout indicator with a self-updating expected value score that tracks every trade from entry to close. It combines breakout detection, dynamic trade evaluation, optional momentum confirmation, multi-timeframe trend context, and a trade outcome log in a single lightweight indicator.
What it includes:
- Consolidation detection using ATR-based range compression
- Breakout signal with optional right-side-of-V continuation filter
- EV score from 0 to 100 that evolves bar by bar based on price drift and retracement depth
- Optional volume component blended into the EV score
- Four-zone color system on the EV score display: amber at the extremes, green in the favorable zone, gold at neutral, red in the unfavorable zone
- Automatic early exit when EV reaches a configurable extreme, with a hard bar-count cap as fallback
- Trade zone box that grows with the active trade and increases in opacity as EV moves away from neutral
- Extreme EV shift labels that appear only on significant single-bar changes or zone crossovers
- Optional VW RSI and MFI confirmation filter for entries, with an independent mini panel showing live values regardless of filter state
- Configurable divergence sensitivity for VW RSI divergence detection (High / Medium / Low)
- Multi-timeframe trend bar across six timeframes with a bull count
- Four independently toggleable EMA lines for visual confluence, with no effect on signals
- Trade log table recording direction, entry EV, exit EV, exit reason, and duration for recent trades
- Fully configurable bull, bear, and measurement colors applied consistently across labels, dashboards, and the trend bar
2. Core calculation
2.1 Consolidation detection
A consolidation range is measured over a configurable lookback period using the highest high and lowest low in that window. This range is compared against an ATR-based average range. When the actual range falls below the average range multiplied by a compression factor, the range is considered compressed. A consolidation is only confirmed once a minimum number of consecutive compressed bars has occurred - this is the V forming.
Lower compression factors demand tighter ranges before a consolidation is recognized. Higher minimum bar counts demand more mature consolidations. Both settings directly affect how often signals occur.
2.2 Breakout signal and the right side of the V
A breakout fires when price closes beyond the consolidation high or low by a configurable buffer, expressed as a multiple of ATR. With the right-side-of-V filter enabled, the breakout must also continue in the same direction as the move that occurred before the consolidation began. A consolidation that formed after an upward move and then breaks upward is a continuation. A consolidation that formed after an upward move and then breaks downward is not, and is ignored with this filter on.
Only one trade is tracked at a time. While a trade is active, new breakout signals are not evaluated. This keeps the chart from filling with overlapping signals and trade zone boxes during volatile, choppy conditions.
2.3 The EV score
Every new signal starts with an EV score of 60. From that point, the score updates on every bar based on two components.
The price component measures drift - how far price has moved in the trade's favor since entry, normalized by ATR - and retracement - whether price has moved back into or past the consolidation zone it broke from. Favorable drift increases the score. A retracement decreases it, and the size of the decrease scales with how deep the retracement goes. A shallow retracement back to the edge of the consolidation costs less than a retracement that pushes well past the original zone.
The optional volume component compares current volume to its moving average. Volume expanding in the direction of the trade supports the price component. Volume that is elevated while price is not moving - an effort without result condition - works against the score even if price has not yet retraced.
Both components are combined using configurable weights, and the result is applied to the running score each bar, clamped between 0 and 100.
2.4 Exits
A trade closes in one of two ways. If the EV score reaches a configurable extreme - high or low - after a minimum number of bars have passed, the trade closes immediately and the result is logged as an EV High or EV Low exit. The minimum bar requirement prevents the first bar or two after entry from closing the trade before it has had a chance to develop.
If neither extreme is reached within a maximum bar count, the trade closes as a Timeout. Either way, the indicator becomes ready to evaluate the next consolidation and breakout immediately.
3. Optional VW RSI and MFI confirmation
EV Edge includes an inline volume weighted RSI and Money Flow Index, calculated independently of any other indicator. The volume weighted RSI multiplies each bar's price change by its relative volume before the RSI calculation, so high-volume bars carry more weight than low-volume bars. The MFI is calculated from typical price multiplied by volume.
The master toggle enables or disables the confirmation filter entirely. When the master is on, the sub-toggles beneath it determine which meters are used: VW RSI, MFI, or both together with AND logic. When the master is off, signals fire without any momentum requirement regardless of the sub-toggle states.
When the confirmation filter is enabled, a long signal requires the selected meter or meters to be above their respective midlines, and a short signal requires them to be below. The filter is disabled by default so that signal frequency with and without confirmation can be compared directly.
VW RSI and MFI will sometimes point in different directions. This is not a fault - they measure related but distinct things. VW RSI weights price change by relative volume and responds quickly to momentum shifts. MFI incorporates the full money flow through typical price and volume and tends to reflect sustained buying or selling pressure. When they agree, the confirmation is stronger. When they disagree, the dashboard shows exactly where each stands so the trader can weigh them independently.
An optional mini panel on the dashboard shows the current VW RSI and MFI values with their percentage meters, zone state, and a Confirms row showing which direction - or directions - they currently support, regardless of whether the filter itself is active. This makes it possible to observe what the filter would do before committing to it.
Divergence detection is built into the VW RSI engine. When a bullish divergence is detected - price making a lower low while VW RSI makes a higher low - a line is drawn on the chart connecting the two pivot points in the bull color. The same applies in reverse for bearish divergences. The pivot window used for detection is configurable through the Divergence Sensitivity setting: High uses a 3-bar window for more frequent signals, Medium uses 5 bars as the default, and Low uses 10 bars for major pivots only. Divergence lines are purely visual and have no effect on signals or the EV score.
An important distinction: the Confirms row and the EV score answer different questions. Confirms reflects what VW RSI and MFI are doing right now - whether the current momentum supports the trade direction. The EV score reflects what price actually did after the signal fired - whether the breakout followed through. These two readings can point in opposite directions and both be correct. A short trade can show Confirms: Short because momentum is currently bearish, while the EV score sits at 15 because price bounced sharply after entry and never moved in the intended direction. The Confirms row describes the current environment. The EV score describes the trade's history since entry.
4. Multi-timeframe trend bar
A separate small panel shows trend direction across six timeframes - 1 minute, 5 minutes, 15 minutes, 1 hour, 4 hours, and daily - based on whether the 9-period EMA is above or below the 21-period EMA on each timeframe. A bull count from 0 to 6 summarizes how many of those timeframes currently agree on an upward trend.
This panel is independent of the signal logic. It provides context for whether a breakout on the current chart is aligned with or against the broader trend structure, without enforcing that alignment as a requirement.
5. EMA visual confluence
Four EMAs - 9, 21, 50, and 200 - can each be toggled on independently, with their own color and line width settings. These are plotted purely for visual reference. They do not feed into the consolidation detection, the EV score, the confirmation filter, or any other calculation. They exist so that price action can be viewed against common moving average levels without affecting how the indicator behaves.
6. Trade log
When enabled, a table records the most recently closed trades - direction, entry EV score, exit EV score, exit reason, and number of bars held. The table holds a configurable number of recent trades, with the newest entry at the top and older entries pushed out once the limit is reached.
Because entry EV is fixed at 60 for every trade, the exit EV and exit reason are what differentiate one trade from another in the log. A trade that exits at EV High after a small number of bars represents a fast, clean continuation. A trade that exits at EV Low after a small number of bars represents a fast failure. A trade that times out without reaching either extreme represents a setup that drifted without committing strongly in either direction.
The trade log does not persist across chart reloads. It reflects the trades that occurred since the indicator was applied to the current chart session.
7. Dashboard
The main dashboard shows the current trade status - long active, short active, or no signal - the live EV score as both a number and a ten-segment meter, the current EV zone, and the number of bars tracked relative to the maximum. The EV score number, meter, and zone text all use the four-zone color system described in the colors section above. When the VW RSI and MFI mini panel is enabled, it appears as additional rows in the same table.
A small blinking indicator - alternating between a filled and hollow dot - appears next to the Status row whenever a trade is active, and disappears when no trade is active. The indicator updates on a bar-by-bar basis, including the live, currently forming bar, so on lower timeframes it provides a continuously refreshing visual cue that the EV engine is actively tracking a trade.
Dashboard position and text size are independently configurable, with tiny, small, and normal size options to suit different chart layouts.
8. Settings reference
8.1 Consolidation detection
- Consolidation lookback: bars used to measure the consolidation range. Default 12.
- Compression factor: how tight the range must be relative to the ATR-based average to qualify as consolidation. Default 0.65.
- ATR length: lookback for the Average True Range used throughout the indicator. Default 14.
- Min bars in consolidation: minimum consecutive compressed bars required. Default 4.
8.2 Breakout signal
- Breakout buffer: extra distance beyond the consolidation edge, as a multiple of ATR, required to confirm a breakout. Default 0.1.
- Require right-side-of-V alignment: breakout must continue in the direction of the pre-consolidation move. Default on.
- Impulse lookback: bars before the consolidation compared to determine the prior move direction. Default 8.
8.3 EV score engine
- Include volume component: blend volume behavior into the EV score. Default on.
- Price action weight and volume weight: relative weighting of the two components. Defaults 0.7 / 0.3.
- Volume MA length: lookback for the volume moving average used in the volume ratio. Default 20.
- EV improving threshold: score at or above this value is classified as Improving. Default 70.
- EV decaying threshold: score at or below this value is classified as Decaying. Default 30.
- Max bars to track: hard cap on how long a trade is tracked before timing out. Default 30.
- Early exit EV high: score at or above this value triggers an immediate EV High close. Default 90.
- Early exit EV low: score at or below this value triggers an immediate EV Low close. Default 5.
- Min bars before early exit: bars that must pass before an extreme score can close the trade. Default 3.
8.4 VW RSI / MFI confirmation filter
- Require confirmation for entries: master toggle for the entire filter. Default off.
- VW RSI length and volume smoothing: lookback periods for the volume weighted RSI calculation. Default 14 each.
- VW RSI confirmation midline: threshold for long versus short confirmation. Default 50.
- Use VW RSI for confirmation: sub-toggle. Default on.
- MFI length: lookback for the Money Flow Index. Default 14.
- MFI confirmation midline: threshold for long versus short confirmation. Default 50.
- Use MFI for confirmation: sub-toggle. Default on.
- Show VW RSI / MFI mini panel: adds informational rows to the dashboard regardless of filter state. Default on.
- VW RSI overbought / oversold levels: visual zone thresholds shown in the dashboard. Defaults 75 / 25.
- Show divergence lines: draws diagonal lines on the chart where VW RSI divergences are detected. Default on.
- Show bullish / bearish divergence: independent toggles per divergence direction. Default on.
- Divergence line width: stroke width for divergence lines. Default 1.
- Divergence sensitivity: pivot window for divergence detection. High = 3 bars, Medium = 5 bars (default), Low = 10 bars.
8.5 Multi-timeframe dashboard
- Show multi-timeframe trend bar: toggle. Default on.
- MTF panel location: corner placement on the chart. Default bottom left.
8.6 EMA visual confluence
- Show EMA 9, 21, 50, 200: independent toggles, all default on.
- Color and width: configurable per EMA.
8.7 Bull / bear colors
- Bull color and bear color: applied to entry label backgrounds, plotted signal markers, dashboard status, VW RSI/MFI confirmations, and the multi-timeframe trend bar.
- Measurement / brand color: applied to the EV score meter when no trade is active, the brand row in both dashboards, and the text inside entry and EV shift labels.
- Signal label transparency: background transparency for entry and EV shift labels. Default 50.
8.8 EV quality colors
- Trade zone box color: single monochrome color for the trade zone box. Default steel grey.
- Scale box intensity with EV extremity: when on, the box becomes more opaque as EV approaches 0 or 100, and more transparent near 50. Default on.
- EV improving / decaying / neutral text colors: used for the Exit EV value in the trade log. Separate from the four-zone dashboard colors.
8.9 Trade log
- Show trade log table: toggle. Default on.
- Number of trades to show: how many recent trades are displayed. Default 5.
- Trade log location: corner placement on the chart.
8.10 Visuals
- Show dashboard, dashboard location, and dashboard size.
- Show consolidation box.
- Show signal labels.
- Show trade zone box.
- Extreme EV shift threshold: minimum single-bar EV change, or a zone crossover, required to display a shift label. Default 15.
9. How to use
9.1 Reading the EV score
The EV score has one rule: higher is better, lower is worse - for both long and short trades. When a long signal fires and the score climbs, the long is working. When a short signal fires and the score drops, the short is not working - price is moving up against the position. The score is direction-independent. It measures how well the trade is developing relative to what was expected at the moment of the breakout, nothing more.
The score is most informative as a trajectory, not a single value. A score climbing steadily from 60 toward 70 and beyond suggests a clean continuation. A score that drops sharply within the first few bars after entry, particularly if it crosses below the decaying threshold, suggests the breakout lacked follow-through. The minimum bars before early exit setting exists so that this initial period can be observed rather than immediately closing the trade on the first adverse tick.
9.2 Reading the four-zone color system
The EV score number, the ten-segment meter, and the EV Zone text all use the same four-zone color logic. When a trade is active, the colors read as follows: green means the trade is progressing well, gold means the score is sitting in neutral territory without a strong signal in either direction, red means the trade is going poorly and the breakout likely lacked follow-through, and amber at either extreme means an automatic exit is approaching. No active trade is grey.
These colors are consistent across both long and short trades. A short showing green is performing correctly. A long showing red is not.
9.3 Reading the trade zone box
The trade zone box appears once a signal fires and grows with the trade's price range on every subsequent bar. Its intensity reflects how far the EV score currently sits from the neutral midpoint - faint near 50, increasingly opaque as the score approaches either 0 or 100. A box that has become noticeably more opaque indicates the EV score has moved decisively toward one of its extremes. The EV Zone text in the dashboard and the four-zone color together tell you which extreme and whether that is favorable or not.
9.4 Using the trade log to evaluate settings
Because every closed trade is recorded with its exit reason and duration, the trade log can be used to assess whether the current settings are producing the expected distribution of outcomes. A log dominated by EV Low exits at short durations may indicate that the breakout filter is too permissive, allowing weak setups through. A log with many Timeout entries may indicate that the early exit thresholds are too extreme to be reached under current market conditions, or that the EV score's sensitivity needs adjustment. Reviewing the log periodically - particularly when testing on a single instrument and timeframe over a consistent period - is the intended way to calibrate the EV score engine to a specific market.
9.5 Using the VW RSI / MFI mini panel before enabling the filter
Because the mini panel shows what the confirmation filter would do without requiring it to be active, it can be left on while running the indicator without the filter enabled. This allows direct observation of how often VW RSI and MFI would have confirmed or rejected the signals that fired, before committing to the filter and reducing signal frequency.
9.6 Using the multi-timeframe bar as context, not as a gate
The multi-timeframe trend bar does not block or filter signals. A breakout signal can fire even when the bull count is low or when the immediate timeframe disagrees with higher timeframes. The intended use is to provide situational awareness - a breakout that aligns with a high bull count carries different context than one that fires while higher timeframes are pointing the other way, even though both will generate the same signal and the same starting EV score.
9.7 Illustrative bull scenario
Educational example only. Not a trading recommendation.
Price consolidates in a tight range for several bars after an upward move. The range compresses below the ATR-based threshold and the minimum bar count is reached. Price closes above the consolidation high by more than the breakout buffer, and the move continues in the same direction as the prior upward impulse - the right side of the V. A long signal fires with an EV score of 60, shown with a bull-colored label. The dashboard switches to LONG ACTIVE with a blinking dot. Over the following bars, price continues higher without returning to the consolidation zone. The EV score climbs past 70, the dashboard color shifts to green, and the trade zone box becomes noticeably more opaque as the score moves away from neutral. The EV Zone text switches to Improving. Within several bars the score reaches 90, the amber warning zone, and the trade closes as an EV High exit, recorded in the trade log.
9.8 Illustrative bear scenario
Educational example only. Not a trading recommendation.
A consolidation forms after a downward move and breaks lower, aligned with the prior impulse. A short signal fires with an EV score of 60, shown with a bear-colored label. On the next bar, price reverses and closes back above the lower boundary of the consolidation it broke from. The retracement penalty is applied, scaled by how far price has moved back into the zone. The EV score drops sharply. The dashboard color shifts to red and the EV Zone text switches to Decaying. The Confirms row in the VW RSI panel may still show Short if momentum meters remain bearish - this is not a contradiction. Confirms reflects current momentum; the EV score reflects what price did since entry. After the minimum bar count has passed, the score drops below 10, entering the lower amber zone, and the trade closes as an EV Low exit, recorded in the trade log as a fast failure.
10. Tested instruments and timeframes
EV Edge has been tested across a range of futures and spot crypto markets, including MNQ, MES, MGC, MCL, MBT, M2K, and SIL futures, as well as BTCUSDT, SOLUSDT, and ETHUSDT on Binance, across the 1 minute, 5 minute, 15 minute, 1 hour, and 4 hour timeframes.
Results by timeframe:
- 1m and 5m: recommended primary timeframes. EV High and EV Low exits fire frequently and the score evolves quickly enough to be actionable for scalping.
- 15m: works well. Max bars setting of 15 to 20 recommended.
- 1H: functional, but overnight and weekend gaps on futures affect the score behavior. Max bars of 10 to 15 recommended. Best used for directional context rather than as the primary trading timeframe.
- 4H: not recommended. The bar count required for meaningful EV evolution exceeds practical limits and most trades time out before the score develops.
EV Edge is designed primarily as a 1m to 15m scalp and intraday tool, with 1H usable for higher-timeframe bias.
11. Tips
The default EV score formula has not been calibrated to any specific instrument or timeframe. The early exit thresholds, the retracement penalty, and the volume weighting are starting points. The trade log exists so that these can be evaluated against real outcomes on the instrument and timeframe actually being traded, rather than assumed to be correct.
Testing on a single instrument and a single timeframe for a sustained period produces a more useful trade log than switching between instruments or timeframes during the test. Mixing conditions makes it difficult to separate the effect of the EV score formula from the effect of changing market behavior.
The right-side-of-V filter and the VW RSI/MFI confirmation filter both attempt to address the same underlying concern - whether a breakout has genuine momentum behind it. Running both at maximum strictness simultaneously may reduce signal frequency more than either filter alone would suggest. Testing each independently before combining them clarifies which filter is contributing more to signal quality.
On futures markets, overnight and weekend gaps can cause single-bar EV score jumps that do not reflect genuine price movement during the session. On the 1H timeframe in particular, a gap open can spike or collapse the drift component in ways that would not occur on a continuous chart. This is expected behavior, not a fault. Keeping the max bars setting lower on higher timeframes reduces the window during which a gap can distort the score history.
The Confirms row and the EV score are not the same measure and should not be read as one. Confirms reflects whether VW RSI and MFI currently support the trade direction. The EV score reflects how price actually moved since the signal fired. They can disagree and both be correct. A trade showing Confirms: Short alongside EV 12 is not contradictory: it means momentum currently supports the short direction, but the price movement since entry has not followed through. Understanding the difference between these two readings is one of the most useful things you can take from the dashboard.
12. Disclaimer
This indicator is provided for educational and informational purposes only. Nothing in this document or in the indicator output constitutes financial advice or any form of recommendation. Trading financial instruments involves substantial risk of loss. Past performance is not indicative of future results. You may lose all of your invested capital.
Anonycryptous accepts no responsibility or liability for any losses incurred as a result of using this indicator.
Indicator

Multi-Divergence Strategy | GainzAlgoThe Multi-Divergence Strategy is a comprehensive, quantitative trading tool designed to identify momentum exhaustion through multi-oscillator divergence detection. By visualizing the relationship between price action and nine distinct momentum/volume metrics, this indicator provides a framework for identifying high-probability reversal setups.
Core Logic: How it Identifies Divergence
The indicator functions by monitoring pivot highs and lows across both price and nine independent oscillators (RSI, MFI, Stochastic, Z-Score, ADX, MACD, OBV, Price Action, and Swing Volume).
Logic: The script flags a Bullish Divergence when the price reaches a lower low, but the oscillator reaches a higher low. Conversely, it flags a Bearish Divergence when the price reaches a higher high, but the oscillator reaches a lower high.
Trigger: The script creates a dynamic detection system that triggers signals only when new pivot highs or lows are confirmed, ensuring signals are not repainting.
The Technical Overlay
The Technical Overlayis a visual dashboard that renders seven distinct indicator panes directly on your main chart.
Customization: The Window Width input allows you to adjust the lookback period for these panels, while the Future Offset allows you to shift the UI horizontally to avoid cluttering current price action.
Visuals: When divergence is detected, the overlay renders "neon" glowing markers at the exact pivot point where the divergence occurred, providing immediate visual feedback on which indicator is signaling the reversal.
Settings and Toggle Menus
The indicator is highly modular, allowing for granular control via the inputs menu.
General Settings:
Window Width (Bars): Defines the depth of the visual analysis panes.
Future Offset (Bars): Offsets the UI panels relative to the current bar.
Divergence Pivot Length: Adjusts sensitivity. Lower values (e.g., 2-5) detect micro-divergences, while higher values (up to 15) isolate major structural shifts.
Show Technical Overlay: A master toggle to turn the neon dashboard on or off.
Screener and Risk Management Settings:
SL/TP Multipliers: These adjust the Stop Loss (SL) and Take Profit (TP) distance based on the 14-period Average True Range (ATR).
Custom SL %: If enabled, this bypasses the ATR-based stop in favor of a fixed percentage-based stop loss.
Visuals: Show TP / SL Lines toggles the display of active trade plans on the chart, helping you visualize your risk parameters.
Risk Management and P&L Calculations
Every signal detected by the strategy is treated as a trade plan with a defined entry, stop, and target.
Stop Outs and Exits: The script performs a rolling calculation of every active trade. A trade is closed (marked as a loss) if price hits the SL level, or closed (marked as a win) if price hits the TP level.
ATR-Based P&L: The P&L is not based on arbitrary dollar amounts, but on ATR multipliers. This ensures your performance metrics are normalized against the current market volatility.
Understanding the Performance Table
The performance table provides a real-time summary of every divergence indicator's effectiveness.
Signals: The total number of trades initiated by that specific indicator.
Wins/Losses: The count of trades that reached the TP vs. the SL.
Win%: The percentage of closed trades that resulted in a win.
Avg Win/Loss: The average ATR distance captured in winning trades versus the average risk taken in losing trades.
Cumulative ATR Multi: This is the most critical metric. It represents the total P&L of the strategy expressed in ATR multiples.
A Note on Win Rate and Expectations: You may observe an average win rate of approximately 37%. Do not get discouraged by a low win rate. In quantitative trading, a "high" win rate is often irrelevant if the risk management is poor.
Instead of focusing on the strike rate, prioritize the Cumulative ATR Multi. A strategy with a 37% win rate can be highly profitable if your "Average Win" is significantly larger than your "Average Loss". Use the table to identify which specific indicators are yielding the highest cumulative ATR returns in the current market environment and lean into those signals.
How to Trade with the Strategy
Enable the Table: Keep Show Performance Table enabled to track the "Cumulative ATR Multi" for each indicator.
Monitor Signals: When a neon marker appears on your chart, verify the entry, stop-loss, and take-profit lines.
Analyze and Execute: Focus your trades on the indicators that show a positive or rising "Cumulative ATR Multi" in the performance table.
Risk Management: Always respect the stop-loss lines, as they are calculated to keep your risk consistent with current market volatility.
Disclaimer: This indicator is for analytical and educational purposes only. Past performance does not guarantee future results.
Indicator

Sentiment Divergence Tracker The "Sentiment Divergence Tracker" is a sophisticated quantitative analysis tool designed to identify statistical anomalies between two correlated financial assets. By monitoring the relative price movement of a primary asset against a correlated counterpart, this indicator highlights "Divergence Zones" that often precede significant market reversals or mean reversions.
Core Functionality:
Traditional technical analysis often ignores the relationship between inter-market assets. This indicator bridges that gap by normalizing percentage-based price fluctuations, allowing for a clean, comparative view of market sentiment.
Key Features:
Dynamic Divergence Calculation: Utilizes standard deviation and moving average models to calculate the "Fair Value" gap between two assets.
Automated Support/Resistance Mapping: Rather than manual drawing, the indicator plots dynamic support lines that adjust based on market volatility, helping traders identify institutional "value areas."
Oversold/Overbought Detection: Visualizes extreme deviations where the price has stretched too far from its correlated pair, signaling high-probability reversal setups.
Institutional Context: Useful for identifying liquidity pockets where "Smart Money" might be accumulating or distributing based on inter-market relationships.
How to Interpret:
Baseline (0.0): Represents the equilibrium point where both assets are moving in perfect correlation.
Divergence Line: The primary blue plot. When this line moves away from the baseline, it indicates a weakening correlation.
Support/Resistance Levels: These are not static lines but dynamic boundaries. A touch or breach of these levels typically indicates that the asset is statistically "oversold" or "overbought" relative to its pair.
Trade Execution: Look for "Mean Reversion" entries when the Divergence Line exhausts its momentum at the support/resistance boundaries and begins to curl back toward the baseline.
Recommended Settings:
Timeframe: Optimized for 15-minute to 4-hour charts for intraday and swing trading.
Correlated Pair Selection: Ensure the "Correlated Asset" input matches a highly correlated instrument (e.g., Gold/Silver, or major Currency/Index pairs).
Volatility Sensitivity: Adjust the lookback period in the settings to suit your specific asset's volatility profile.
Disclaimer:
This tool is intended for analytical purposes and does not constitute financial advice. Always integrate this indicator with your existing risk management strategy and technical confirmation (e.g., candlestick patterns, order blocks Indicator

MACD Divergence Suite [invincible3]MACD Divergence Suite
Overview
MACD Divergence Suite is an advanced MACD-based momentum and trend indicator designed to provide a clearer view of market direction, momentum strength, divergence, and multi-timeframe confirmation.
This indicator expands the traditional MACD by adding configurable moving average types, normalized MACD values, gradient cloud visualization, SMA-based candle coloring, divergence labels, signal arrows, and a compact multi-timeframe dashboard.
Configurable MACD Calculation
The indicator allows full customization of the MACD calculation. Users can choose the price source and select different moving average types for the fast line, slow line, and signal line.
Supported moving average types include:
• EMA
• SMA
• DEMA
• TEMA
• WMA
• VWMA
• HMA
• RMA
This makes the indicator flexible for different trading styles, assets, and timeframes.
Normalized MACD
The MACD values are normalized to a fixed scale, making momentum easier to compare across different markets and timeframes. This helps reduce the visual inconsistency that can happen when using raw MACD values on assets with very different price ranges.
Gradient MACD Cloud
A layered gradient cloud is plotted between the MACD line and the signal line. The cloud changes color based on bullish or bearish momentum and becomes visually stronger when the MACD spread increases.
This helps traders quickly identify momentum expansion, compression, and possible trend shifts.
Trend-Colored MACD Line
The main MACD line uses trend-sensitive coloring based on the selected bullish and bearish colors. Strong bullish movement appears with stronger bullish color, while strong bearish movement appears with stronger bearish color.
The signal line remains gray to keep the chart clean and easy to read.
Oscillator Bars
The oscillator bars show normalized MACD histogram strength. Bar colors use a gradient effect based on momentum strength, helping traders visually detect increasing or weakening momentum.
SMA Candle Coloring
The indicator includes SMA-based candle coloring on the main chart. Candles are colored bullish when price is above the selected SMA and bearish when price is below the selected SMA.
This provides quick trend confirmation directly on the price chart.
Divergence Detection
The indicator detects bullish and bearish divergence using the normalized MACD oscillator. Divergence lines and labels can appear on both the MACD pane and the price chart.
Bullish divergence highlights possible upside reversal areas, while bearish divergence highlights possible downside reversal areas.
Signal Arrows
MACD crossover signals are shown with arrows. The signals can be filtered using normalized MACD levels, helping reduce weak signals in neutral zones.
Arrow distance can also be adjusted so chart signals appear cleaner and do not overlap candles.
Multi-Timeframe Dashboard
A compact multi-timeframe dashboard summarizes market conditions across multiple timeframes.
The dashboard includes:
• Normalized MACD value
• MACD signal direction
• Histogram state
• Recent divergence status
• SMA-based trend condition
The trend row shows whether price is above or below the selected SMA, giving a simple Bull/Bear trend filter across timeframes.
Key Features
• Configurable MACD moving average types
• Adjustable fast, slow, and signal lengths
• Selectable price source
• Normalized MACD scale
• Gradient MACD cloud
• Trend-colored MACD line
• Gray signal line for cleaner visibility
• Strength-based oscillator bars
• SMA-based candle coloring
• Bullish and bearish divergence detection
• Divergence labels on MACD pane and price chart
• Multi-timeframe dashboard
• Optional normalized MACD signal filtering
• Adjustable signal arrow distance
• Custom bullish and bearish color presets
How to Use
Use the MACD line, signal line, and cloud to read momentum direction. A bullish cloud suggests positive momentum, while a bearish cloud suggests negative momentum.
Use the oscillator bars to confirm whether momentum is increasing or weakening.
Use divergence labels to identify potential reversal areas.
Use the SMA candle coloring and dashboard trend row as a trend filter. Bullish signals are generally stronger when price is above the SMA, while bearish signals are generally stronger when price is below the SMA.
Best Used For
This indicator is useful for:
• Trend-following analysis
• Momentum confirmation
• Multi-timeframe market structure
• Divergence-based reversal spotting
• Signal filtering
• Visual MACD analysis
Disclaimer
This indicator is intended for technical analysis and educational use only. It should not be used as financial advice. Always combine signals with proper risk management and additional market analysis.
Indicator

Orderflow Imbalance Pressure [JOAT]Orderflow Imbalance Pressure
Introduction
Orderflow Imbalance Pressure is an open-source indicator that estimates the imbalance between buying and selling pressure on each bar without access to real bid-ask data, derives a Z-score normalized delta oscillator from that estimate, tracks cumulative delta over the session, and detects structural divergences between price extremes and delta behavior at confirmed pivot points.
The core analytical insight is that when price reaches a new high while the cumulative buying pressure behind it is declining, the move is potentially unsupported — buyers are diminishing while the market is being pushed to new levels. Conversely, price making new lows while selling pressure contracts suggests exhaustion rather than conviction. These divergences are objectively measurable and provide leading context that price action alone does not.
Core Concepts
1. Delta Estimation from OHLC
True tick-level delta (bid volume minus ask volume) requires raw tick data. This indicator estimates it from bar data using the classic candle ratio method: buying pressure is proportional to how close the close is to the high, and selling pressure to how close it is to the low:
float buyVol = rng > 0.0 ? volume * (close - low) / rng : volume * 0.5
float sellVol = rng > 0.0 ? volume * (high - close) / rng : volume * 0.5
float delta = buyVol - sellVol
This is an approximation — not a substitute for real order flow data — but provides a directionally useful signal on instruments where tick data is unavailable.
2. Delta Z-Score Normalization
Raw delta varies in scale across instruments and volume conditions. The indicator normalizes delta by computing a rolling Z-score: the delta minus its period mean, divided by its period standard deviation. This produces a dimensionless oscillator centered at zero:
float deltaZ = deltaStd > 0.0 ? (delta - deltaMA) / deltaStd : 0.0
Extreme Z-score readings above +1.5 or below -1.5 indicate statistically significant delta imbalances relative to recent history.
3. Cumulative Delta
Delta values are accumulated across the session to track the net buying or selling bias since session open. The cumulative delta line is scaled and overlaid on the histogram for context. Session resets are configurable (None, Session, or Manual). The cumulative delta often reveals sustained institutional bias that individual bar delta obscures.
4. Imbalance Threshold Markers
When the delta ratio (delta divided by total volume) exceeds a configurable threshold (default 0.6 = 60% of volume in one direction), the bar is classified as an extreme imbalance. Triangle markers appear at these bars and the background is lightly tinted. Extreme imbalance bars often mark exhaustion points or momentum bursts.
5. Pivot-Confirmed Divergence Detection
Divergences are detected using confirmed structural pivots rather than rolling high/low lookbacks. A bullish divergence requires a confirmed pivot low that is lower than the prior confirmed pivot low, while the cumulative delta at that pivot is higher than at the prior one. This fires a signal only at genuine structural turning points — typically 5–10 signals per extended chart rather than hundreds:
if not na(pivotLow)
float dAtPivot = cumDelta
if pivotLow < lastPivLow and dAtPivot > lastPivLowDelta
bullDiv := true
Features
OHLC-based delta estimation: Buy and sell volume proxy from candle structure
Z-score normalized oscillator: Delta normalized by rolling mean and standard deviation
Gradient histogram: Bars colored by delta direction and magnitude intensity
Cumulative delta overlay: Net session delta as a scaled line on the oscillator
Session reset modes: None, Session boundary, or Manual reset options
Extreme imbalance markers: Triangle shapes at bars exceeding the delta ratio threshold
Pivot-confirmed divergences: Bull and bear divergences fired only at structural pivot points
Dashboard: Current delta, bias, buy volume, sell volume, cumulative delta, and Z-score
Six alert conditions: Bull/bear imbalance, bull/bear divergence, delta surge bull/bear
Input Parameters
Delta Engine:
Delta Smoothing EMA: Smoothing for delta oscillator line (default: 3)
Delta Normalization Length: Z-score rolling window (default: 20)
Imbalance Threshold: Delta ratio required for extreme marker (default: 0.6)
Cumulative Delta:
Show Cumulative Delta toggle
Reset Mode: None, Session, or Manual (default: Session)
Cumulative EMA Smooth: Smoothing for cumulative line (default: 5)
Signal Settings:
Delta Divergence Signal toggle
Divergence Lookback: Base period for pivot divergence detection (default: 20)
How to Use This Indicator
Step 1: Read the Delta Bias
Check the dashboard's Bias row. BUYING PRESSURE, SELLING PRESSURE, or BALANCED reflects the current delta ratio. Use this to understand whether the current bar's volume is dominated by buyers or sellers.
Step 2: Watch the Cumulative Delta Trend
A rising cumulative delta line during a price advance confirms the move is volume-supported. Declining cumulative delta during a price advance is a warning sign that buyers are weakening.
Step 3: Act on Divergence Signals
When a DIV label appears (bullish or bearish), a confirmed structural pivot has formed with a diverging cumulative delta. This is the primary signal output of the indicator — use it to anticipate potential turning points in price.
Step 4: Note Extreme Imbalance Bars
The triangle markers at extreme imbalance bars often coincide with momentum exhaustion (after a sustained run) or momentum ignition (at a breakout). Context determines which interpretation applies.
Indicator Limitations
OHLC delta estimation is a proxy; it does not capture true bid-ask imbalance and will systematically differ from actual order flow data
On instruments with wide spreads or gaps, the candle ratio delta estimation becomes less reliable
Divergences in strong trends often resolve with further trend continuation before the divergence is acted upon
Cumulative delta resets at session boundaries, so intraday and multi-day comparisons require switching reset modes
Originality Statement
The combination of OHLC delta estimation, Z-score normalization, cumulative session delta with configurable resets, and pivot-confirmed divergence detection — requiring structural pivot confirmation rather than rolling lookback extremes — in a single publication is the original contribution. The pivot-gated divergence detection specifically prevents the signal spam common in delta divergence tools that use rolling high/low comparisons.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Delta estimation from OHLC data is an approximation. All signals are based on historical data and do not guarantee future results. Trading involves substantial risk of loss.
-Made with passion by jackofalltrades
Indicator

Adaptive Ichimoku Equilibrium ChannelADAPTIVE ICHIMOKU EQUILIBRIUM CHANNEL
WHAT IT IS
A modern, single-engine extension of Ichimoku Kinko Hyo. Ichimoku's core insight is that its lines are not moving averages but EQUILIBRIUM midpoints — the centre of the recent high/low range — and that it projects that equilibrium forward as a cloud. This script keeps that DNA and rebuilds it as one adaptive object: the equilibrium adapts to trend efficiency, the channel width breathes with volatility, volume confirms or warns, momentum and breakouts flag turns, equal-high/low liquidity pools become structural targets, the cloud trend is read across four timeframes, and a past-only calibration attaches an honest hit-rate to the signals. A plain-language verdict makes it readable at a glance; an Advanced view exposes the full engine.
It is a single indicator, not a pack. Everything plots in one pane on the price chart.
WHY THESE COMPONENTS ARE COMBINED (mashup justification)
Each layer answers a different question a trend trader must answer at the same moment, and all of them share — and reinforce — the same equilibrium spine, which is why they are fused into one engine rather than left as separate studies that would each repaint the chart and never reference each other:
- EQUILIBRIUM SPINE. Fast and slow range-midpoints (the Ichimoku Tenkan/Kijun idea) blended by an efficiency ratio, so the spine tracks quickly in clean trends and slowly in chop. This is "fair value", and every other layer is measured relative to it.
- KUMO CLOUD + MULTI-TIMEFRAME TREND. The forward-displaced cloud shows trend at a glance. The same cloud trend is then sampled at 1x, 3x, 5x and 15x the chart timeframe and shown as four colour-coded cells, so higher-timeframe alignment is visible without switching charts. Alignment across the four is stronger context; conflict is a caution.
- ADAPTIVE WIDTH / PREMIUM-DISCOUNT. The dealing range around the spine expands when volatility expands and contracts when it compresses (width is ATR-based). This makes "discount" (lower half) and "premium" (upper half) mean the same thing across assets and regimes — a fixed-width channel cannot.
- VOLUME CONFIRMATION. Volume-weighted price versus its simple average shows whether volume agrees with the trend; a volume surge flags conviction. This closes the blind spot of a price-only channel. On instruments that report no volume, volume can be borrowed from a chosen proxy symbol.
- DISTANCE-FROM-EQUILIBRIUM DIVERGENCE. Ichimoku has no native oscillator, so momentum here is reconstructed as price's distance FROM the equilibrium spine: when price makes a higher high that is LESS extended from the spine than the previous high (or a lower low that is less extended), momentum is waning and a divergence is flagged at the extreme — exactly where reversals begin.
- VALIDATED BREAKOUTS. A break of a channel rail is only marked when it is confirmed by displacement beyond the rail, a dominant candle body, above-average volume, and a close that holds beyond the rail (anti-wick). This filters out the wick-pokes that fake breakouts on a naive channel.
- LIQUIDITY POOLS. Clusters of equal highs and equal lows are where stop orders rest. The script tracks the nearest unswept pool above and below price and lets trade targets snap to them, so objectives are structural rather than arbitrary.
- FUTURE BIAS + CALIBRATION. Trend, zone, slope, volume and breakouts are fused into a continuation-versus-reversion probability. Separately, the channel setups and the zone signals each carry a PAST-ONLY forward hit-rate, reported with a Wilson 95% confidence interval, measured on the current symbol.
In short: equilibrium without width gives no zones; width without volume or structure is blind; and neither tells you what is statistically likely next or whether the same setup has worked before on this symbol. Because each piece needs the others to be useful, they are one object.
HOW IT WORKS TOGETHER (reading the chart)
1. The trend-coloured band and its midline are the trend: green up, red down, gold/grey when there is no clear trend. The midline holds its colour until the trend actually reverses, so it does not flicker in chop.
2. Within the band, the lower (discount) half is where to look to engage with an uptrend; the upper (premium) half is extended. A downtrend mirrors this.
3. The short coloured level on the right is the invalidation: the current trend read fails on a close beyond it.
4. The dashboard's Ichimoku row shows the cloud trend on 1x/3x/5x/15x. The Higher-TF row tells you whether trades are permitted (setups are taken only in the higher timeframe's direction).
5. An orange "Div" marker warns of waning momentum at an extreme. A "Break" diamond marks a validated breakout. Cyan EQH/EQL lines are the nearest liquidity pools and act as targets.
6. The verdict box states the trend, where price sits, and the conviction in words. The Advanced view adds the calibrated win-rates, volume read, channel state and any optional inter-market context.
HOW TO USE IT
- Apply to any symbol and timeframe. Read the band colour for trend, the half for location, and the verdict box for the plain-language summary.
- Use the Ichimoku multi-timeframe row to gauge whether the higher timeframes agree before acting on a lower-timeframe signal.
- On-chart markers, from most to least prominent: LONG / SHORT label badges are full trade setups (entry, stop and target); Buy / Sell triangles mark price entering the discount/premium zone; the tiny orange "Div" warns of waning momentum at an extreme; the tiny "Break" diamond marks a validated breakout; cyan EQH/EQL lines are the nearest liquidity-pool targets.
- Treat all markers as context, and check their past-only win-rates in the Advanced view before relying on them.
- This is analysis context for your own decision, not a signal to act on blindly. It places no orders.
ORIGINALITY (versus standard Ichimoku)
Standard Ichimoku is a fixed-length, price-only, single-timeframe tool with no volume, no momentum oscillator, no breakout validation, no targets, and no measure of whether it has worked. This script makes the equilibrium adaptive, makes the width volatility-driven, reconstructs momentum as distance-from-equilibrium, validates breakouts against wicks, turns equal-high/low liquidity into targets, shows the cloud trend across four timeframes, adds volume confirmation, and attaches a past-only calibrated hit-rate to its signals. None of that is provided by classic Ichimoku.
UNIVERSAL DATA (works on any market)
The price source is selectable in Settings (default close; choose hl2, hlc3, or any series), every threshold is ATR-relative, and volume can be borrowed from a proxy symbol for instruments that report none — so the script runs on stocks, futures, FX, crypto and indices without re-tuning. Two optional refinements are off by default and never shown on the simple face: a spot symbol (futures-vs-spot basis) and a volatility index (e.g. VIX / India VIX), which feed conviction and channel width when supplied. The entire display — dashboard, bands, lines, labels and markers — adapts to your chart background automatically (Auto theme), or can be forced to Dark or Light, so it stays readable on any background.
SETTINGS OVERVIEW
Data source (price source, optional borrowed-volume symbol); Equilibrium (Tenkan/Kijun lengths, adaptive blend); Adaptive width; Regime (efficiency, ADX, slope); Inter-market refinement (optional); Multi-timeframe trade filter; Calibration horizon and follow-through; Trades; Breakout validation thresholds; Liquidity tolerance; and Visuals (theme, zones, signals, divergence, liquidity, multi-timeframe levels, dashboard position).
LIMITATIONS
The forward cloud is a PROJECTION of the current equilibrium, not a forecast. Calibration and hit-rates describe PAST behaviour only on the current symbol and are not predictive. Borrowed volume, futures-vs-spot basis and volatility-index refinement are approximations. Everything here is probabilistic context, not certainty.
DISCLAIMER
This is a study/indicator for chart analysis and education only. It is not a strategy, not a recommendation, and not financial advice. It places no orders and guarantees no outcome. Markets carry risk; do your own research and manage your own risk.
Indicator

Adaptive Divergence Core [JOAT]Adaptive Divergence Core is an open-source Pine Script v6 oscillator that combines HMA-smoothed RSI behavior, adaptive percentile bands, confirmed divergence lines, and regime fills. It is designed to make oscillator extremes relative to the current chart sample instead of relying only on fixed overbought and oversold levels.
The script is useful when standard oscillator thresholds are too rigid. A market can stay strong or weak for long periods. Adaptive Divergence Core recalculates upper and lower fields from recent oscillator distribution, then plots confirmed divergence only after both price and oscillator pivots are confirmed.
Core Concepts
1. HMA-RSI Core
The oscillator blends RSI on raw price, RSI on HMA-smoothed price, and an HMA-smoothed RSI value. It is centered around zero for easier bullish and bearish reading.
hmaSource = ta.hma(src, hmaLen)
rawRsi = ta.rsi(src, rsiLen)
rsiOnHma = ta.rsi(hmaSource, rsiLen)
smoothedRsi = ta.hma(rawRsi, smoothLen)
core = (rsiOnHma * 0.58 + smoothedRsi * 0.42) - 50.0
2. Adaptive Percentile Bands
The upper and lower bands are calculated from rolling percentiles of the oscillator. This lets the bands adapt to the recent distribution of momentum.
upperRaw = ta.percentile_nearest_rank(core, percentileLength, upperPercentile)
lowerRaw = ta.percentile_nearest_rank(core, percentileLength, lowerPercentile)
3. Extreme Fields
Additional 95th and 5th percentile fields help show deeper oscillator stretch zones beyond the primary adaptive bands.
4. Confirmed Divergence Detection
Bearish divergence requires price to form a higher confirmed pivot high while the oscillator forms a lower confirmed pivot high. Bullish divergence requires price to form a lower confirmed pivot low while the oscillator forms a higher confirmed pivot low.
5. Regime Fill
The script fills the oscillator against zero and against its guide line, making positive and negative regimes easy to read without large markers.
Features
HMA-RSI oscillator: Blends raw RSI, RSI on HMA, and smoothed RSI
Adaptive percentile bands: Upper and lower thresholds adjust to recent oscillator behavior
Extreme bands: Additional outer fields for deeper stretch readings
Confirmed divergence lines: Divergences plot only after price and oscillator pivots confirm
Divergence labels: Small S Div and B Div labels are placed near confirmed divergence lines
Divergence line cap: Old lines are deleted to respect object limits
Optional candle tint: Can color chart candles from the oscillator pane setting
Dashboard: Shows core value, bands, divergence counts, and current field
Alerts: Divergence, band entry, and band release conditions
Input Parameters
Core:
Source: Price source
RSI Length: Base RSI period
HMA Price Length: HMA source smoothing
HMA RSI Smooth: Smoothing for the raw RSI component
Adaptive Bands:
Percentile Length: Lookback used for adaptive thresholds
Upper Percentile: Upper adaptive threshold percentile
Lower Percentile: Lower adaptive threshold percentile
Divergence:
Divergence Left Bars / Right Bars: Pivot confirmation settings
Maximum Divergence Lines: Object cap for plotted divergence lines
Divergence Labels: Shows or hides compact divergence labels
Visuals:
Tint Candles: Optional candle tint from the oscillator state
Show Dashboard: Shows or hides the compact top-right pane dashboard
Palette: Selects the local JOAT color preset
How to Use This Indicator
Step 1: Read the Core Relative to Zero
Values above zero show positive oscillator regime. Values below zero show negative oscillator regime.
Step 2: Use Adaptive Bands
When core enters the upper or lower adaptive band, momentum is stretched relative to its recent sample.
Step 3: Evaluate Divergence After Confirmation
Divergence lines are delayed by pivot confirmation. This is intentional and avoids projecting unconfirmed pivots into the past.
Indicator Limitations
Divergences confirm late because pivots need right-side bars
Adaptive bands depend on the selected lookback and can shift over time
Divergence is context, not a complete trade plan
During strong trends, oscillator stretch can persist for many bars
Originality Statement
Adaptive Divergence Core is original in its HMA-RSI blend, rolling percentile threshold system, confirmed pivot divergence logic, and compact dashboard. It uses public Pine v6 functions to build a distinct oscillator workflow.
Disclaimer
This script is provided for educational and informational use only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Oscillator divergences can fail or remain early for extended periods. Always use independent analysis and proper risk management.
-Made with passion by jackofalltrades
Indicator

RSI Divergence: Out-of-Sample Optimizer [LuxAlgo]The RSI Divergence: Out-of-Sample Optimizer indicator is a comprehensive backtesting and optimization tool designed to identify the most effective RSI period for trading price-RSI divergences within a specified historical window and validate those results through out-of-sample and forward testing.
🔶 USAGE
The script is divided into three distinct chronological phases to simulate a professional quantitative workflow:
🔹 In-Sample (IS) Optimization
During this period (highlighted by the first background gradient), the script simulates dozens of RSI periods simultaneously. It calculates divergence signals and trade outcomes for every period within the user-defined range (e.g., RSI 2 to 50). The "best" period is selected based on your chosen Optimization Metric, such as Net Profit or Profit Factor.
🔹 Out-of-Sample (OOS) Validation
Once the best RSI period is identified in the IS phase, the script "locks" that parameter and applies it to the next segment of data (the OOS period). This tests whether the strategy’s performance was due to genuine market alpha or simply "curve-fitting" to historical noise.
🔹 Forward Testing
The Forward period represents the most recent data leading up to the current bar. The script continues using the parameter validated during the OOS phase to show how the strategy is performing in the current market environment.
🔶 DETAILS
🔹 Divergence Detection
The script identifies regular bullish and bearish divergences. A bullish divergence occurs when price makes a lower low while the RSI makes a higher low. A bearish divergence occurs when price makes a higher high while the RSI makes a lower high. The script uses pivot lookback settings to confirm these peaks and troughs.
🔹 Trade Execution Logic
Trades are entered on the bar following a confirmed divergence. Stop loss and take profit levels are calculated using an ATR (Average True Range) multiplier to account for market volatility. Users can also enable "Exit on Opposite Signal" to close trades if a contrary divergence appears before hitting a price target.
🔹 Sensitivity Analysis (Heatmap)
The dashboard includes a "Sensitivity Table" that acts as a heatmap. It displays every RSI period tested during the In-Sample phase. Darker green cells indicate superior performance, while darker red cells indicate poorer performance based on the selected optimization metric. This allows you to see if your "best" setting is an outlier or part of a robust cluster of profitable periods.
🔶 SETTINGS
🔹 Optimization & Backtest Ranges
In-Sample Start/End: Defines the historical window used to find the best performing RSI period.
Out-of-Sample Start/End: Defines the validation window where the best IS period is tested on unseen data.
Min/Max RSI Period: The range of RSI lengths the script will simulate (e.g., 2 to 50).
Optimization Metric: The primary KPI used to rank RSI periods (e.g., Sharpe Ratio, Win Rate, Net Profit).
🔹 Divergence Settings
Pivot Left/Right Bars: The number of bars required on either side of a point to confirm a local high or low in the RSI.
Max Divergence Bars: The maximum distance allowed between two pivots to qualify as a divergence.
🔹 Trade Rules
Stop Loss/Take Profit ATR Multiplier: Controls the distance of exit levels based on recent volatility.
Exit on Opposite Signal: When enabled, a long trade will close immediately if a bearish divergence is detected.
🔹 Dashboard
Extra Dashboard Metric 1/2: Allows you to add two additional performance statistics to the dashboard (e.g., Z-Score or Average Trade) alongside the default metrics.
Dashboard Position/Size: Adjusts the UI elements to fit your screen resolution and preference.
Indicator

Market Momentum Energy [ZurvanEG]⯁ Market Momentum Energy
◇ Overview
Market Momentum Energy is a directional energy oscillator designed to evaluate whether current market movement has enough strength, participation, and directional conviction to matter. Instead of measuring price change alone, it converts movement into a normalized energy reading that reflects direction, intensity, volatility context, participation, and movement quality.
It helps separate clean directional pressure from noise, low-volume drift, volatility expansion, compression, or late-stage exhaustion. Its purpose is to show whether movement has meaningful energy behind it, whether that energy is expanding or fading, and whether conditions are closer to ignition, weak movement, saturation, or possible reversal pressure.
◈ Core Framework
At its core, the indicator uses a motion-energy model that measures directional movement through price displacement or regression-based slope, then normalizes it against recent volatility for better comparison across regimes, instruments, and timeframes.
The motion reading is shaped through a power curve, while an optional effort layer can modulate it using volume or true range. After that, self-normalization keeps energy, thresholds, dead zones, saturation levels, and signal logic more stable across changing volatility conditions.
The framework also includes quality filtering, final energy smoothing, signal logic, energy bands, divergence detection, optional energy MA, adaptive visuals, candle coloring, signal-volume markers, alerts, and a compact info table.
◇ Signals
The signal system highlights energy ignition events. Signals are generated when energy crosses a defined threshold, with controls for quality, saturation, HMA-based short-term direction confirmation, re-arm behavior, and optional alternation.
◇ Signal Volume Markers
The indicator can draw transparent volume-based circles directly on signal candles. Circle size is based on cumulative volume over a user-defined lookback period, making it easier to identify signals that appear after unusually high participation. This feature is most meaningful on markets with reliable volume data.
◇ Energy Bands
The energy bands provide statistical context for the current energy reading. They help identify stretched momentum, possible exhaustion zones, or unusually strong directional expansion. To keep the chart clean, bands can appear only when energy gets close to them and remain visible for a few bars after activation.
◇ Dead Zone & Saturation
The dead zone marks areas where energy is too weak to be treated as meaningful. The saturation level marks areas where energy is already strong or potentially overextended. Together, they organize the oscillator into practical states: weak, active, strong, and overextended.
◇ Divergence
The divergence module detects confirmed regular divergence between price and energy. It can help identify cases where price makes new highs or lows while energy fails to confirm. Pivot confirmation and filtering conditions are included to reduce weak or irrelevant divergence marks.
◇ Visual System
The visual layer makes energy state easy to read at a glance. Energy is shown as a directional histogram with optional line view, optional energy MA, adaptive intensity, contraction fading, dead-zone shading, energy bands, candle coloring, and signal-volume circles on the price chart.
The coloring system helps distinguish expanding energy, contracting energy, positive and negative movement, weak zones, saturated conditions, and high-participation signal areas.
◇ Alerts
Configurable alerts are included for bullish signals, bearish signals, bullish divergence, and bearish divergence. They support monitoring and workflow automation, but should still be evaluated with broader market context and risk management.
◇ Info Table
The compact info table summarizes current energy, quality, and market state. It acts as a quick reference panel for identifying dead zone, active direction, or strong energy conditions without inspecting every plot manually.
◇ Use Case
Market Momentum Energy is intended for traders who want a clearer way to evaluate directional movement strength. It can help identify momentum ignition, monitor whether energy is expanding or fading, avoid low-energy noise, detect overextended conditions, and add context to possible reversal or continuation setups.
It may be useful for trend-following traders, momentum traders, discretionary price-action traders, and system builders who want a structured energy layer for filtering market conditions.
It helps answer questions such as:
⬦ Is the market moving with enough energy?
⬦ Is the move clean or choppy?
⬦ Is momentum expanding or fading?
⬦ Is energy holding above or below its moving average?
⬦ Did the signal appear after unusually high cumulative volume?
⬦ Is the signal early enough, or already near saturation?
⬦ Is price making a new extreme while energy fails to confirm?
⬦ Is the market in a low-energy dead zone?
◈ Conclusion
Market Momentum Energy is built for traders who want more than a basic momentum oscillator. By combining normalized motion, participation effort, quality filtering, energy bands, divergence detection, final smoothing, signal-volume visualization, adaptive visuals, alerts, and structured signal logic, it provides a broader view of directional market energy.
Rather than simply showing whether price is rising or falling, the indicator focuses on whether movement has enough strength, participation, and directional conviction to matter.
In short, Market Momentum Energy is a practical tool for evaluating the strength, quality, and state of market movement before acting on a trade idea.
Indicator

Indicator

Adaptive Stochastic Calibrated, Regime-Aware & Embedded-Trend# STOCH ARC — PulseWire Publication Description
> Copy the section between the lines into PulseWire's "Description" box when you
> publish. It is written to satisfy the house-rules that caused the previous
> rejection: it states **why** the components are combined and **how they work
> together**, explains **what it does / how / how to use / why it is original**,
> and ends with the required disclaimer. A publishing checklist (clean chart +
> visible symbol/timeframe/name) is at the very bottom — that part is for YOU, do
> not paste it.
---
## Adaptive Stochastic — Calibrated, Regime-Aware & Embedded-Trend (STOCH ARC)
### What it is
A Stochastic oscillator rebuilt so that "overbought/oversold" means something for
the instrument you are actually trading, and so that it stops fading trends. A
classic Stochastic has two well-known failures: the 80/20 levels are arbitrary for
any given symbol, and in a real trend the oscillator **embeds** (pins at an
extreme) and keeps going — so mechanically fading every extreme walks straight
into the move. STOCH ARC addresses both, then wraps a regime filter, a
trend-trail, multi-timeframe agreement and a transparent conviction score around
the result so one panel answers a single question: **fade this extreme, ride the
trend, or stand aside.**
It runs on **any symbol, asset class, timeframe and market** — equities, indices,
futures, FX, crypto, commodities. The raw data source and every external feed are
user-selectable (details under *Settings*), and nothing is hard-coded to a
particular market.
### Why these components are combined (mashup rationale)
This is not a pile of indicators stacked for show. A raw Stochastic only tells you
"price sits high or low inside its recent range" — which is ambiguous between a
range (fade it) and a trend (it embeds and continues). Each layer removes one
specific weakness of the layer before it and feeds the next:
1. **Calibrated OB/OS** — instead of fixed 80/20, the overbought/oversold lines are
rolling percentiles of the oscillator's *own* recent distribution. "Extreme" now
means statistically rare **for this symbol on this timeframe**, which is what
makes the levels portable across markets.
2. **Embedded-trend detector** — counts how long the oscillator stays beyond a
calibrated band. A pinned oscillator is the signature of a trend, not a
reversal, so when it is embedded the fade signals are suppressed. This is the
piece that stops the classic "fade into a trend" mistake.
3. **Low-lag digital smoothing + optional Inverse Fisher Transform** — de-noise the
%K/%D so the calibration and the crosses react to real turns rather than tick
noise. (The Inverse Fisher option is off by default because it deliberately
saturates the oscillator, which flattens the calibrated percentiles.)
4. **Regime engine** — an efficiency-ratio / trend-strength / volatility-cluster
classifier labels the market Trend / Range / Volatile and decides *which* of the
two playbooks is live: fade extremes in a range, ride pullbacks in a trend.
5. **Adaptive Trend Trail** — an adaptive moving average wrapped in a
volatility-scaled trailing band, computed **on the oscillator**. It supplies the
oscillator's own trend direction and the continuation (ride) trigger, and its
band width auto-scales with oscillator volatility so it behaves consistently
across assets.
6. **Multi-timeframe agreement + conviction score with hard vetoes** — higher
timeframes must not contradict the signal, and a weighted score (stretch,
embedment, trend-trail alignment, MTF, optional feeds) is gated by hard vetoes
(e.g. a volatility-index spike or an opposing higher timeframe). The output is a
single verdict instead of a wall of separate readings.
Each block consumes the output of the previous one; remove any single layer and a
specific, nameable failure of the plain Stochastic comes back. That is the
justification for combining them.
### What it plots
- **Lower pane:** the smoothed %K / %D, the calibrated overbought/oversold bands
(shaded), the adaptive trend-trail line, a midline and faint 80/20 references,
embedded-zone shading, and signal/divergence markers on the oscillator.
- **On the price chart:** "context bands" — the oscillator's range projected back
onto price (rolling high/low are %K 100/0, and the calibrated OB/OS levels mapped
to price via `low + level% × range`), so you can see at a glance how stretched
price is. Fade/continuation markers, divergence lines, and a compact dashboard
with the live numbers (%K/%D, calibrated zone, stretch, trend-trail, embedded
state, empirical reversal stats, MTF bias, dominant cycle, suggested size and any
active veto) round it out.
### How it is original
- The overbought/oversold thresholds are **self-calibrating percentiles of the
symbol's own oscillator distribution**, not fixed 80/20.
- It **explicitly detects embedment** and flips from fading to riding, instead of
fading every extreme.
- It carries an **empirical reversal-probability tracker** that reports, from this
symbol's own history, how often a calibrated extreme actually reversed — so the
zones are accountable rather than assumed.
- The whole thing resolves to **one regime-aware verdict with hard vetoes**, rather
than leaving you to reconcile several separate sub-indicators by eye.
### How to use it
1. Add it to any chart and timeframe. Read the **VERDICT / MODE** rows on the
dashboard first.
2. In a **Range** regime, the engine looks to **fade** calibrated extremes
(oscillator beyond the OB/OS band while not embedded), confirmed by a %K/%D cross
and/or divergence.
3. In a **Trend** regime, it looks to **ride** — a trend-trail cross or a shallow
pullback in the trend direction; fades are suppressed while the oscillator is
embedded.
4. Treat the conviction score and any active **VETO** as a filter: low conviction or
an active veto means stand aside. The suggested size is an ATR-based reference for
journaling, not an order.
5. Use the alerts (fade/ride, %K/%D cross, trend-trail cross, divergence) to be
notified instead of watching.
### Settings (use on any asset / market)
- **Raw data source** — `close`, `hl2`, `hlc3`, `ohlc4`, or point it at **another
indicator's plot**. This is what makes the script work on any instrument or as a
smoother/filter on top of your own series.
- **Stochastic source** — Price (classic Stochastic) or RSI (StochRSI).
- **Smoother** — Low-lag / 2-pole / SMA, with an optional roofing pre-filter and an
optional Inverse Fisher Transform.
- **Calibration** — overbought/oversold percentiles and the lookback used to learn
the symbol's distribution.
- **Regime / trend-trail / conviction weights** — all exposed if you want to tune.
- **Optional feeds (blank = off):** a *volatility-index symbol* (for a spike veto)
and a *cross-asset symbol* (for confluence). Both are blank by default so the
script is fully self-contained on any market; fill them only if you want them.
### Notes
- It is a **study / indicator**, not a strategy, and it places no orders.
- Signals are evaluated on bar close by default to avoid intrabar repainting of the
alerts; higher-timeframe reads use confirmed values.
---
### Disclaimer
This script is provided for educational and informational purposes only. It is a
technical-analysis study, not financial, investment, or trading advice, and not a
recommendation or solicitation to buy or sell any instrument. No indicator can
predict markets; past behaviour and any historical statistics shown do not
guarantee future results. Trading involves substantial risk of loss. You are
solely responsible for your own decisions — do your own research and consider
consulting a licensed financial professional before trading. The author accepts no
liability for any loss arising from use of this script.
Indicator
