Regime-Conditional Correlation [RC Tools]RC Tools — Regime-Conditional Correlation
─────────────────────────────────────────────────────────────
█ OVERVIEW
Plain rolling correlation between two assets is well-covered ground. The angle here: correlation is not a constant — it changes with the market regime. This tool computes rolling correlation against a second symbol of your choice and buckets it by the same regime framework as the Regime Classifier, so you can see whether a correlation you're relying on actually holds up across market conditions, or only shows up in one of them.
█ WHAT IT DOES
Plots rolling correlation (Pearson, default 20-bar window) between the current chart's symbol and a compare symbol you choose. Colours the background by the current market regime (Trending — Expansion/Exhaustion, Ranging — Quiet/Volatile), using the identical directionality × volatility-percentile logic as the Regime Classifier. A table shows the current regime and correlation, plus the average correlation, its standard deviation, and the sample count for each of the four regimes historically.
█ THE THEORY BEHIND IT
A single "the correlation is 0.8" number hides a lot. Two assets can be tightly linked during calm trending markets and decouple completely during volatile chop — or vice versa. Regime-conditioning the correlation surfaces that structure instead of averaging it away. This matters directly for anything relying on a stable cross-asset relationship: hedges, pairs, or diversification assumptions that quietly break exactly when you need them most (in the volatile regime).
█ HOW IT IS CALCULATED
CORRELATION: standard Pearson correlation between the current symbol's close and the compare symbol's close (fetched via request.security on the same timeframe), over a rolling window (default 20 bars).
REGIME: identical to the Regime Classifier — Efficiency Ratio for directionality, percentile-ranked realised volatility for volatility state, crossed to give four states. Regime is measured on the CURRENT chart's own price action, not the compare symbol. See the Regime Classifier's description for the full methodology.
The correlation reading and the regime are both "as of now" — contemporaneous — so unlike the Regime Classifier's forward-return table, no forward-looking attribution is needed here: each confirmed bar's correlation is added directly to the running average for whichever regime was active on that same bar.
█ SETTINGS & CONFIGURATION
• Compare Symbol (default BTCUSD) — the second asset to correlate against
• Correlation Length (default 20 bars)
• Regime settings mirror the Regime Classifier exactly (Efficiency Ratio lookback, directionality threshold, realised vol lookback, percentile window, volatility percentile threshold) — keep these in sync if you run both indicators together
• Paint Main Chart Background — off by default; enable on only one of the two indicators if running both, to avoid overlapping backgrounds
█ HOW TO USE IT
Check whether a correlation you're relying on is regime-dependent before trusting it. Example: if a hedge shows strong negative correlation in Ranging — Quiet but the average correlation flips or weakens in Ranging — Volatile, that hedge may not protect you exactly when volatility spikes. Always check the sample count (N) per regime before drawing conclusions — a regime with few historical bars hasn't been tested enough to trust its average.
█ LIMITATIONS
• Correlation is measured over a short rolling window and is noisy by nature — it will swing even when the underlying relationship is stable.
• The compare symbol is fetched via request.security on the same timeframe; illiquid symbols, different exchange sessions, or timezone misalignment can introduce lag or missing values.
• Regime classification carries the same caveats as the Regime Classifier: it is backward-looking by construction, unstable near threshold boundaries, and needs substantial history to be reliable.
• Per-regime correlation statistics accumulate only from where the chart's loaded history begins — early sample counts are small and not yet statistically meaningful.
• This script does NOT repaint. All classification and correlation display values update on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past correlation between any two assets does not indicate future results. Trade at your own risk.
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

Regime Classifier [RC Tools]RC Tools — Regime Classifier
─────────────────────────────────────────────────────────────
█ OVERVIEW
Most indicators assume a single market condition and quietly fail in another. This tool doesn't generate signals — it tells you which of four market regimes you are currently in, so you can judge whether your existing tools are operating in conditions that suit them. It is a context tool, not a decision tool.
█ WHAT IT DOES
Classifies each confirmed bar into one of four states and colours the chart background accordingly:
• Trending — Expansion: directional, volatility rising
• Trending — Exhaustion: directional, volatility compressing
• Ranging — Quiet: no direction, low volatility
• Ranging — Volatile: no direction, high volatility (chop)
A table (top-right by default, repositionable) shows the current regime, how long price has been in it, and historical base rates — the average forward return and win rate seen after each regime, going back over the chart's full history.
█ THE THEORY BEHIND IT
Market behaviour is not stationary. A trend-following tool that performs well in directional expansion will bleed in volatile chop; a mean-reversion tool does the reverse. Rather than attempting to fix any single indicator, this tool identifies which environment you are in, using two independent dimensions — directionality and volatility state — that measure genuinely different properties of price behaviour rather than two correlated views of the same one.
█ HOW IT IS CALCULATED
DIRECTIONALITY — Efficiency Ratio over N bars:
ER = |close − close | ÷ Σ|close − close |
Bounded 0–1. A value near 1 means price travelled almost directly from A to B (trending); near 0 means it wandered (ranging). No fitted parameters beyond the lookback. The Efficiency Ratio was introduced by Perry Kaufman as the core input to his Adaptive Moving Average (KAMA); it is used here purely as a directionality measure, independent of any moving average.
VOLATILITY STATE — realised volatility, percentile-ranked:
RV = stdev(log(close/close ), N)
RV is then ranked as a percentile against its own trailing distribution (default: 750 bars, ≈3 years on daily). An absolute volatility threshold is meaningless across assets — percentile ranking makes the classification behave identically on BTC, gold and equities with no parameter tuning.
The two dimensions are crossed to yield the four states. Classification occurs ONLY on confirmed bar close — the background never updates mid-bar and then flips back.
The base-rate table works by recording, for every historical bar, the forward N-bar return and whether it was positive, attributed back to whichever regime was active N bars earlier. Only fully-elapsed, already-known returns are used — nothing is looked up ahead of the current bar.
█ SETTINGS & CONFIGURATION
• Efficiency Ratio Lookback (default 20) — shorter = more responsive, noisier
• Realised Volatility Lookback (default 20)
• Percentile Ranking Window (default 750 bars ≈ 3 years daily) — longer = more stable, needs more history
• Directionality Threshold (default 0.35) — the ER above which price is considered trending
• Volatility Percentile Threshold (default 50) — the split between low and high volatility states
• Forward Return Window (default 20 bars) — the horizon used for the base-rate table
• Table position and background colours are fully configurable; the main-chart background painting can be toggled off if you only want the diagnostic pane
█ HOW TO USE IT
Use it as a filter on your existing process, not as an entry trigger. Example: if you run a breakout system, check whether it has historically performed in Ranging — Volatile; if not, consider standing aside when the background flags that state. Example: a mean-reversion system will typically show its worst results in Trending — Expansion.
Works on any asset and timeframe with sufficient history for the percentile window. Best used on daily and above, where regime persistence is greatest.
█ LIMITATIONS
This tool classifies the PRESENT. It does not predict the future, and any use of it as a forecast is a misuse.
• Regime identification is backward-looking by construction. The tool will confirm a regime change several bars AFTER it occurred. This lag cannot be removed without curve-fitting or repainting, and has not been.
• Classification is unstable near threshold boundaries; expect flickering between states when ER or volatility percentile sit close to the cut-offs.
• The percentile ranking requires substantial history. On assets with short histories, the ranking is unreliable and the tool should not be trusted.
• The base-rate table's early entries are built on fewer samples than its later ones — treat statistics as provisional until a state has accumulated a meaningful sample count.
• Four states is a deliberate simplification of a continuous reality. Markets do not actually occupy discrete regimes.
• This script does NOT repaint. All classification is computed on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past behaviour of any market regime does not indicate future results. Trade at your own risk.
Indicator

Price Percentile Heatmap [QuantAlgo]🟢 Overview
This indicator visualizes where price currently stands within its recent historical distribution, displayed as a dynamic gradient heatmap directly on the chart. It is built on the concept of percentile ranking: rather than using lagging momentum oscillators or fixed overbought/oversold thresholds, it measures price relative to every bar within a user-defined lookback window and expresses that position as a smooth, continuous gradient. The result is an at-a-glance read of whether price is historically cheap, historically expensive, or somewhere in between, all without leaving the main chart.
The defining visual feature is the thermal color gradient applied to the price bars, background, and source line. Bullish colors represent price trading near the top of its recent range, signaling historically elevated conditions. Bearish colors represent price trading near the bottom of its range, signaling historically depressed conditions. A built-in Heat Thermometer reinforces this reading by showing exactly where the current percentile rank falls along the full spectrum in real time.
🟢 How It Works
The foundation of the indicator is a per-bar percentile rank calculated over a rolling lookback window. For each bar, the selected price source is compared against every value within the lookback period to determine what percentage of historical bars traded below the current price:
percentile_rank = ta.percentrank(price_source, lookback_length)
A rank of 100 means the current price is higher than every bar in the lookback sample. A rank of 0 means it is lower than all of them. A rank of 50 places price exactly at the median of its recent distribution. This single value drives every visual output in the indicator.
The raw rank is then mapped directly into a continuous color gradient, transitioning smoothly from the bearish color at rank 0 to the bullish color at rank 100:
gradient_color = color.from_gradient(percentile_rank, 0, 100, bearish_color, bullish_color)
Because the rank is recalculated on every bar using a rolling window, the gradient never relies on fixed thresholds or static levels. It adapts continuously to the most recent price history, meaning the same absolute price level can read bullish in one market environment and bearish in another depending on what has happened within the lookback period.
The lookback length is the primary tuning parameter. Short periods (10 to 30) make the rank reactive to recent moves and suit scalping and intraday setups. Medium periods (50 to 100) provide a balanced read suitable for swing trading. Long periods (150 to 500) produce a slow-moving, macro-level view best suited for position trading and identifying historically extreme conditions.
🟢 Key Features
1. Thermal Color Gradient
Every visual element on the chart, including the source line, the bar colors, and the background tint, reflects the current percentile rank through a smooth color transition.
▶ Bullish Color: Applied when price ranks high within its recent distribution, drawing attention to historically elevated price levels.
▶ Bearish Color: Applied when price ranks low, highlighting historically depressed conditions and potential mean-reversion or continuation setups.
▶ Bar Coloring: Each individual candlestick is colored according to the current rank, giving instant bar-by-bar feedback without requiring a separate panel.
▶ Background Coloring: The full chart canvas receives a semi-transparent tint that reinforces the heatmap reading across the entire visible price area. Transparency is fully adjustable so price action is never obscured.
▶ Color Presets: Six pre-configured schemes, Classic, Aqua, Cosmic, Cyber, Neon, and Custom, allow you to match the heatmap to any chart theme or personal preference.
2. Heat Thermometer
An optional thermometer panel displays the full bearish-to-bullish color spectrum and marks exactly where the current percentile rank sits along that spectrum with a real-time arrow indicator.
▶ Real-Time Positioning: The arrow updates on every bar, giving an immediate visual anchor for the current rank without needing to read a number.
▶ Resolution: The number of gradient segments in the thermometer is adjustable from 5 to 20, letting you choose between a clean simplified display or a finer, smoother gradient.
▶ Position and Size: The thermometer can be placed in any of nine chart positions and its text size is independently adjustable, making it easy to integrate into dense multi-indicator layouts or standalone setups.
🟢 Practical Applications
▶ Mean Reversion Setups: When price reaches an extreme low percentile rank, it is historically cheap relative to recent bars, a potential entry signal for mean reversion strategies. The opposite applies at high ranks.
▶ Trend Confirmation: In a strong trend, the percentile rank will persistently hue toward one color. A sustained bullish gradient confirms trend strength; a persistent bearish gradient confirms sustained selling pressure.
▶ Multi-Timeframe Alignment: Apply the indicator across multiple timeframes and look for gradient agreement. When both a higher and lower timeframe show the same extreme color, the percentile signal carries significantly more weight. Indicator

Indicator

David Varadi Intermediate OscillatorThe David Varadi Intermediate Oscillator (DVI) is a composite momentum oscillator designed to generate trading signals based on two key factors: the magnitude of returns over different time windows and the stretch, which measures the relative number of up versus down days. By combining these factors, the DVI aims to provide a reliable and objective assessment of market trends and momentum.
Methodology:
To calculate the DVI, a specific formula is applied. The magnitude component involves averaging smoothed returns over various lengths, weighted according to user-defined parameters. This calculation helps determine the magnitude of price changes. The stretch component follows a similar process, averaging smoothed returns over different lengths to gauge market momentum. Users have the flexibility to adjust the weights and lengths to suit their trading preferences and styles.
Utility:
The DVI offers versatility in its applications. It can be used for both momentum trading and trend analysis due to its smooth and consistent signals. Unlike some other oscillators, the DVI provides longer and uncorrelated signals, allowing traders to effectively combine trend-following and mean-reversion strategies. For example, the DVI is adept at identifying overbought levels above the 200-day moving average, serving as a useful tool for determining exit points during price strength and even potential shorting opportunities. Traders can develop simple trading systems based on the DVI, buying above the 200-day moving average and selling when the DVI exceeds a specified threshold. Conversely, they can consider short positions below the 200-day moving average and cover when the DVI falls below a specific threshold. The DVI's objective approach to analyzing market momentum makes it a valuable resource for traders seeking to identify trading opportunities.
Key Features:
Bar coloring: based on Trend, Extremeties or Reversions
Reversions: Potential reversal points marked with triangles above\below oscillator
Extremity Hues: Highlighting oxcillator reaching traditional OB\OS levels
Example Charts:
Indicator

Percentile Rank of Moving Average Convergence DivergenceThis simple indicator provides you three useful information of the Moving Average Convergence Divergence (MACD) indicator:
The percentile rank of the current value of the MACD line, displayed by the bright blue line.
The percentile rank of the current value of the Signal line, displayed by the dark blue line.
The percentile rank of the current value of the Histogram line, displayed by the olive histogram.
This indicator can be useful to identify the strength of trend. This indicator makes the assumption that market tends to revert into the opposite direction. If the market has been trending a lot, it should consolidate for a while later. If the market has been consolidating for a long time, it would begin trending real soon.
When we see a low percentile rank, no matter which line it is, this tells that the market hasn't been moving much, or there is little momentum. If the percentile rank stays below the median or even below the first quartile for a long time, this could suggest that the market is ready for the next trend since it has stored quite some energy.
When we see a high percentile rank, no matter which line it is, this tells that the market has been trending a lot, or there is much momentum. If the percentile rank stays above the median or even above the third quartile for a long time, it is probable that the market has used up much of its energy and is going to take a rest (consolidate). Indicator

Percentile Rank of Bollinger BandsThis simple indicator provides you three useful information with Bollinger Bands:
How wide the current width (standard deviation) of the Bollinger Band is.
Compared to the widths in the past, is the current width relatively small or big? Value is expressed in percentile format.
What the "relative position of current price" to the current Bollinger Band is.
This indicator can be useful to identify whether the Bollinger Band has substantially "expanded" or "squeezed."
First, divide the current standard deviation by the current price, we get the current width. The current width is displayed by the columns at the bottom. When the current width becomes wider, the column becomes taller, and the color is dark green. On the contrary, if the width becomes narrower, the column becomes shorter and the color is light green.
Next, compare the current width with the previous N widths, we get the percentile rank for the current width. The percentile rank is shown by the thicker line graph. When the percentile rank grows, it is green; whereas when the rank declines, the color is red.
Lastly, calculate (close - lower)/(upper - lower) and we get an idea of the relative height of the current price, compared to the upper and lower band. This is displayed by the thinner line graph. When the relative position becomes higher, the color is in aqua. It is in blue when the relative position becomes lower. Note that since closing prices can go above the upper band or go below the lower band, the values may be greater than 100 or less than 0. Indicator

Indicator

Indicator
