Williams %R Ribbon
Williams %R Ribbon
Most traders know Williams %R as a classic overbought/oversold oscillator. Unfortunately, many stop there.
The Williams %R Ribbon reimagines this well-known indicator into a modern visualization designed to make momentum, trend transitions, and market extension easier to read at a glance. Instead of focusing solely on fixed overbought and oversold levels, this indicator emphasizes the relationship between Williams %R and its signal line, transforming that relationship into an intuitive gradient ribbon that helps reveal changes in market structure before they become obvious.
Features
Momentum Ribbon
The traditional Williams %R line is transformed into a dynamic ribbon that expands, contracts, and changes color based on the relationship between Williams %R and its signal line.
Bullish momentum is displayed with a green ribbon.
Bearish momentum is displayed with a red ribbon.
Neutral conditions automatically fade to gray when momentum becomes indecisive.
The ribbon allows traders to recognize momentum shifts without constantly watching for line crossovers.
Multi-Timeframe Analysis
Analyze higher timeframe Williams %R values directly on lower timeframe charts.
Choose from:
Chart Timeframe
2× Chart Timeframe
4× Chart Timeframe
Manual Timeframe Selection
This makes it possible to monitor higher-timeframe momentum while executing trades on lower timeframes without adding multiple indicators to the chart.
Optional Display Smoothing
The ribbon includes display-only smoothing designed to reduce visual stair-stepping that naturally occurs when displaying higher timeframe calculations on lower timeframe charts.
Importantly:
Indicator calculations remain unchanged.
Signal generation remains unchanged.
Alerts continue using the original data.
Only the visual appearance of the ribbon is smoothed.
Extension Grade
Instead of simply identifying whether Williams %R is overbought or oversold, the indicator continuously classifies the current level into extension categories such as:
Moderately Extended
Extended
Very Extended
Extremely Extended
This provides additional context regarding how far price has stretched relative to its recent trading range.
Flexible Display Modes
Choose the visualization that best fits your trading style.
Available display modes include:
Ribbon
Signal Line Only
Solid Signal Line Only
Ribbon + Signal Line
Whether you prefer a clean minimalist chart or a full ribbon visualization, the indicator adapts to your workflow.
Dynamic Coloring
The ribbon automatically adjusts its colors based on current market conditions.
Strong bullish momentum receives brighter bullish colors.
Strong bearish momentum receives brighter bearish colors.
Neutral conditions fade naturally, helping reduce visual noise during consolidation.
Built-In Alerts
Alerts are included for:
Bullish ribbon crosses
Bearish ribbon crosses
Oversold exits
Overbought exits
All Extension Grade thresholds
Because alerts use the original unsmoothed Williams %R values, visual smoothing never delays signal generation.
Designed for Clarity
Many oscillators overwhelm traders with unnecessary visual clutter.
The goal of this indicator is the opposite.
Every design decision was made with one objective:
Help traders understand what the oscillator is communicating as quickly as possible.
The gradient ribbon allows momentum, trend direction, and market extension to be interpreted almost instantly while maintaining the familiar foundation of the classic Williams %R.
Best Used For
Trend confirmation
Multi-timeframe analysis
Momentum analysis
Mean reversion strategies
Swing trading
Identifying overextended markets
Building rule-based trading systems
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial, investment, legal, or tax advice and should not be considered a recommendation to buy or sell any financial instrument.
No indicator can predict future market movements or guarantee profitable results. Market conditions change continuously, and all trading involves risk, including the potential loss of all invested capital.
Past performance does not guarantee future results. Always perform your own analysis, practice sound risk management, and consult a qualified financial professional if you require investment advice. Indicator

Indicator

Price Structure RSIOverview
Price Structure RSI is a market-structure oscillator that converts confirmed structural breaks into a cumulative directional series and then applies the Relative Strength Index calculation to that series.
Unlike a traditional RSI, which is calculated directly from price changes, this indicator measures how previously identified pivot highs and pivot lows are being broken.
The oscillator includes:
- market-structure-based RSI
- configurable RSI length
- configurable overbought and oversold levels
- Close or High/Low structure-break confirmation
- optional EMA, SMA, or WMA smoothing
- confirmed bullish and bearish signals
- dark and light colour presets
- gradient oscillator visualization
- simplified bullish and bearish historical W/L panels
- configurable target and stop distances
- configurable panel positions
- bullish and bearish alerts
The indicator is intended to help users examine whether recent market-structure breaks are producing stronger bullish or bearish pressure.
It does not predict future price movement and does not provide automatic instructions to enter or exit a trade.
Open-source reuse and credits
Price Structure RSI is a modified and expanded derivative of the open-source indicator "Market Structure RSI" by ClayeWeight.
The original pivot detection, stored structure levels, broken-structure accumulation, cumulative structure total, RSI transformation, moving-average selection, threshold-crossing signals, and alert framework were adapted from ClayeWeight's work.
This version adds:
- Pine Script v6 compatibility
- dark and light colour presets
- revised oscillator colours and gradient fills
- confirmed-bar signal processing
- configurable historical target and stop measurements
- next-bar outcome evaluation
- conservative same-bar target and stop handling
- separate bullish and bearish W/L panels
- configurable panel positioning and offsets
- additional input validation
- revised alert messages
The original source was published under the Mozilla Public License 2.0.
This modified version is also published open-source under the Mozilla Public License 2.0.
Core methodology
The indicator first identifies simple confirmed pivot highs and pivot lows.
A pivot high is identified when:
- the centre candle has a higher high than the candle before it
- the centre candle has a higher high than the candle after it
A pivot low is identified when:
- the centre candle has a lower low than the candle before it
- the centre candle has a lower low than the candle after it
Because the script evaluates historical candles, the pivot is recognized only after the necessary later candle has closed.
Confirmed pivot-high prices are stored in an array.
Confirmed pivot-low prices are stored in a separate array.
Structure breaks
The indicator checks whether stored pivot levels have been broken.
Users can select one of two Structure Break Type settings:
- Close
- High/Low
When Close is selected:
- a stored pivot high is considered broken when the previous candle closes above it
- a stored pivot low is considered broken when the previous candle closes below it
When High/Low is selected:
- a stored pivot high is considered broken when the previous candle high moves above it
- a stored pivot low is considered broken when the previous candle low moves below it
When one or more stored pivot highs are broken, positive values are added to the cumulative structure total.
When one or more stored pivot lows are broken, negative values are added to the cumulative structure total.
Broken levels are removed from their respective arrays so that the same structure level is not counted repeatedly.
Cumulative structure total
Each broken pivot high contributes:
- +1
Each broken pivot low contributes:
- -1
If several stored structure levels are broken together, several values can be added during the same calculation.
The script then calculates the cumulative sum of these positive and negative structure changes.
A rising structure total indicates that more stored pivot highs are being broken.
A falling structure total indicates that more stored pivot lows are being broken.
Structure RSI
The Relative Strength Index calculation is applied to the cumulative structure total rather than directly to price.
The default RSI Length is:
- 20
The resulting oscillator is called the Structure RSI.
Higher Structure RSI values indicate that bullish structure breaks have recently had greater influence on the cumulative series.
Lower Structure RSI values indicate that bearish structure breaks have recently had greater influence.
The Structure RSI should not be interpreted as a standard price RSI because its input is the cumulative structure-break series rather than normal closing-price changes.
Overbought and oversold levels
The default levels are:
- Overbought Level: 80
- Oversold Level: 20
The Oversold Level must remain below the Overbought Level.
The script displays an error when the oversold setting is equal to or above the overbought setting.
The levels are configurable and should be treated as analytical thresholds rather than universally optimal settings.
Bullish signal
A bullish signal occurs when the Structure RSI crosses upward through the selected Oversold Level.
The signal is confirmed only after the chart candle closes.
The bullish marker appears at the bottom of the oscillator pane.
A bullish signal indicates that the structure-based oscillator has recovered above its lower threshold.
It does not guarantee that price will continue higher.
Bearish signal
A bearish signal occurs when the Structure RSI crosses downward through the selected Overbought Level.
The signal is confirmed only after the chart candle closes.
The bearish marker appears at the top of the oscillator pane.
A bearish signal indicates that the structure-based oscillator has moved back below its upper threshold.
It does not guarantee that price will continue lower.
Moving average
An optional moving average can be applied to the Structure RSI.
Available moving-average types are:
- EMA
- SMA
- WMA
The default settings are:
- Moving Average Type: EMA
- Moving Average Length: 8
The moving average can be used to observe the smoother direction of the Structure RSI.
The moving average does not directly create the bullish or bearish threshold signals.
Hiding the moving average does not change the Structure RSI calculation.
Oscillator colours
The Structure RSI line changes colour according to its current position.
- Above the Overbought Level: bearish colour
- Below the Oversold Level: bullish colour
- Between the two levels: neutral grey
The oscillator also includes:
- a dashed overbought line
- a dashed oversold line
- a dotted 50 midline
- a neutral background fill between the main levels
- bullish and bearish gradient fills
- optional dark and light colour presets
The colour settings change presentation only.
They do not alter the structure calculation or signal logic.
Confirmed signals
Bullish and bearish signals are accepted only on confirmed chart bars.
The script does not finalize a signal solely because the Structure RSI temporarily crosses a threshold while the active candle is still open.
Values may still move while the current chart candle develops.
The final marker and alert are generated only after the candle closes with the crossing condition confirmed.
Historical W/L measurements
The indicator includes simplified historical bullish and bearish outcome measurements.
These measurements are not a complete PulseWire strategy backtest.
When no measurement is currently active, a confirmed signal can begin a new historical measurement.
For a bullish signal:
- the signal candle close becomes the recorded entry price
- the target is placed above the recorded entry
- the stop is placed below the recorded entry
For a bearish signal:
- the signal candle close becomes the recorded entry price
- the target is placed below the recorded entry
- the stop is placed above the recorded entry
Only one unresolved historical measurement is tracked at a time.
Target distance
Target Distance (%) controls the percentage distance between the recorded signal close and the historical target.
The default value is:
- 1.0%
For a bullish measurement:
- Target = Entry Price × (1 + Target Percentage)
For a bearish measurement:
- Target = Entry Price × (1 - Target Percentage)
The minimum allowed target distance is 0.1%.
Stop distance
Stop Distance (%) controls the percentage distance between the recorded signal close and the historical stop.
The default value is:
- 1.0%
For a bullish measurement:
- Stop = Entry Price × (1 - Stop Percentage)
For a bearish measurement:
- Stop = Entry Price × (1 + Stop Percentage)
The minimum allowed stop distance is 0.1%.
Next-bar evaluation
Target and stop evaluation begins on the bar after the signal.
The signal candle itself is not used to determine the result.
This prevents price movement that occurred earlier during the signal candle from being counted after the entry has been recorded at that candle's close.
Wins and losses
The tables use the following labels:
- W = Win
- L = Loss
A win means that the configured target was reached before the configured stop.
A loss means that the configured stop was reached before the configured target.
The displayed percentage is:
- Wins divided by completed Wins and Losses
Bullish and bearish measurements are counted separately.
Same-bar target and stop handling
A chart candle can sometimes touch both the target and stop.
Standard OHLC chart data does not reveal which level was reached first inside that candle.
When both levels are touched during the same bar, the script records a loss.
This conservative rule avoids automatically assuming the more favourable outcome.
The script does not reconstruct lower-timeframe intrabar movement.
One active measurement at a time
Only one unresolved historical measurement can be active.
When a measurement is already active:
- later bullish or bearish signals can still appear
- later signals can still trigger alerts
- later signals do not start another W/L measurement
- the active measurement remains open until its target or stop is reached
An opposite signal does not automatically close the existing measurement.
This means that not every displayed signal is included in the W/L panels.
Bull panel
The Bull panel displays results from completed bullish measurements.
The panel contains:
- Bull
- W: number of bullish targets reached first
- L: number of bullish stops reached first
- percentage of completed bullish measurements recorded as wins
The Bull panel position can be selected from the available chart locations.
Bear panel
The Bear panel displays results from completed bearish measurements.
The panel contains:
- Bear
- W: number of bearish targets reached first
- L: number of bearish stops reached first
- percentage of completed bearish measurements recorded as wins
The Bear panel position can be selected independently from the Bull panel.
Panel positions and offsets
The Bull and Bear panels can be placed at:
- top left
- top centre
- top right
- middle left
- middle centre
- middle right
- bottom left
- bottom centre
- bottom right
Row and column offsets can be used to move each panel within the available position grid.
Negative row values move the selected panel upward.
Positive row values move it downward.
Negative column values move it to the left.
Positive column values move it to the right.
The final position is restricted to the available PulseWire table locations.
The panels can overlap when both are assigned to the same effective position.
Meaning of the displayed percentage
The percentage represents the share of completed measurements where the configured target was reached before the configured stop.
It is not:
- a guaranteed win rate
- proof of future profitability
- a complete strategy result
- a recommendation to enter a trade
- a forecast of future performance
The historical measurement does not include:
- commissions
- spread
- slippage
- liquidity
- order execution
- position sizing
- account equity
- partial exits
- trailing stops
- market gaps
- order rejection
- overlapping positions
- complete intrabar sequencing
Historical results do not guarantee future results.
Alerts
The indicator includes two alert conditions:
- Bullish Signal
- Bearish Signal
The Bullish Signal alert is triggered when the Structure RSI crosses upward through the Oversold Level on a confirmed chart bar.
The Bearish Signal alert is triggered when the Structure RSI crosses downward through the Overbought Level on a confirmed chart bar.
When creating PulseWire alerts, use:
- Once Per Bar Close
This matches the confirmed signal logic.
How to Use
1. Apply the indicator
Add Price Structure RSI to a standard PulseWire chart.
The oscillator appears in a separate pane below the main price chart.
2. Begin with the default settings
The default configuration is:
- RSI Length: 20
- Overbought Level: 80
- Oversold Level: 20
- Structure Break Type: High/Low
- Moving Average Type: EMA
- Moving Average Length: 8
- Target Distance: 1.0%
- Stop Distance: 1.0%
Review the indicator with its default configuration before changing several settings simultaneously.
3. Select the structure-break type
Choose High/Low when a stored structure level should be considered broken as soon as the previous candle's high or low passes it.
Choose Close when the previous candle must close beyond the stored structure level.
High/Low is generally more responsive.
Close is generally more restrictive.
Neither setting is automatically more accurate.
4. Read the Structure RSI
Use the oscillator to observe the balance of recent broken pivot highs and pivot lows.
A rising oscillator indicates that bullish structure breaks are having greater recent influence.
A falling oscillator indicates that bearish structure breaks are having greater recent influence.
The oscillator can remain elevated or depressed during extended directional conditions.
5. Read the overbought area
When the Structure RSI moves above the Overbought Level, bullish structure-break pressure has pushed the oscillator into its upper region.
The bearish signal does not occur merely because the oscillator is above the level.
The bearish signal occurs only when the oscillator later crosses downward through the Overbought Level on a confirmed bar.
6. Read the oversold area
When the Structure RSI moves below the Oversold Level, bearish structure-break pressure has pushed the oscillator into its lower region.
The bullish signal does not occur merely because the oscillator is below the level.
The bullish signal occurs only when the oscillator later crosses upward through the Oversold Level on a confirmed bar.
7. Wait for the candle to close
Signals are confirmed at bar close.
Do not treat a temporary intrabar threshold crossing as a finalized signal.
Wait for the marker to remain after the chart candle closes.
8. Use the moving average
Enable the moving average to observe a smoother version of the Structure RSI.
Available types are:
- EMA
- SMA
- WMA
A shorter moving-average length reacts more quickly.
A longer moving-average length responds more slowly.
The moving average can provide visual context, but it is not part of the threshold-crossing signal condition.
9. Configure the target and stop distances
Set Target Distance (%) and Stop Distance (%) according to the historical measurement you want to study.
For example:
- Target: 1.0%
- Stop: 1.0%
This creates an equal-distance historical measurement.
Another example:
- Target: 2.0%
- Stop: 1.0%
This creates a larger target than stop.
These settings are research parameters and are not recommended trading settings.
10. Read the Bull panel
The Bull panel measures completed bullish signals.
- W means the bullish target was reached first
- L means the bullish stop was reached first
- the percentage shows bullish wins divided by completed bullish outcomes
Only signals that begin while no other measurement is active are included.
11. Read the Bear panel
The Bear panel measures completed bearish signals.
- W means the bearish target was reached first
- L means the bearish stop was reached first
- the percentage shows bearish wins divided by completed bearish outcomes
Only signals that begin while no other measurement is active are included.
12. Understand same-bar outcomes
When both the target and stop are touched during the same candle, the result is counted as a loss.
This is a conservative assumption because the chart's OHLC data cannot show which level was reached first.
13. Understand skipped measurements
A signal can appear while another historical measurement is still unresolved.
That signal can still:
- display a marker
- trigger an alert
However, it does not begin another historical measurement.
This is why the total W/L count may be lower than the total number of visible signals.
14. Position the panels
Choose separate positions for the Bull and Bear panels.
The default positions are:
- Bull panel: top left
- Bear panel: top right
Use the row and column offsets when small position adjustments are needed.
Avoid assigning both panels to the same final position unless overlapping panels are intended.
15. Select the colour preset
Use Dark Background on dark chart themes.
Use Light Background on light chart themes.
The preset changes moving-average and panel text colours.
It does not change the indicator calculations.
16. Create alerts
Create separate PulseWire alerts for:
- Bullish Signal
- Bearish Signal
Use Once Per Bar Close.
Test alerts on the intended symbol and timeframe before using them operationally.
17. Review broader market context
Use Price Structure RSI together with additional analysis such as:
- trend direction
- price structure
- support and resistance
- volume
- volatility
- liquidity
- market sessions
- recent swing highs and lows
- scheduled economic or company events
- risk management
A threshold crossing alone does not guarantee a reversal or continuation.
Suggested starting process
- Apply the indicator to a standard candlestick chart
- Keep RSI Length at 20
- Keep the levels at 80 and 20
- Begin with High/Low structure breaks
- Keep the EMA smoothing line enabled
- Use a target and stop distance of 1.0%
- Wait for confirmed bar-close signals
- Compare the oscillator with visible price structure
- Review the Bull and Bear panels separately
- Remember that only one active measurement is tracked
- Test several symbols and timeframes before drawing conclusions
- Use Once Per Bar Close for alerts
Limitations
- The indicator is derived from the open-source Market Structure RSI by ClayeWeight
- The central structure-break accumulation methodology is adapted from the original work
- Pivot identification is based on a simple three-candle relationship
- Pivots are identified only after the required later candle has closed
- The oscillator measures broken stored structure levels rather than normal price momentum
- The Structure RSI can behave differently from a standard price RSI
- The indicator does not determine whether a structure break is genuine or false
- The indicator does not measure volume, volatility, liquidity, or trend strength
- Signals are confirmed at bar close and may occur later than temporary intrabar conditions
- A bullish signal does not guarantee that price will rise
- A bearish signal does not guarantee that price will fall
- Only one unresolved historical measurement is tracked at a time
- Not every visible signal is represented in the W/L panels
- Opposite signals do not close active measurements
- Target and stop evaluation begins on the bar after the signal
- Same-bar target and stop contact is recorded as a loss
- The W/L panels are simplified historical measurements
- The displayed percentages are not complete backtest results
- Commissions, spread, slippage, liquidity, position sizing, and execution are not included
- Historical outcomes do not imply future results
- The indicator should not be used as the sole basis for a trading decision
Price Structure RSI is an analytical and research tool.
It does not provide financial advice, guaranteed signals, guaranteed win rates, or guaranteed results. Indicator

Indicator

Percentile Context [RC Tools]RC Tools — Percentile Context
─────────────────────────────────────────────────────────────
█ OVERVIEW
Not "is RSI over 70" — "where does today's reading actually sit in its own history?" This tool takes a metric of your choice (realised volatility, RSI, volume, rate of change, or any custom source you plug in) and ranks it as a percentile against its own trailing distribution. It's the statistical primitive underneath most technical analysis, made explicit instead of buried in a fixed threshold.
█ WHAT IT DOES
Plots a 0–100 percentile-rank line for the selected metric, flags "extreme" zones (default: below the 10th percentile or above the 90th), and shows a stats table with the current value, current percentile, all-time min/max seen on the chart, and how many bars it's been since the metric last hit either extreme.
█ THE THEORY BEHIND IT
Fixed thresholds ("RSI > 70 = overbought") assume a metric's meaningful range never changes. It does — across assets, and across time on the same asset. A percentile rank fixes this by asking a relative question instead of an absolute one: given everything this metric has done over its own trailing window, how unusual is today's reading? This is the same idea underneath the Regime Classifier's volatility-state measure, generalised to any metric.
█ HOW IT IS CALCULATED
The selected metric is computed per bar:
• Realised Volatility: stdev(log(close/close ), N)
• RSI: standard Wilder RSI
• Volume: raw bar volume
• Rate of Change %: (close − close ) / close × 100
• Custom Source: whatever series you plug into the source input (e.g. another indicator's plot)
The metric is then percentile-ranked against its own trailing window (default 750 bars ≈ 3 years on daily): what percentage of the last N readings were below today's value. Display values update ONLY on confirmed bar close — nothing here repaints.
█ SETTINGS & CONFIGURATION
• Metric (default Realised Volatility) — what gets ranked
• Custom Source — only used when Metric = Custom Source
• Realised Volatility / RSI / Rate of Change lookbacks (defaults 20 / 14 / 20)
• Percentile Ranking Window (default 750 bars) — longer = more stable, needs more history
• Low / High Extreme Thresholds (default 10 / 90)
• Paint Main Chart Background — off by default to avoid clashing with the Regime Classifier's background if you run both at once
█ HOW TO USE IT
Use it to calibrate how seriously to take a "normal" indicator reading. Example: RSI at 75 means something different on a stock that's rarely above 60 than on one that regularly touches 85 — the percentile rank makes that comparison explicit for the SAME asset over time. Also useful for volatility context ahead of position sizing: current realised vol at the 95th percentile is a different risk environment than the same absolute vol reading at the 40th percentile.
Works on any asset and timeframe with sufficient history for the percentile window.
█ LIMITATIONS
• Percentile rank describes the past relative to itself — it says nothing about direction or what happens next. A metric at its 99th percentile can stay there.
• Needs substantial history for a stable ranking. On short-history assets, treat the percentile as unreliable.
• "Extreme" is relative to the metric's OWN range. A percentile extreme on a low-volatility asset is not directly comparable in absolute terms to one on a high-volatility asset — that's the point of the tool, but it means percentiles aren't comparable across symbols.
• All-time min/max and "bars since" stats are only as long as the chart's available history, not a fixed universal record.
• This script does NOT repaint. Display values update on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past behaviour of any metric does not indicate future results. Trade at your own risk.
Indicator

Crypto Market RSI Heatmap [BigBeluga]🔵 OVERVIEW
The Crypto Market RSI Heatmap is a comprehensive, institutional-grade sector momentum matrix built for PulseWire. It consolidates relative strength metrics for up to 20 cross-sectional crypto assets into a single, highly readable multi-group pane. Instead of forcing you to open dozens of browser tabs or flip back and forth between charts, this system runs concurrent structural background queries to map real-time market overbought expansions and oversold depressions using an advanced, color-gradient visual framework.
🔵 FEATURES
The indicator tracks cross-asset momentum cycles through an isolated data processing engine:
1 — Multi-Asset Matrix Architecture
Modular Asset Grouping: Assets are automatically split into 4 distinct structural sectors (Group A through Group D). Each section handles up to 5 completely customizable tickers, allowing you to organize setups by Layer 1s, DeFi, Memes, or Major pairs.
Independent Timeframe Anchors: Every group has an isolated execution timeframe filter ( Timeframe ). This allows you to monitor short-term scalping momentum in one sector while simultaneously tracking macroscopic daily trend structures in another.
Dynamic Highlight Tracking: The background matrix scans the active workspace. The exact asset loaded on your current open chart is highlighted with a custom accent marker ( Current Chart Asset Highlight ) so you never lose your visual anchor.
2 — Momentum Filters & Statistical Computations
Flexible Core Oscillators: The engine isn't limited to standard RSI calculations. Users can instantly toggle between a classic Relative Strength Index, Money Flow Index (MFI) to capture volume distribution, or a fast-response Stochastic RSI.
Group Average Horizon Lines: Dotted real-time horizontal baselines calculate the mean historical mathematical score of each active group, providing an instant look at overall sector health.
Real-Time Cluster Stats: A live sub-label maps out the active average, minimum, and maximum value points for every cluster directly across the base of the indicator workspace.
// 3-Point Color Gradient Engine & Highlighting Mechanism
color dynamicCoinColor = colorMidYel
if coinRSI >= 50.0
dynamicCoinColor := color.from_gradient(coinRSI, 50.0, 75.0, colorMidYel, colorMaxRed)
else
dynamicCoinColor := color.from_gradient(coinRSI, 25.0, 50.0, colorMaxGrn, colorMidYel)
bool isActiveChartAsset = str.contains(str.split(symbol, ":").last(), syminfo.ticker)
if isActiveChartAsset
dynamicCoinColor := colorActive
🔵 HOW TO USE
Using the system to gauge sector rotation requires a systematic analysis flow:
Evaluating Sector Divergences: Monitor the separate group structures to identify relative market leaders and laggards. When Group A’s average baseline pushes deeply into the upper red expansion zone while Group B remains pinned inside the lower green oversold region, money is explicitly rotating out of one pocket and into the other.
Tracking Active Momentum Continuations: Watch the trailing dashed historical lines to catch velocity expansions. Assets that break heavily out of the neutral 50 level and carry an institutional-grade gradient color shift provide high-probability breakout opportunities.
Isolating Market Anomalies: Use the bottom statistics panel to hunt down structural outliers. If a major sector average is floating heavily at a overbought 75 reading, but an individual coin within that exact cluster is sitting at a depressed 35 minimum level, you have found an inefficiencies setup.
🔵 NOTES
Why this implementation is unique:
It completely replaces standard, bulky multi-pane monitor clusters by arranging up to 20 assets side-by-side using a clean, space-staggered horizontal charting layout.
The dual-layer label framework overlays readable ticker identifiers directly on top of real-time momentum tracking nodes, preserving chart real estate without sacrificing readability.
It bridges standard price-derived momentum structures with user-defined asset lists, creating a bespoke internal crypto index tracking workspace.
Indicator

Composite Reversion OscillatorComposite Reversion Oscillator
A short-term mean-reversion oscillator that blends three different "how stretched is this?" reads into one 0–100 line: how overbought/oversold momentum is, how long the current up/down streak has run, and where the latest return ranks against its own recent history. Each measures a different face of over-extension; together they flag exhaustion more reliably than any one alone.
Why these parts are combined (not a mashup for show). A short momentum oscillator flags overbought/oversold but ignores persistence. A streak read (an oscillator of the consecutive up/down-close count) captures persistence it misses — three green closes isn't one. A return-rank read captures the size of the latest move relative to its own norm, which neither of the others sees. Averaging the three yields a composite that only reaches an extreme when momentum, streak and move-size all agree — far fewer false "oversold" prints.
What's different here. Rather than presenting the composite as a fixed rule, it forward-calibrates whether those agreed extremes actually revert on this symbol, with an out-of-sample split and a multiple-testing check — because mean-reversion edges are regime-dependent and decay, which is exactly where symbol-specific honesty matters most. Signals fire once per excursion (no zone-edge whipsaw).
How it works. Component 1: a short-period momentum oscillator of price. Component 2: the same oscillator applied to the signed consecutive-close streak. Component 3: the percentile rank of the latest return within a recent window. The composite is their average, mapped to a ±100 pane. A long fires on the cross up out of oversold (and locks out until the line recovers to mid); a short mirrors it. Each is labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample.
How to use. Read the Verdict (Long/Short/Watch/Wait) and the Conviction, which reads "High" only when that turn type shows a positive edge that survives the test here — otherwise it openly says so. Best used with your own trend and risk plan, not alone. Non-repainting.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Mean-Deviation Divergence OscillatorMean-Deviation Divergence Oscillator
A bounded oscillator that measures how far the typical price has stretched from its own recent mean, scaled by how much it normally deviates — so a reading tells you "how unusual is this move," not just "how big." That normalization makes its swings comparable across calm and volatile regimes and well suited to divergence. It adds higher-timeframe confirmation and a plain-language forward-calibration layer, so you can see at a glance whether a divergence is corroborated and whether it has actually paid on this symbol.
Why this construction (not a mashup for show). Each part fixes a flaw in naive divergence. Raw distance-from-mean isn't comparable across regimes — dividing by the average absolute deviation (with the conventional 0.015 scaling, chosen so that roughly 70–80% of readings fall within ±100) makes the oscillator regime-comparable, which is the whole reason it's a good divergence base. Higher-timeframe confirmation removes single-timeframe noise. Forward calibration removes blind faith: instead of assuming a divergence "should" reverse price, it measures whether it actually has, with realistic profit/stop outcomes. The normalized oscillator, the divergence engine, the MTF check and the calibration form one coherent tool.
How it works. Oscillator = (typical price − its moving average) ÷ (0.015 × mean absolute deviation), soft-bounded to a clean ±100 pane that auto-fits its own recent magnitude. Divergence is detected from confirmed price pivots versus the oscillator (regular and optional hidden). With MTF confirmation on, a divergence counts only if a same-direction divergence is also present on the chosen higher timeframe. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Bull/Bear divergence confirmed, "unconfirmed," or Wait) and the Conviction row, which reads "High" only when that divergence type shows a positive edge that survives the test on this symbol. A divergence is a reversal warning, not a trend signal — pair it with your own entry trigger and risk plan.
What's original. Higher-timeframe divergence confirmation on a mean-deviation normalized oscillator, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Inputs. Price/High/Low sources (change them for any market), reading mode (Simple/Pro), engine length and deviation scale, divergence and HTF-confirm controls, full calibration settings, and an auto-adapting dashboard legible on dark or light charts. Defaults are tuned for NSE:NIFTY1! intraday.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Divergence is inherently early and can persist before price turns.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Smoothed Momentum Divergence OscillatorSmoothed Momentum Divergence Oscillator
A bounded momentum oscillator whose momentum is double-smoothed — once on the price change and once on its size — which makes its swings unusually clean and well suited to divergence. It adds higher-timeframe confirmation and a plain-language forward-calibration layer, so you can see at a glance whether a divergence is corroborated and whether it has actually paid on this symbol.
Why this construction (not a mashup for show). Each part removes a weakness of raw divergence. Raw momentum is jagged, so single-pass divergence is noisy — smoothing the price change twice (and dividing by the twice-smoothed size of the change) produces a clean bounded line whose pivots are stable, which is the core reason this construction suits divergence at all. Higher-timeframe confirmation removes single-timeframe noise: a divergence that also shows on a higher timeframe is far less likely to be a fluke. Forward calibration removes blind faith: instead of assuming a divergence "should" reverse price, it measures whether it actually has, with realistic profit/stop outcomes. The smoothed oscillator, the divergence engine, the MTF check and the calibration form one coherent tool.
How it works. Momentum = double-smoothed price change ÷ double-smoothed absolute price change, scaled to a bounded line with a signal average. Divergence is detected from confirmed price pivots versus the oscillator (regular and optional hidden). With MTF confirmation on, a divergence counts only if a same-direction divergence is also present on the chosen higher timeframe. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Bull/Bear divergence confirmed, "unconfirmed," or Wait) and the Conviction row, which reads "High" only when that divergence type shows a positive edge that survives the test on this symbol. A divergence is a reversal warning, not a trend signal — pair it with your own entry trigger and risk plan.
What's original. Higher-timeframe divergence confirmation on a double-smoothed oscillator, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Inputs. Price/High/Low sources (change them for any market), reading mode (Simple/Pro), momentum windows, divergence and HTF-confirm controls, full calibration settings, and an auto-adapting dashboard legible on dark or light charts. Defaults are tuned for NSE:NIFTY1! intraday.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Divergence is inherently early and can persist before price turns.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Multi-Period Divergence OscillatorMulti-Period Divergence Oscillator
A bounded buying-pressure oscillator built to expose divergences that are corroborated across multiple measurement windows at once — and, optionally, across timeframes — then scores its own divergences forward on your chart in plain language so you can see at a glance whether to act or wait.
Why this construction (not a mashup for show). Single-window oscillators throw frequent, fragile divergences. The fix, by design, is to measure buying pressure over three windows (fast, medium, slow) and weight them into one line, so a divergence only forms when short-, medium- and long-horizon pressure agree. This tool layers two further filters that each remove a class of false signal: higher-timeframe confirmation (a divergence that also shows on a higher timeframe is far less likely to be noise), and forward calibration (instead of assuming a divergence "should" reverse price, it measures whether it actually has, on this symbol, with realistic profit/stop outcomes). The oscillator, the divergence engine, the MTF check and the calibration form one coherent tool — none alone is sufficient, which is why they're combined.
How it works. Buying pressure = close − min(low, prior close); true range = max(high, prior close) − min(low, prior close). The oscillator weights their sums over three windows (default 7/14/28). Divergence is detected from confirmed price pivots versus the oscillator (regular and optional hidden). With HTF confirmation on, a signal counts only if a same-direction divergence is also present on the chosen higher timeframe. Each signal is then labelled by a triple barrier — a profit target and equal stop in ATR units plus a time limit — split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Bull/Bear divergence confirmed, "unconfirmed," or Wait) and the Conviction row, which reads "High" only when that divergence type shows a positive edge that survives the test on this symbol. A divergence is a reversal warning, not a trend signal — pair it with your own entry trigger and risk plan. Best used alongside structure, not alone.
What's original. Higher-timeframe divergence confirmation on a multi-window oscillator, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge.
Inputs. High/Low/Close sources (change them for any market), reading mode (Simple/Pro), oscillator windows, divergence and HTF-confirm controls, full calibration settings, and an auto-adapting dashboard legible on dark or light charts. Defaults are tuned for NSE:NIFTY1! intraday.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future. Divergence is inherently early and can persist before price turns.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. Indicator

Sharp Reversal OscillatorSharp Reversal Oscillator
A reversal-timing oscillator that re-shapes price into a near-Gaussian form so turning points snap into sharp, clear extremes instead of rounded, ambiguous ones — then scores its own turns forward on your chart, in plain language, so you can see at a glance whether to act or wait.
Why these parts are combined (not a mashup for show). Three steps are stacked, each fixing the previous one's flaw. Raw price excursions are fat-tailed, so it's unclear where an extreme really is; a distribution-normalizing transform stretches values near the edges, turning a compressed extreme into a clear spike. But that transform is easily biased by trend — in a strong move it pins to one side — so the input is first band-pass cleaned (slow trend and fastest noise removed), leaving the tradable swing it should sharpen. The normalization window is then set from the market's measured dominant cycle rather than a fixed guess, so it stays tuned as cycles stretch and compress. The three only work as one tool.
How it works. Band-pass clean → locate price within its recent range, scaled to (−1, 1) → distribution-normalizing transform, smoothed → signal when the line crosses its one-bar trigger from an extreme. The window optionally follows a dominant cycle measured by autocorrelation of the band-passed price. Each signal is then labelled by a triple barrier — a profit target and an equal stop in ATR units, plus a time limit — so a "win" means the target was hit before the stop. Results split into in-sample and recent out-of-sample, with a confidence interval and a multiple-testing check.
How to use. Read the Verdict row (Long/Short signal, Watch, or Wait). Check Conviction — it reads "High" only when that signal type shows a positive edge that survives the statistical test on this symbol; otherwise treat it as context. Green wave above zero is up-pressure, red below is down; shaded bands are extremes; the faint line is the trigger. Best used with your own trend and risk plan, not alone.
What's original. The band-pass-cleaned input, the self-tuning window, the forward triple-barrier calibration with an out-of-sample split, and a conviction read that openly admits when there's no proven edge — instead of presenting every signal as equally reliable.
Inputs. Price source (change it for any market), reading mode (Simple/Pro), engine and self-tuning controls, extreme level, full calibration settings, and an auto-adapting dashboard legible on dark or light charts. Defaults are tuned for NSE:NIFTY1! intraday.
Honesty & limitations. Edge figures are computed on this chart's own history with overlapping windows and no costs — context, not a guaranteed backtest; past behaviour doesn't predict the future, and the cycle estimate lags at regime shifts.
Disclaimer: for research and education only. Not financial advice. Trading carries risk of loss; manage your own positions. 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

Reversion Setup - Bollinger Bands + RSI Live Dashboard📊 REVERSION SETUP — Bollinger Bands + Live RSI Dashboard
A focused mean-reversion tool combining Bollinger Bands with a real-time
RSI dashboard — built to spot potential reversal zones without cluttering
your chart or burning extra indicator slots.
✅ Bollinger Bands — fully configurable (period, deviation, source, color)
✅ Live RSI Dashboard — current RSI value, overbought/oversold levels,
and real-time alert status, shown in a clean table instead of a
separate pane
🎯 WHY THIS COMBO
Bollinger Bands highlight when price stretches to a statistical extreme,
while the RSI dashboard confirms whether momentum actually backs up that
move. When price tags a band AND RSI flags overbought/oversold at the
same time, that's your reversion signal — two confirmations, one chart.
🔧 FULLY CONFIGURABLE
— Adjust Bollinger period, deviation, source, and color
— Set your own RSI period and overbought/oversold levels
— Adjust dashboard text size
💡 HOW IT WORKS
The RSI dashboard updates live as new candles form, showing:
— Current RSI value
— Upper/Lower band levels
— Alert status (Overbought ↑ / Oversold ↓ / Neutral →)
🔗 PAIRS WELL WITH
Check out my Trend Setup (EMA 50/100/200 + RSI Dashboard) for the
trend-following counterpart to this mean-reversion tool.
💬 Suggestions for the next setup? Drop a comment below — more tools
coming based on community feedback.
If this helped your charts, a like goes a long way 🙏 Indicator

Trend Setup - 3 EMA + RSI Dashboard📊 TREND SETUP — EMAs + Live RSI Dashboard
A clean, all-in-one trend tool combining the 3 most-used EMAs with a
real-time RSI dashboard — no need to load multiple indicators separately.
✅ EMA 50 / 100 / 200 — fully configurable (period, source, color, on/off)
✅ Live RSI Dashboard — shows current RSI value, overbought/oversold
levels, and a real-time status alert, displayed in a sleek table
instead of a cluttered separate pane
🎯 WHY THIS COMBO
EMAs give you the big-picture trend direction, while the RSI dashboard
tells you instantly if price is stretched (overbought/oversold) —
without needing a second indicator slot, perfect if you're on a free
PulseWire plan and want to save your indicator limit.
🔧 FULLY CONFIGURABLE
— Toggle each EMA on/off independently
— Set your own RSI period and overbought/oversold levels
— Adjust dashboard text size
💡 HOW IT WORKS
The RSI dashboard updates live as new candles form, showing:
— Current RSI value
— Upper/Lower band levels
— Alert status (Overbought ↑ / Oversold ↓ / Neutral →)
💬 Got a suggestion for the next version? Drop a comment below —
I'm actively building more setups based on community feedback.
If this helped your charts, a like goes a long way 🙏 Indicator

Exhaustion Zones (Momentum Episodes) [HermesCore]WHAT THIS INDICATOR DOES
Exhaustion Zones (Momentum Episodes) watches RSI, the Relative Strength Index, a standard momentum gauge that runs from 0 to 100. When it closes beyond a threshold (70 high, 30 low by default), a saturation episode begins. While the episode lasts I track two things: the most extreme price it prints, and the highest or lowest RSI it reaches. The moment RSI closes back inside, the episode is over and one event fires.
That event leaves a zone on the chart. Not an arbitrary band: the zone is the wick of the bar that printed the episode extreme. That wick is the exact range where the last buyers or sellers ran out. The question this script keeps asking is simple: where did price stand when the fuel ran out, and does that place get respected afterwards?
Every zone gets a 0 to 6 quality score at birth, and from then on the script counts what happens: held or broken, per grade, with sample sizes shown.
WHY IT IS DIFFERENT
Most overbought and oversold tools mark the moment and move on. An arrow prints at RSI 70 and nobody ever counts what happened next. My rules are:
- An episode is one event, not a stream of signals. RSI can sit above 70 for thirty bars; that is still one episode, one zone. The state machine needs no cooldown tricks because episodes are naturally separate: RSI has to leave and come back.
- The zone is price structure, not decoration. It spans the wick of the episode-extreme bar, padded to a minimum thickness when the wick is thin, rejected entirely when a single mega-candle would paint an unusable block (the dashboard counts those rejections too).
- The score never changes after birth. It is built only from facts known the moment the episode ends.
- Every zone resolves and every resolution is counted. Held versus broken, per grade, with n. If grade A zones hold no better than grade C zones on your chart, the dashboard will tell you so.
- Everything updates on confirmed bars only. An episode cannot start, peak or end within a forming candle. No intrabar flicker, no repainting events.
HOW TO READ THE CHART
- Zone box: red above price (exhaustion high, resistance), green below (exhaustion low, support). A label like "Exh High A S:5 RSI:77" reads: exhaustion high, grade A, score 5, the episode peaked at RSI 77.
- The saturated inner band at the extreme side is the core: the final half ATR (Average True Range, a standard volatility measure) of the wick, where the move was most exhausted. The fainter remainder is the rest of the wick.
- The vivid one-candle stripe inside the zone marks the exact bar that printed the extreme.
- Gold color with a soft glow: the grade is A or S. Those are the premium zones.
- Thicker border: the zone was touched, price came back to it at least once.
- Faint grey boxes without text: resolved history. A slightly stronger outline means the zone held, a weaker one means it broke. History whispers, it does not shout.
- Zones farther than 6 ATR from price render dimmed, so your eye goes to what is in play.
THE SCORE
- Saturation depth: peak RSI reached 80 or beyond (20 or below for lows), +2. Just past the threshold, +1.
- Climax volume: the extreme bar traded above its own volume average, +1.
- Fast fade: RSI closed back inside within 5 bars of its peak, a fast rejection, +1.
- Episode divergence: price printed a more extreme level than the previous episode while peak RSI stayed less extreme, +1. Compared episode to episode, and stated as such.
- Wick quality: the rejection wick of the extreme bar is at least 45 percent of its body, +1.
Grades: S (6), A (5), B (4), C (3), D (0 to 2). The strength filter is off by default: episodes are scarce enough to show them all and let the grade speak. Turn it on if you only want premium zones.
HELD VERSUS BROKEN
A zone is broken when price closes beyond its far edge. A zone is held when it survives to its maximum age (400 bars by default) without that happening. Every resolved zone lands in the per-grade statistics: "18% held 32 / 149 (n=181)" reads as 32 held, 149 broken, 181 judged in total.
Be aware what the definition means: held is a strict standard. Surviving 400 bars unbroken is a long time, so the absolute percentages run low by design. What matters is the ordering. On my charts S grades hold clearly better than A and B, which hold better than C. That ordering is the evidence that the score measures something real, and your own dashboard will show you whether it does on your market.
DASHBOARD
RSI now with its state. Episode now: when a saturation episode is live you see its running extreme and peak RSI update bar by bar, so you watch the zone being born. Active zone count per side. Five grade rows with held percentage, raw counts and n. Lifetime events per side plus total touches. Guard rejects, the oversized zones that were refused. Heat bars are proportional.
HOW I USE IT
This script is deliberately timeframe agnostic: an RSI episode means the same thing on every chart, only the rhythm changes.
- 4H is where I read regime. Episodes are scarce there and the zones land on swing highs and lows you would have marked by hand. An A or S exhaustion high on 4H is a place I expect sellers to defend.
- 1H is the middle ground: more events, still clean structure.
- 15m is the execution and evidence frame. Episodes are frequent, so the statistics build n fast, and I use the zones as intraday reaction levels. Expect more mediocre grades here; the dashboard shows you exactly how mediocre.
My core read is the combination of grade and first touch. A fresh A or S zone that gets its first touch is the highest quality moment this script produces: price returning to the exact range where the last push died, while the statistics tell me how often that place held in the past. A D zone breaking is not a surprise, it is the base rate.
SETTINGS THAT MATTER
- Saturation Level High and Low (70/30): the episode thresholds. Widen to 75/25 for fewer, heavier episodes.
- Deep Saturation Level (80): the line between +1 and +2 for depth.
- Zone Max Age (400 bars): the held standard. Lower it and held becomes easier to earn; the statistics will recalculate accordingly. Neither setting is the truth, they answer different questions.
- Min Zone Thickness (0.25 ATR) and Max Zone Height (3.0 ATR): the zone sanity guards.
- Broken Zones Become: greyed history or deleted. Your choice of how loud the past is.
- Show Exhaustion Core, Highlight Extreme Candle, Focus Fade: the visual layers, all styling only, all on by default.
ALERTS
New Exhaustion High Zone, New Exhaustion Low Zone, Exhaustion High First Touch, Exhaustion Low First Touch, Exhaustion Zone Broken, New A/S Exhaustion Zone. Touch alerts fire on the first touch only.
CALCULATION DETAILS
- All state changes happen on confirmed bars. Episodes start, extend and end on closes only.
- RSI length 14 on close by default. The episode tracks the running price extreme and RSI peak; both freeze the moment the episode ends.
- The zone spans from the episode extreme to the body edge of the extreme bar, padded to the minimum thickness, rejected above the height cap.
- Divergence needs a previous episode on the same side to compare against, so the first episode per side can never score that point.
- The statistics are computed from the bars your chart loads, so they differ per timeframe and per symbol. Neither is wrong, they measure different samples.
HONEST LIMITATIONS
- The statistics describe the past. They tell you how often these zones held on the loaded history, not what the next one will do.
- Held is defined as surviving the maximum age. That is a strict standard and it keeps the absolute percentages modest. Read the ordering between grades, not the raw numbers, and recalibrate the age to your own horizon.
- Scores on a fresh chart need history: volume averages and the previous episode for divergence take time to fill in.
- RSI is calculated on the chart's candles. On Heikin Ashi, Renko or other synthetic chart types the closes are not real prices and every result is distorted. Use standard candles.
- A zone is a place where exhaustion happened, not a guarantee of reversal. Strong trends break exhaustion zones routinely; that is exactly what the broken counts are there to show you.
ORIGINALITY
Overbought and oversold are as old as RSI itself. The episode state machine, the wick-anchored zone construction, the 0 to 6 scoring, the held versus broken accounting per grade and the visual language are my own work, built from scratch in Pine v6. Every number on the dashboard is recomputable from the rules in this description.
Questions and suggestions are welcome in the comments. Enjoy.
Indicator

Peak Decoder v1.0Kurzbeschreibung:
Ein hochentwickelter, strukturbasierter Oszillator, der die relative Position des Preises innerhalb seiner aktuellen Handelsspanne entschlüsselt.
Das Tool identifiziert vollautomatisch die mathematischen und visuellen Scheitelpunkte (Peaks & Troughs) in den Extremzonen und filtert kurzfristiges Marktrauschen sowie Fehlausbrüche effektiv heraus.
Hauptfunktionen & Funktionsweise:Drei integrierte Sensitivitäts-Modi:
Über das Einstellungsmenü kann die Reaktivität des Algorithmus fliegend gewechselt werden:
Aggressiv: Extrem schnell, optimiert für das Scalping in kleinsten Zeiteinheiten.
Normal: Die ausgewogene Standard-Einstellung für das klassische Daytrading.
Passiv: Filtert starkes Rauschen heraus, ideal für die übergeordnete Trendbestimmung (HTF).
Intelligenter Bounce- & Wellenfilter: Der Indikator speichert Ausbrüche in den Extremzonen im Zwischenspeicher. Er wartet geduldig, bis eine Bewegung endgültig abgeschlossen ist. Entstehen tiefere Täler oder höhere Hochs innerhalb derselben Phase, wandert das Signal automatisch mit.
Striktes Wechselsystem: Die Logik erzwingt ein sauberes, alternierendes Signalmuster (Top ➔ Bottom ➔ Top). Dadurch werden mehrfache Fehlsignale auf derselben Seite in volatilen Seitwärtsphasen komplett eliminiert.
Präzise visuelle Signale: Bestätigte Wendepunkte werden mit dezenten Kreisen direkt auf der Wellenspitze markiert. Zur besseren Übersicht wird ein fetter Richtungspfeil horizontal (auf 3 Uhr) daneben platziert.
Anwendung im Trading:Der Oszillator dient als hervorragender Filter zur Bestimmung von Premium- (Überkauft) und Discount-Zonen (Überverkauft) im Rahmen von Smart Money Concepts (SMC) oder klassischen Marktstruktur-Strategien.
Rot (Oben): Potenzielle Erschöpfung der Käufer, Vorbereitung für Short-Setups.
Grün (Unten): Potenzielle Erschöpfung der Verkäufer, Vorbereitung für Long-Setups.
Enthält eine voll integrierte Alarm-Schnittstelle (alert()), die pro Bar-Close einmalig auslöst, sobald ein Peak final bestätigt wurde. Indicator

Indicator

MFI + RSI Overbought/Oversold w/ Independent Controls [idahodev]This indicator displays the Money Flow Index (MFI) and Relative Strength Index (RSI) together in a single oscillator pane, with fully independent settings for each.
Both MFI and RSI can be customized with separate source inputs, lengths, smoothing types, smoothing lengths, overbought thresholds, and oversold thresholds. This makes it easier to compare price momentum and volume-weighted momentum without forcing both oscillators to use the same settings.
The script also includes conditional threshold fills. When RSI or MFI moves above its configured overbought level, the area between the oscillator line and the overbought threshold is filled. When RSI or MFI moves below its configured oversold level, the area between the oscillator line and the oversold threshold is filled. Fill colors and opacity can be customized independently for each oscillator and condition.
Features:
- Combined RSI and MFI oscillator display
- Independent RSI and MFI lengths
- Independent RSI and MFI smoothing
- SMA, EMA, RMA, WMA, or no smoothing
- Independent overbought and oversold levels
- Conditional overbought and oversold fills
- Custom fill colors and opacity
- Useful for spotting momentum extremes, divergences, and confluence between RSI and MFI
This indicator does not generate buy or sell signals by itself. It is intended as a visual analysis tool for identifying momentum conditions and possible exhaustion zones. Indicator

Generalized Fisher Transform [LB] Concept
The Generalized Fisher Transform extends John F. Ehlers' classic Fisher Transform (2002) by introducing an adjustable shape parameter that controls the sensitivity profile of the transformation. While the original Fisher Transform maps any normalized input to a near‑Gaussian output to highlight statistical extremes, this generalized version allows traders to emphasize central regions (shape < 1) or extreme tails (shape > 1) depending on their strategy.
Mathematical Foundation
The indicator first normalizes price to a bounded range using a rolling min‑max window of length N :
x = 2 × (P - L_min) / (H_max - L_min) - 1
A signed power is then applied with a shape factor p :
x_p = sign(x) × |x|^p
The generalized Fisher Transform is computed as :
F = 0.5 × ln( (1 + x_p) / (1 - x_p) )
When p = 1 , the formula reduces to the classic Fisher Transform. Values of p < 1 amplify sensitivity near zero (central price region), while p > 1 amplify sensitivity near the edges (extreme price region). The result is smoothed by an EMA for noise reduction.
What Problem Does It Solve ?
Classic oscillators such as RSI or Stochastic use fixed non‑linear mappings that cannot adapt to different market regimes or trader preferences. The classic Fisher Transform offers a single sensitivity profile. The Generalized Fisher Transform solves this by exposing the shape parameter p , giving traders direct control over where the indicator is most responsive — near the mean or near the extremes — without changing the underlying logic or introducing additional indicators.
How To Interpret
The indicator operates in two selectable modes :
Extremes Mode – the background turns red when Fisher exceeds the upper threshold (statistically overbought), and green when it drops below the lower threshold (statistically oversold). These zones suggest potential mean‑reversion.
Direction Mode – the background turns cyan when Fisher is above zero (bullish bias) and orange when below zero (bearish bias). This mode is suited for trend‑following or directional confirmation.
In both modes, the Fisher line crossing zero indicates a shift in the price distribution relative to its recent range.
Parameters
Source – price data used for the calculation (default: close).
Normalization Period – number of bars used to compute the rolling min‑max for the normalization.
Shape Factor – exponent applied to the normalized price before the Fisher transform. 1 = classic Fisher, < 1 = center‑sensitive, > 1 = tail‑sensitive.
Smoothing Period – EMA length applied to the raw Fisher output.
Coloration Mode – switches between "Extremes" (overbought/oversold highlighting) and "Direction" (bullish/bearish highlighting).
Upper Threshold – Fisher level above which the background turns red in Extremes mode.
Lower Threshold – Fisher level below which the background turns green in Extremes mode.
Reference
Ehlers J.F., "Using the Fisher Transform", Technical Analysis of Stocks & Commodities, Vol. 20, No. 11, pp. 40‑45, November 2002.
Ehlers J.F., "Cybernetic Analysis for Stocks and Futures", Chapter 4 – The Fisher Transform, John Wiley & Sons, 2004. Indicator

RSI Multi-Timeframe DashboardRSI Multi-Timeframe Dashboard
═══════════════════════════════════════════
WHAT IT DOES
═══════════════════════════════════════════
This tool displays the Relative Strength Index (RSI) of up to six timeframes
at once in a compact on-chart table, so you can judge momentum across the
whole timeframe stack without switching charts. Instead of reading RSI on a
single timeframe, you see how short-, medium- and higher-timeframe momentum
line up — and a consensus row summarises the overall picture.
It is designed as a CONFLUENCE tool: a way to see whether the broader market
agrees with what you're seeing on your trading timeframe.
═══════════════════════════════════════════
HOW IT WORKS
═══════════════════════════════════════════
RSI is calculated with the standard Wilder method (default length 14) on each
selected timeframe using request.security(). Each row is classified into a zone:
- Overbought — RSI at or above the overbought level (default 70)
- Oversold — RSI at or below the oversold level (default 30)
- Bullish — RSI above the midline (default 50)
- Bearish — RSI below the midline (default 50)
The "ALL" row aggregates only the enabled timeframes:
- If every enabled timeframe is oversold → "STRONG BUY ZONE"
- If every enabled timeframe is overbought → "STRONG SELL ZONE"
- Otherwise it shows the majority bias and a score, e.g. "BULLISH (4/5)"
These are descriptions of momentum conditions — not instructions to buy or sell.
═══════════════════════════════════════════
HOW TO USE IT IN A TRADE
═══════════════════════════════════════════
The core idea is alignment. Higher-timeframe RSI defines the bias; lower-timeframe
RSI helps with timing inside that bias.
Example long workflow:
1. Bias — Confirm the higher timeframes (e.g. 4H, Daily) are Bullish (above the
midline). This says the dominant momentum favours longs.
2. Timing — Wait for a lower timeframe (e.g. 5m/15m) to dip toward Oversold and
turn back up, offering a pullback entry in the direction of the higher-TF bias.
3. Confluence — A "BULLISH (5/5)" or rising consensus score adds conviction;
a "MIXED" reading is a reason to wait.
4. Management — Define your stop from price structure (recent swing), not from
RSI alone, and size the position to your own risk rules.
The short workflow is the mirror image (higher TFs Bearish, lower TF rallies into
Overbought and rolls over).
Things to respect:
- RSI can remain Overbought in a strong uptrend (and Oversold in a strong
downtrend) for a long time. "Overbought" is not automatically "sell."
- Counter-trend signals (e.g. Oversold while higher TFs are Bearish) are
lower-probability and best avoided or treated as scalps only.
- This indicator does not place trades, set stops, or manage risk for you.
═══════════════════════════════════════════
SETTINGS
═══════════════════════════════════════════
- RSI — length, source, and the overbought / oversold / midline levels.
- Timeframes to monitor — up to 6 slots, each with an on/off toggle and its own
timeframe. Set them equal to or higher than your chart timeframe.
- Style — table position, text size, and your own bullish / bearish colours.
═══════════════════════════════════════════
ALERTS
═══════════════════════════════════════════
- All timeframes oversold
- All timeframes overbought
- Consensus turned bullish (majority crossed above the midline)
- Consensus turned bearish (majority crossed below the midline)
═══════════════════════════════════════════
NOTES, REPAINTING & LIMITATIONS
═══════════════════════════════════════════
- Monitored timeframes should be greater than or equal to your chart timeframe;
requesting a lower timeframe is not meaningful.
- Repainting: values use lookahead_off, so a higher-timeframe RSI updates live
until that bar closes — this is intended for real-time reading. The reading on
a closed higher-TF bar is final.
- RSI is a momentum oscillator, not a forecast. This dashboard organises that
information across timeframes; it does not predict price.
This script is published open-source. Study it, learn from it, and adapt it to
your own process. It is provided for educational purposes only and is not
financial advice. Past behaviour of any indicator does not guarantee future
results — always do your own analysis and manage your risk. Indicator

Indicator

Overbought & Oversold Zones - MTF SignalsOverbought & Oversold Zones - MTF Signals
Overbought & Oversold Zones - MTF Signals is a visual analytical indicator that highlights extreme directional conditions directly on the price chart and across multiple timeframes. Instead of plotting an oscillator line in a separate pane, it paints gradient zones around price during periods of sustained buying or selling pressure, helping traders see exhaustion states at a glance.
The indicator combines a custom Pressure Index calculation with a volatility-adjusted envelope to shape the zones, and a compact multi-timeframe panel that scans the current timeframe plus the three higher ones.
This is a visual analytical tool intended for chart reading and context. It does not execute trades and does not provide financial advice.
Key Features
On-chart gradient zones highlighting overbought and oversold conditions
Zones follow the shape of a dynamic volatility envelope (not rectangles)
Multi-timeframe panel scanning current TF plus three higher TFs
Merged phase logic that groups close-proximity conditions into single zones
Adjustable sensitivity through ten preset levels
Fully customizable colors and optional text labels
Core Concept
The indicator uses a custom Pressure Index model to evaluate how consistently price has been pushing above or below a volatility-adjusted baseline. Unlike traditional oscillators such as RSI (which measures gain/loss ratios) or Stochastic (which measures position within a range), Pressure Index combines two complementary components:
Persistence — how consistently price has stayed above or below a volatility-adjusted baseline over the measurement window, weighted by normalized distance rather than as a binary above/below count
Displacement — how far current price is from that baseline in ATR-normalized units
The baseline adapts to volatility regime: during high-volatility periods the reference band widens to reduce false exhaustion signals, and during calm periods it tightens. Final output is bounded to a 0–100 scale and smoothed with a sensitivity-scaled EMA.
Zone Visualization
When the Pressure Index enters an extreme region, the indicator renders a three-layer gradient zone that follows the shape of the dynamic envelope:
Overbought zones fade downward from the upper envelope into the channel
Oversold zones fade upward from the lower envelope into the channel
Zone thickness scales with ATR so the visual is comparable across markets and timeframes
The gradient has three layers: a dense core band close to the envelope, a middle fade band, and an outer soft fade. This layered approach helps the zones visually surround the candles inside the extreme state rather than appearing as flat bars.
Multi-Timeframe Panel
A compact panel in the top-right corner of the chart displays the Pressure Index across the current timeframe and three higher timeframes (automatically selected from the standard ladder: 1m, 5m, 15m, 30m, 1H, 4H, 1D, 1W, 1M).
Each row shows:
Timeframe label
Horizontal gauge bar with a position marker
Numeric Pressure Index value (0–100)
State pill indicating Overbought (OB), Oversold (OS), or neutral direction
The panel adapts its higher timeframes to whichever chart timeframe is currently active. The current chart timeframe is marked with a bullet indicator.
Typical Analysis Workflow
A common analytical workflow may include:
Observing gradient zones on the main chart to identify extended conditions
Checking the MTF panel to place the current reading in higher-timeframe context
Evaluating price structure and candle behavior near zone edges
Combining zone information with other forms of analysis and risk management
Configuration
Sensitivity — Controls how quickly the Pressure Index reacts to changes in price pressure. Lower values produce faster, more frequent signals. Higher values produce slower, steadier signals.
Lower settings (1-3) — Faster reactivity, suitable for intraday charts and shorter timeframes
Middle settings (4-6) — Balanced sensitivity, default for most markets and timeframes
Higher settings (7-10) — Slower reactivity, suitable for swing and position-style chart reading
On-Chart Display — Toggles the gradient zones on or off.
Show Text Labels — Toggles "Overbought" and "Oversold" text labels that appear once per merged phase. Can be disabled for a cleaner chart.
Show MTF Panel — Toggles the multi-timeframe panel.
Appearance — Customizable colors for Overbought and Oversold zones, panel text size, and history rendering depth.
Markets and Timeframes
The indicator can be applied across multiple markets and timeframes:
Forex
Stocks and Indices
Commodities
Cryptocurrencies
Because the zone thickness and Pressure Index smoothing are both normalized by ATR and sensitivity presets, the visual behavior remains consistent across different instruments and timeframes without manual re-tuning.
Alerts
Two alert conditions are available:
Overbought Entry — triggers on the first bar a new Overbought state begins
Oversold Entry — triggers on the first bar a new Oversold state begins
Important Notes
This indicator is an analytical visualization tool. It does not execute trades and does not provide financial advice. All outputs are informational and should be interpreted within the context of independent market analysis and proper risk management.
Past behavior of any technical indicator does not guarantee future results.
If you find this indicator useful, feel free to add it to your favorites and share your feedback in the comments. Community feedback helps improve future updates. Indicator

Percentile Stretch Bands [AGPro Series]Percentile Stretch Bands
🔹 OVERVIEW
Percentile Stretch Bands is an empirical, distribution-free overextension map. Instead of plotting standard deviation envelopes that assume a normal distribution of price behavior, this indicator samples the actual historical distance between price and a chosen reference (EMA, VWAP, or Anchored VWAP) and draws context-specific Stretch and Extreme bands directly from the empirical percentile distribution. The result is a visual reference of how stretched price is relative to its own historical behavior, adapted to the asset and timeframe being viewed.
🔹 UNIQUE EDGE
Most "stretch" or "volatility band" tools on the platform rely on parametric assumptions — standard deviation multipliers, ATR multiples, or fixed percentage offsets. These approaches collapse when the underlying return distribution is skewed, fat-tailed, or regime-dependent, which is the rule rather than the exception across crypto and FX assets.
Percentile Stretch Bands takes a different path:
• Distribution-free: bands are drawn from the actual empirical percentile of price-to-reference distance, not from a Gaussian assumption.
• Side-specific sampling: upper and lower distances are collected into separate samples, so asymmetric behavior (trending markets, one-sided regimes) is preserved rather than averaged away.
• Regime-aware rendering: when Focus Active Side is enabled, each bar displays only the side relevant to price position, producing a clean single-story chart without visual competition.
• Readiness gating: bands appear only once a minimum number of observations is reached on the active side, with the status panel clearly indicating the collection stage.
🔹 METHODOLOGY
For every bar in the configured lookback window, the signed percent distance between close and the selected reference is computed and partitioned into two historical samples: positive distances (upper extensions) and negative distances in absolute terms (lower extensions).
Each sample is sorted and two percentile cut-offs are extracted independently:
• Stretch percentile (default 80) — the threshold beyond which a distance is considered materially extended.
• Extreme percentile (default 95) — the threshold beyond which a distance is statistically rare within the chosen lookback.
These cut-offs are then translated from percent-distance back into absolute price bands around the active reference, producing four levels: Upper Stretch, Upper Extreme, Lower Stretch, Lower Extreme. The current distance is also ranked against its side's sample and displayed as an ordinal percentile (for example, "Upper P87") in the status panel.
🔹 SIGNALS AND ALERTS
The indicator is a visual overextension map and does not generate directional trade signals. Four alert conditions are exposed for users who want to be notified of boundary events:
• Upper Stretch Cross — close crosses above the Upper Stretch band.
• Upper Extreme Cross — close crosses above the Upper Extreme band.
• Lower Stretch Cross — close crosses below the Lower Stretch band.
• Lower Extreme Cross — close crosses below the Lower Extreme band.
These alerts mark entries into statistically extended zones relative to the empirical sample. They are contextual flags, not trade recommendations.
🔹 KEY INPUTS
Reference
• Reference Mode — EMA, VWAP, or Anchored VWAP baseline
• EMA Length — smoothing length for the EMA reference
• AVWAP Anchor Time — starting timestamp for Anchored VWAP
Statistics
• Lookback — bars used to build the empirical distribution (default 500)
• Minimum Side Sample — observations required before bands appear
• Stretch Percentile — primary extension threshold (default 80)
• Extreme Percentile — rare-extension threshold (default 95)
Display
• Focus Active Side — regime-aware single-story rendering
• Show Active Stretch Zone Box — right-side zone anchor on the active side
• Zone Forward Projection — forward visibility of the active zone
• Band Color Profile — Soft, Premium, or Bold
• Panel Text Size and Label Text Size — Small, Normal, or Large
Level Tags
• Show Level Tags, Show Reference Tag, Tag Mode, Tag Offset Bars
🔹 HOW TO USE
1. Select a reference that fits the asset and timeframe. EMA is a robust default across all instruments. VWAP is suited to intraday equities and futures. Anchored VWAP is used when a specific event origin (earnings, news, structural low) is relevant.
2. Let the status panel reach the "Ready" state. The panel reports active samples and readiness — bands are intentionally withheld until the side-specific sample is sufficient.
3. Read the current percentile rank in the Zone cell. Values near the center indicate price trading close to the reference; values approaching P95 or above indicate the sample's rare extensions.
4. Treat Stretch and Extreme bands as context, not as triggers. A move into the Extreme zone reflects a statistically rare extension on the chosen sample, not a directional signal.
5. Combine with structural tools — trend context, market structure, higher-timeframe bias — before any discretionary decision.
🔹 LIMITATIONS AND TRANSPARENCY
• The indicator is descriptive, not predictive. Percentile bands describe past behavior within the lookback window; they do not forecast future price action.
• Regime shifts can temporarily invalidate historical bands. A sudden volatility expansion will push price beyond extreme levels while the sample re-stabilizes.
• Empirical percentiles require sufficient observations. On very new symbols or short lookbacks, the "Collecting" state is the correct and expected behavior.
• Anchored VWAP mode depends on a meaningful anchor choice. A poorly chosen anchor produces a reference line without structural relevance.
• The active stretch zone box is a visual anchor for screenshots and review, not a projection of future levels.
🔹 RISK DISCLOSURE
This script is a visual analytics tool and is not a strategy, signal service, or financial advice. It does not place orders, manage positions, or recommend directional exposure. Trading involves risk of loss. Users are responsible for their own analysis, risk management, and trading decisions. Indicator
