Volatility Risk PremiumTHE INSURANCE PREMIUM OF THE STOCK MARKET
Every day, millions of investors face a fundamental question that has puzzled economists for decades: how much should protection against market crashes cost? The answer lies in a phenomenon called the Volatility Risk Premium, and understanding it may fundamentally change how you interpret market conditions.
Think of the stock market like a neighborhood where homeowners buy insurance against fire. The insurance company charges premiums based on their estimates of fire risk. But here is the interesting part: insurance companies systematically charge more than the actual expected losses. This difference between what people pay and what actually happens is the insurance premium. The same principle operates in financial markets, but instead of fire insurance, investors buy protection against market volatility through options contracts.
The Volatility Risk Premium, or VRP, measures exactly this difference. It represents the gap between what the market expects volatility to be (implied volatility, as reflected in options prices) and what volatility actually turns out to be (realized volatility, calculated from actual price movements). This indicator quantifies that gap and transforms it into actionable intelligence.
THE FOUNDATION
The academic study of volatility risk premiums began gaining serious traction in the early 2000s, though the phenomenon itself had been observed by practitioners for much longer. Three research papers form the backbone of this indicator's methodology.
Peter Carr and Liuren Wu published their seminal work "Variance Risk Premiums" in the Review of Financial Studies in 2009. Their research established that variance risk premiums exist across virtually all asset classes and persist over time. They documented that on average, implied volatility exceeds realized volatility by approximately three to four percentage points annualized. This is not a small number. It means that sellers of volatility insurance have historically collected a substantial premium for bearing this risk.
Tim Bollerslev, George Tauchen, and Hao Zhou extended this research in their 2009 paper "Expected Stock Returns and Variance Risk Premia," also published in the Review of Financial Studies. Their critical contribution was demonstrating that the VRP is a statistically significant predictor of future equity returns. When the VRP is high, meaning investors are paying substantial premiums for protection, future stock returns tend to be positive. When the VRP collapses or turns negative, it often signals that realized volatility has spiked above expectations, typically during market stress periods.
Gurdip Bakshi and Nikunj Kapadia provided additional theoretical grounding in their 2003 paper "Delta-Hedged Gains and the Negative Market Volatility Risk Premium." They demonstrated through careful empirical analysis why volatility sellers are compensated: the risk is not diversifiable and tends to materialize precisely when investors can least afford losses.
HOW THE INDICATOR CALCULATES VOLATILITY
The calculation begins with two separate measurements that must be compared: implied volatility and realized volatility.
For implied volatility, the indicator uses the CBOE Volatility Index, commonly known as the VIX. The VIX represents the market's expectation of 30-day forward volatility on the S&P 500, calculated from a weighted average of out-of-the-money put and call options. It is often called the "fear gauge" because it rises when investors rush to buy protective options.
Realized volatility requires more careful consideration. The indicator offers three distinct calculation methods, each with specific advantages rooted in academic literature.
The Close-to-Close method is the most straightforward approach. It calculates the standard deviation of logarithmic daily returns over a specified lookback period, then annualizes this figure by multiplying by the square root of 252, the approximate number of trading days in a year. This method is intuitive and widely used, but it only captures information from closing prices and ignores intraday price movements.
The Parkinson estimator, developed by Michael Parkinson in 1980, improves efficiency by incorporating high and low prices. The mathematical formula calculates variance as the sum of squared log ratios of daily highs to lows, divided by four times the natural logarithm of two, times the number of observations. This estimator is theoretically about five times more efficient than the close-to-close method because high and low prices contain additional information about the volatility process.
The Garman-Klass estimator, published by Mark Garman and Michael Klass in 1980, goes further by incorporating opening, high, low, and closing prices. The formula combines half the squared log ratio of high to low prices minus a factor involving the log ratio of close to open. This method achieves the minimum variance among estimators using only these four price points, making it particularly valuable for markets where intraday information is meaningful.
THE CORE VRP CALCULATION
Once both volatility measures are obtained, the VRP calculation is straightforward: subtract realized volatility from implied volatility. A positive result means the market is paying a premium for volatility insurance. A negative result means realized volatility has exceeded expectations, typically indicating market stress.
The raw VRP signal receives slight smoothing through an exponential moving average to reduce noise while preserving responsiveness. The default smoothing period of five days balances signal clarity against lag.
INTERPRETING THE REGIMES
The indicator classifies market conditions into five distinct regimes based on VRP levels.
The EXTREME regime occurs when VRP exceeds ten percentage points. This represents an unusual situation where the gap between implied and realized volatility is historically wide. Markets are pricing in significantly more fear than is materializing. Research suggests this often precedes positive equity returns as the premium normalizes.
The HIGH regime, between five and ten percentage points, indicates elevated risk aversion. Investors are paying above-average premiums for protection. This often occurs after market corrections when fear remains elevated but realized volatility has begun subsiding.
The NORMAL regime covers VRP between zero and five percentage points. This represents the long-term average state of markets where implied volatility modestly exceeds realized volatility. The insurance premium is being collected at typical rates.
The LOW regime, between negative two and zero percentage points, suggests either unusual complacency or that realized volatility is catching up to implied volatility. The premium is shrinking, which can precede either calm continuation or increased stress.
The NEGATIVE regime occurs when realized volatility exceeds implied volatility. This is relatively rare and typically indicates active market stress. Options were priced for less volatility than actually occurred, meaning volatility sellers are experiencing losses. Historically, deeply negative VRP readings have often coincided with market bottoms, though timing the reversal remains challenging.
TERM STRUCTURE ANALYSIS
Beyond the basic VRP calculation, sophisticated market participants analyze how volatility behaves across different time horizons. The indicator calculates VRP using both short-term (default ten days) and long-term (default sixty days) realized volatility windows.
Under normal market conditions, short-term realized volatility tends to be lower than long-term realized volatility. This produces what traders call contango in the term structure, analogous to futures markets where later delivery dates trade at premiums. The RV Slope metric quantifies this relationship.
When markets enter stress periods, the term structure often inverts. Short-term realized volatility spikes above long-term realized volatility as markets experience immediate turmoil. This backwardation condition serves as an early warning signal that current volatility is elevated relative to historical norms.
The academic foundation for term structure analysis comes from Scott Mixon's 2007 paper "The Implied Volatility Term Structure" in the Journal of Derivatives, which documented the predictive power of term structure dynamics.
MEAN REVERSION CHARACTERISTICS
One of the most practically useful properties of the VRP is its tendency to mean-revert. Extreme readings, whether high or low, tend to normalize over time. This creates opportunities for systematic trading strategies.
The indicator tracks VRP in statistical terms by calculating its Z-score relative to the trailing one-year distribution. A Z-score above two indicates that current VRP is more than two standard deviations above its mean, a statistically unusual condition. Similarly, a Z-score below negative two indicates VRP is unusually low.
Mean reversion signals trigger when VRP reaches extreme Z-score levels and then shows initial signs of reversal. A buy signal occurs when VRP recovers from oversold conditions (Z-score below negative two and rising), suggesting that the period of elevated realized volatility may be ending. A sell signal occurs when VRP contracts from overbought conditions (Z-score above two and falling), suggesting the fear premium may be excessive and due for normalization.
These signals should not be interpreted as standalone trading recommendations. They indicate probabilistic conditions based on historical patterns. Market context and other factors always matter.
MOMENTUM ANALYSIS
The rate of change in VRP carries its own information content. Rapidly rising VRP suggests fear is building faster than volatility is materializing, often seen in the early stages of corrections before realized volatility catches up. Rapidly falling VRP indicates either calming conditions or rising realized volatility eating into the premium.
The indicator tracks VRP momentum as the difference between current VRP and VRP from a specified number of bars ago. Positive momentum with positive acceleration suggests strengthening risk aversion. Negative momentum with negative acceleration suggests intensifying stress or rapid normalization from elevated levels.
PRACTICAL APPLICATION
For equity investors, the VRP provides context for risk management decisions. High VRP environments historically favor equity exposure because the market is pricing in more pessimism than typically materializes. Low or negative VRP environments suggest either reducing exposure or hedging, as markets may be underpricing risk.
For options traders, understanding VRP is fundamental to strategy selection. Strategies that sell volatility, such as covered calls, cash-secured puts, or iron condors, tend to profit when VRP is elevated and compress toward its mean. Strategies that buy volatility tend to profit when VRP is low and risk materializes.
For systematic traders, VRP provides a regime filter for other strategies. Momentum strategies may benefit from different parameters in high versus low VRP environments. Mean reversion strategies in VRP itself can form the basis of a complete trading system.
LIMITATIONS AND CONSIDERATIONS
No indicator provides perfect foresight, and the VRP is no exception. Several limitations deserve attention.
The VRP measures a relationship between two estimates, each subject to measurement error. The VIX represents expectations that may prove incorrect. Realized volatility calculations depend on the chosen method and lookback period.
Mean reversion tendencies hold over longer time horizons but provide limited guidance for short-term timing. VRP can remain extreme for extended periods, and mean reversion signals can generate losses if the extremity persists or intensifies.
The indicator is calibrated for equity markets, specifically the S&P 500. Application to other asset classes requires recalibration of thresholds and potentially different data sources.
Historical relationships between VRP and subsequent returns, while statistically robust, do not guarantee future performance. Structural changes in markets, options pricing, or investor behavior could alter these dynamics.
STATISTICAL OUTPUTS
The indicator presents comprehensive statistics including current VRP level, implied volatility from VIX, realized volatility from the selected method, current regime classification, number of bars in the current regime, percentile ranking over the lookback period, Z-score relative to recent history, mean VRP over the lookback period, realized volatility term structure slope, VRP momentum, mean reversion signal status, and overall market bias interpretation.
Color coding throughout the indicator provides immediate visual interpretation. Green tones indicate elevated VRP associated with fear and potential opportunity. Red tones indicate compressed or negative VRP associated with complacency or active stress. Neutral tones indicate normal market conditions.
ALERT CONDITIONS
The indicator provides alerts for regime transitions, extreme statistical readings, term structure inversions, mean reversion signals, and momentum shifts. These can be configured through the TradingView alert system for real-time monitoring across multiple timeframes.
REFERENCES
Bakshi, G., and Kapadia, N. (2003). Delta-Hedged Gains and the Negative Market Volatility Risk Premium. Review of Financial Studies, 16(2), 527-566.
Bollerslev, T., Tauchen, G., and Zhou, H. (2009). Expected Stock Returns and Variance Risk Premia. Review of Financial Studies, 22(11), 4463-4492.
Carr, P., and Wu, L. (2009). Variance Risk Premiums. Review of Financial Studies, 22(3), 1311-1341.
Garman, M. B., and Klass, M. J. (1980). On the Estimation of Security Price Volatilities from Historical Data. Journal of Business, 53(1), 67-78.
Mixon, S. (2007). The Implied Volatility Term Structure of Stock Index Options. Journal of Empirical Finance, 14(3), 333-354.
Parkinson, M. (1980). The Extreme Value Method for Estimating the Variance of the Rate of Return. Journal of Business, 53(1), 61-65.
インジケーターとストラテジー
Greater Moving AverageThe purpose for this indicator is to function as a comprehensive market-state detector, with the primary goal of avoiding a market crash.
Mendoza Lines (V-pattern detection) identify early crash conditions and warn when market structure becomes unstable.
RSI/volume-shaded candles + Supertrend confirm momentum and trend, creating a unified system to avoid major drawdowns.
Enhanced Wyckoff ranges with ATR.
Mendoza lines identify abrupt V-shaped reversals which often precede high-risk crash structures. By tracking both the formation and resolution of these patterns across multiple timeframes, the indicator provides early warning signals when the market is entering unstable territory, allowing traders to step aside before liquidity collapses or structural breakdowns begin.
Ideal configurations use Heikin Ashi to smooth out candle structure. Observe SPX on a Weekly Chart, which correctly identifies exits and entries during the 2001 and 2009 crashes. On a 6 hour chart, the Tariff low is correctly identified. The improved VWAP uses a cumulative metric rather than the built in ta.vwap calculation, and functions as a macro low beacon when crossed with the 200 EMA. Historically, these crosses have aligned closely with macro cycle lows.
To round out the system, the indicator overlays RSI-based and volume-weighted candle shading to reflect internal momentum and real buying/selling pressure directly on the chart, making shifts in strength immediately visible. A Supertrend confirmation layer acts as the final filter, smoothing noise and verifying trend direction before decisions are made.
Advanced Breakout SystemAdvanced Breakout System
Developed by: Mohammed Bedaiwi
This script hunts for high-probability breakouts by combining price consolidation zones, volume spikes vs. average volume, smart money flow (OBV), and a Momentum Override for explosive moves that skip consolidation. Additionally, it automatically identifies and plots Support and Resistance levels with price labels to help you visualize market structure.
The system follows a "Watch & Confirm" logic: it first prints a WATCH setup, then a BUY only if price confirms strength.
🔑 Color Legend (Visual Guide)
🟡 WATCH – Setup (Yellow Arrow Down) :
Potential breakout setup detected. Monitor the stock and do not enter yet. Triggered when price breaks out of a recent consolidation with strong volume or makes a big momentum move (e.g. >5%) in a single bar.
🟢 BUY – Confirmation (Green Arrow Up) :
Confirmed breakout. Consider entering a long position according to your own rules. Triggered when price trades above the high of the WATCH candle.
🟠 SELL – Break (Orange Arrow) :
Short-term trend weakness. Triggered when price closes below the Fast EMA (9). Used as a protective exit or partial profit-taking.
🔴 SELL – Dump (Dark Red Arrow) :
Distribution / volume dump. Triggered by a bearish candle with abnormally high volume compared to the average (e.g. ≥ Dump Volume Multiplier × average volume).
🟣 SELL – Pattern (Purple Arrow) :
Bearish price-action pattern (such as a bearish engulfing). Indicates a possible top or reversal.
🔴/🟢 Support & Resistance Lines :
Small horizontal lines plotted at key swing points. Red Line: Resistance (Swing High). Green Line: Support (Swing Low). Both include exact price labels for quick reference.
⚙️ Inputs
Entry settings: Consolidation Lookback (default 20) = bars used to detect consolidation. Consolidation Range % (default 12%) = max allowed range size; higher values make the script more sensitive. Volume Spike Multiplier (default 1.2) = factor above average volume to count as a spike. Force Signal on Big Moves (default ON) = forces a WATCH signal if price jumps more than a set % (e.g. 5%) even without consolidation/OBV confirmation.
Exit settings: Enable Fast Exit (EMA 9) toggles the SELL – Break signal. Dump Volume Multiplier defines what counts as “dump” volume (e.g. 2× average).
Support & Resistance: Adjustable Pivot Left/Right bars allow you to control the sensitivity of the support and resistance lines.
⚠️ Disclaimer
Trading involves significant risk of loss. This script is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell any asset. BUY and SELL signals are rule-based and derived from historical behavior and do not guarantee future performance. Always use your own analysis and risk management.
AlphaNatt | FINAL REVELATION [Visual God]AlphaNatt | The Final Revelation
"Where Information Theory meets Market Geometery."
The AlphaNatt is a comprehensive market structure and volumetric analysis suite designed for the institutional-grade trader. It merges advanced quantitative concepts—specifically Shannon Entropy and Neural Pattern Filtering—with a "Holographic" visual interface that prioritizes clarity over clutter.
This is not just an indicator; it is a complete decision-support system that answers three critical questions:
Is the market chaotic or ordered? (Entropy Engine)
Where is the liquidity? (Volumetric Heatmap)
What is the true structure? (Fractal Geometry)
🌌 The Gen 100 Math Engine
At the core of this script lies a unique implementation of Information Theory.
1. Shannon Entropy (The Chaos Filter)
Most indicators fail because they try to predict "Noise". This script calculates the Entropy (in Bits) of the recent price action.
High Entropy: The market is in a "Random Walk" state. Visuals fade out, transparency increases, and signals are suppressed.
Low Entropy: The market is "Ordered" and approaching a singularity/decision point. Visuals glow brightly to indicate a high-probability environment.
2. Neural Pattern Recognition
The diamond signals (Cyan/Magenta) are not simple simple crossovers. They are driven by a composite logic simulating a neural filter:
Inputs: Normalised RSI + Momentum Divergence + Volatility State.
Logic: Signals only trigger when the market is statistically overextended AND showing signs of momentum decay.
💎 Holographic Features
🔥 Volumetric Heatmap
The script scans historical price action to build a Volume Profile Heatmap on the right side of the chart.
Purple/Blue Zones: These represent High Volume Nodes (HVNs). These act as "Gravity Wells" for price—often stopping trends or acting as launchpads for reversals.
POC (Point of Control): The bright green line indicates the price level with the absolute highest volume in the lookback period.
🌀 Fractal Structure Lines
Price action is often noisy. The script uses a Fractal Pivot Algorithm (Length 5) to identify the "True Highs" and "True Lows".
It connects these points with dashed "Neural Lines" to show the naked market skeleton.
This instantly reveals if you are in a trend of Higher Highs or a breakdown of Lower Lows.
🖥️ The Heads-Up Display (HUD)
A minimalist dashboard keeps you informed of the math underneath:
ENTROPY: The raw bit-score of market chaos.
REGIME: Tells you instantly if you are in "ORDER" (Tradeable) or "CHAOS" (Sit out).
STRUCT: Real-time status of the fractal structure (Breakout/Breakdown/Ranging).
⚙️ Settings & Configuration
Theme: Choose between "Cyber" (Neon), "Aeon" (Deep Blue), or "Gold" (Luxury).
Max Entropy: Adjust the sensitivity of the Chaos Filter. Lower values = stricter filtering (fewer trades).
Heatmap Depth: Control how far back the volume profile scans.
⚠️ Disclaimer
This tool is designed for educational market analysis. "Entropy" and "Neural" refer to the mathematical algorithms used to process price data and do not guarantee future performance. Always manage risk responsible.
VIX/VXV Ratio (TitsNany)This script plots the VXV/VIX ratio, which compares medium-term volatility (90-day fear) to short-term volatility (30-day fear). When the ratio rises above key levels like 1.16 or 1.24, it signals that traders expect future stress, often preceding market pullbacks. When the ratio falls toward or below 1.0, short-term fear is spiking, which typically occurs during active selloffs or volatility events. In short, elevated readings warn of potential market drops ahead, while sharp declines in the ratio reflect panic already hitting the market.
MeanReversion_tradeALERTOverview The Apex Reversal Predictor v2.5 is a specialized mean reversion strategy designed for scalping high-volatility assets like NQ (Nasdaq), ES (S&P 500), and Crypto. While most indicators chase breakouts, this system hunts for "Liquidity Sweeps"—moments where the market briefly breaks a key level to trap retail traders before snapping back to the true value (VWAP).
This is not just a signal indicator; it is a full Trade Manager that calculates your Entry, Stop Loss, and Take Profit levels automatically based on volatility (ATR).
The Logic: Why This Works Markets act like a rubber band. They can only stretch so far from their average price before snapping back. This script combines three layers of logic to identify these snap-back points:
The Stretch (Sigma Score): Measures how far price is from the VWAP relative to ATR. If the score > 2.0, the "rubber band" is overextended.
The Trap (Liquidity Sweep): Identifies Pivot Highs/Lows. It waits for price to break a pivot (luring in breakout traders) and then immediately reverse (trapping them).
The Exhaustion (RSI): Confirms that momentum is Overbought/Oversold to prevent trading against a strong trend.
Key Features
Dynamic Lines: Automatically draws Blue (Entry), Red (SL), and Green (TP) lines on the chart for active trades.
Smart Targets: Two modes for taking profit:
Mean Reversion: Targets the VWAP line (High Win Rate).
Fixed Ratio: Targets a specific Risk:Reward (e.g., 1:2).
Live Dashboard: Tracks Win Rate, Net Points, and the live "Stretch Score" in the bottom right corner.
Alert Ready: Formatted JSON alerts for easy integration with Discord or trading bots.
How & When to Use (User Guide)
1. Best Timeframes
5-Minute (5m): Best for NQ and volatile stocks (TSLA, NVDA). Filters out 1-minute noise but catches the intraday reversals.
15-Minute (15m): Best for Forex or slower-moving indices (ES).
2. The Setup Checklist Before taking a trade, look at the Dashboard in the bottom right:
Step 1: Check the "Stretch (Sigma)". Is it Orange or Red? This means price is extended and ripe for a reversal. If it's Green, the market is calm—be careful.
Step 2: Wait for the Signal.
"Apex BUY" (Green Label): Price swept a low and closed green.
"Apex SELL" (Red Label): Price swept a high and closed red.
Step 3: Execute. Enter at the close of the signal candle. Set your stop loss at the Red Line provided by the script.
3. Warning / When NOT to Use
Strong Trending Days: If the market is trending heavily (e.g., creating higher highs all day without looking back), do not fight the trend.
News Events: Avoid using this during CPI, FOMC, or NFP releases. The "rubber band" logic breaks during news because volatility expands indefinitely.
Volume Profile on Grid with Zscore ColoringThis indicator takes (DeadCatCode) volume profile and starts a new profile when price reaches a new Grid Interval, chosen in the settings.
The candles are also colored by Z score (colors pulled from ChartPrime) based on the 5 deviations from the Daily TWAP, which is anchored from previous days settlement time, 14:59:30CT. The max number of deviations can be changed in the settings to change the sensitivity of the z score coloring.
CRR - GANAEMAs on the chart (visual trend)
EMA 15 (white), 30 (yellow), 200 (red).
2️⃣ DASH Engine 1m–5m–15m (+ 1H and 1D)
For each TF (1m, 5m, 15m) it calculates a bull/bear score using:
EMA structure (15, 30, 50, 100, 200).
MACD.
RSI.
Relationship with EMA 30 and VWAP.
FVG in favor.
ATR change (volatility **increasing**).
From this it derives:
t1 (1m), t2 (5m), t3 (15m),
t4 (1H) and t5 (1D) (only for EMA200).
It detects:
ALL BULL → “BULLISH - BUYS ONLY”.
ALL BEAR → “BEARISH - SELLS ONLY”.
Otherwise → “NEUTRAL / MIXED”.
In addition:
Calculates BULL TF vs BEAR TF (%) between 1m–5m–15m.
Displays a visual bar 🐂🟩 vs 🐻🟥.
3️⃣ GOLD News (manual)
Special bar that says:
Neutral
BUY (positive)
SELL (negative)
Paints the HUD with color according to the news you select.
4️⃣ NO RETRACEMENT Alerts (beast mode 💣)
Very strict conditions using the 5 TFs:
BUY NO RETRACEMENT if:
4 or more TFs in bull mode (bullTF_all >= 4),
1m ultra bull (EMA bull, RSI>60, MACD bull, high volume, price above EMA15 and VWAP, FVG ≥ 0).
SELL NO RETRACEMENT is the same but bearish.
Creates alerts:
CRR BUY NO RETRACEMENT
CRR SELL NO RETRACEMENT
5️⃣ PRO LITE Patterns: Double Top / Double Bottom
Detects double tops and double bottoms with:
Minimum bar distance.
Tolerance in %. Optional filters:
MACD, RSI, ATR (volatility), volume, FVG.
If everything aligns:
Plots SELL at double top.
Plots BUY at double bottom.
6️⃣ TOP Indicators Block (SMI + WaveTrend + Supertrend)
SMI (momentum), WaveTrend, and Supertrend:
Counts which are in bull mode and which are in bear mode.
Displays:
TOP IND: BULLS XX% | BEARS YY%.
7️⃣ Integrated Internal SMC Module
Structure HH, LH, HL, LL.
BMS (break of structure) and ChoCH (change of character).
Filter with ATR + volume + MACD + gaps.
Internal Fibonacci of the last range (38.2, 50, 61.8).
Dotted yellow lines of the current range (swing high/low).
🧠 In short:
It's your command center for XAUUSD:
Global mode (buy only / sell only / mixed),
% of timeframes favoring bulls/bears,
gold news,
no-lag alerts,
filtered double top/bottom,
TOP indicators,
and complete SMC (structure + BMS/ChoCH + Fibonacci + range)...
all integrated into a single CRAZY RAY RAY HUD
Setup Keltner BandS MMS + RSI SIGNALS
📊 Keltner Bands with RSI Confirmation – TradingView Script
Introduction
This script combines Keltner Channel logic with Relative Strength Index (RSI) confirmation to provide traders with visual signals and alerts for potential reversals. It is designed for scalping and short-term trading strategies, where precision and quick decision-making are essential.
🔧 How It Works
• Keltner Bands (ATR-based):
• Two sets of bands are plotted around a moving average:
• Band 3 (ATR × 3) – more sensitive, suitable for aggressive entries.
• Band 5 (ATR × 5) – wider, used as a filter or confirmation zone.
• Signals are generated when the price crosses back inside the bands from outside.
• RSI Confirmation:
• RSI is calculated with a customizable period (default: 14).
• Overbought and oversold levels (default: 70/30) are used to filter signals.
• A bearish reversal is confirmed only if RSI is above the overbought level.
• A bullish reversal is confirmed only if RSI is below the oversold level.
📌 Functions and Features
• Visual Signals:
• Triangles plotted above/below candles for Keltner-only signals.
• Additional colored triangles for Keltner + RSI confirmed signals.
• Alerts:
• Configurable alerts for both Keltner-only and RSI-confirmed conditions.
• Messages include the type of reversal and the band level.
• Customizable Parameters:
• Moving average length.
• ATR multipliers (3 and 5).
• RSI length and thresholds.
• Colors for band fills and signals.
🎯 Usage
1. Apply the script to your chart in TradingView.
2. Adjust parameters to fit your trading style (scalping, intraday, swing).
3. Watch for signals:
• Red/green/orange/teal triangles → Keltner-only reversals.
• Maroon/lime/purple/blue triangles → RSI-confirmed reversals.
4. Set alerts to receive notifications when conditions are met.
5. Use RSI confirmation to filter out false signals and increase accuracy.
✅ Benefits
• Clear visualization of reversal zones.
• Dual-layer confirmation (Keltner + RSI).
• Flexible for different timeframes and trading styles.
• Ready-to-use alerts for automation or manual trading.
Volume Profiles on Weekly TWAP and Zscore ColoringThis indicator takes (DeadCats) volume profile and starts a new profile when price reaches a new Weekly TWAP line or deviation line.
The candles are also colored by Z score based on the 5 deviations from the Daily TWAP, which is anchored from previous days settlement time, 14:59:30CT. The max number of deviations can be changed in the settings to change the sensitivity of the z score coloring.
Support & Resistance Auto-Detector by Rakesh Sharma📊 SUPPORT & RESISTANCE AUTO-DETECTOR
Automatically identifies and displays key price levels where traders make decisions. No more manual drawing - let the algorithm do the work!
✨ KEY FEATURES:
- Auto-detects Swing High/Low levels with strength rating
- Previous Day High/Low (PDH/PDL) - Most important intraday levels
- Previous Week High/Low (PWH/PWL) - Strong swing levels
- Previous Month High/Low (PMH/PML) - Major turning points
- Round Number levels (Psychological barriers)
- S/R Zones (Better than exact lines)
- Breakout/Breakdown alerts
- Live Dashboard with trade bias
🎯 PERFECT FOR:
Nifty, Bank Nifty, Stocks, Forex, Crypto - All markets, all timeframes
⚡ SMART FEATURES:
- Strength Rating: Very Strong/Strong/Medium/Weak
- Distance Calculator: Shows points to next S/R
- Trade Bias: "Buy Dips" / "Sell Rallies" / "Breakout"
- Break Alerts: Get notified on PDH/PDL breaks
- Clean Chart: Shows only most important levels
💡 TRADING EDGE:
Trade bounces at support, rejections at resistance, or breakouts through key levels. Combines perfectly with price action and other indicators.
Created by: Rakesh Sharma
BLACK SWAN SWEEP (DANIELPEREZ)Crt de velas especificas después del sweep buscar la confirmación del order block para tomar una operacio .
Check specific candlesticks after the sweep to find order block confirmation before taking a trade.
XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)//@version=6
strategy("XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)",
overlay = true,
initial_capital = 10000,
pyramiding = 10,
process_orders_on_close = true)
//━━━━━━━━━━━━━━━━━━━
// 1. INPUTS
//━━━━━━━━━━━━━━━━━━━
// TP / SL
tp1Pips = input.int(10, "TP1 (pips)", minval = 1)
fixedSLpips = input.int(50, "Fixed SL (pips)", minval = 5)
runnerRR = input.float(3.0, "Runner RR (TP2 = SL * RR)", step = 0.1, minval = 1.0)
// Daily risk
maxDailyLossPct = input.float(5.0, "Max daily loss % (stop trading)", step = 0.5)
maxDailyProfitPct = input.float(20.0, "Max daily profit % (stop trading)", step = 1.0)
// HTF S/R (1H)
htfTF = input.string("60", "HTF timeframe (minutes) for S/R block")
// Profit strategy (Option C)
profitStrategy = input.string("Minimal Risk | Full BE after TP1", "Profit Strategy", options = )
// Runner stop mode (your option 4)
runnerStopMode = input.string( "BE only", "Runner Stop Mode", options = )
// ATR trail settings (only used if ATR mode selected)
atrTrailLen = input.int(14, "ATR Length (trail)", minval = 1)
atrTrailMult = input.float(1.0, "ATR Multiplier (trail)", step = 0.1, minval = 0.1)
// Pip size (for XAUUSD: 1 pip = 0.10 if tick = 0.01)
pipSize = syminfo.mintick * 10.0
tp1Points = tp1Pips * pipSize
slPoints = fixedSLpips * pipSize
baseQty = input.float (1.0, "Base order size" , step = 0.01, minval = 0.01)
//━━━━━━━━━━━━━━━━━━━
// 2. DAILY RISK MANAGEMENT
//━━━━━━━━━━━━━━━━━━━
isNewDay = ta.change(time("D")) != 0
var float dayStartEquity = na
var bool dailyStopped = false
equityNow = strategy.initial_capital + strategy.netprofit
if isNewDay or na(dayStartEquity)
dayStartEquity := equityNow
dailyStopped := false
dailyPnL = equityNow - dayStartEquity
dailyPnLPct = dayStartEquity != 0 ? (dailyPnL / dayStartEquity) * 100.0 : 0.0
if not dailyStopped
if dailyPnLPct <= -maxDailyLossPct
dailyStopped := true
if dailyPnLPct >= maxDailyProfitPct
dailyStopped := true
canTradeToday = not dailyStopped
//━━━━━━━━━━━━━━━━━━━
// 3. 1H S/R ZONES (for direction block)
//━━━━━━━━━━━━━━━━━━━
htOpen = request.security(syminfo.tickerid, htfTF, open)
htHigh = request.security(syminfo.tickerid, htfTF, high)
htLow = request.security(syminfo.tickerid, htfTF, low)
htClose = request.security(syminfo.tickerid, htfTF, close)
// Engulf logic on HTF
htBullPrev = htClose > htOpen
htBearPrev = htClose < htOpen
htBearEngulf = htClose < htOpen and htBullPrev and htOpen >= htClose and htClose <= htOpen
htBullEngulf = htClose > htOpen and htBearPrev and htOpen <= htClose and htClose >= htOpen
// Liquidity sweep on HTF previous candle
htSweepHigh = htHigh > ta.highest(htHigh, 5)
htSweepLow = htLow < ta.lowest(htLow, 5)
// Store last HTF zones
var float htResHigh = na
var float htResLow = na
var float htSupHigh = na
var float htSupLow = na
if htBearEngulf and htSweepHigh
htResHigh := htHigh
htResLow := htLow
if htBullEngulf and htSweepLow
htSupHigh := htHigh
htSupLow := htLow
// Are we inside HTF zones?
inHtfRes = not na(htResHigh) and close <= htResHigh and close >= htResLow
inHtfSup = not na(htSupLow) and close >= htSupLow and close <= htSupHigh
// Block direction against HTF zones
longBlockedByZone = inHtfRes // no buys in HTF resistance
shortBlockedByZone = inHtfSup // no sells in HTF support
//━━━━━━━━━━━━━━━━━━━
// 4. 1m LOCAL ZONES (LIQUIDITY SWEEP + ENGULF + QUALITY SCORE)
//━━━━━━━━━━━━━━━━━━━
// 1m engulf patterns
bullPrev1 = close > open
bearPrev1 = close < open
bearEngulfNow = close < open and bullPrev1 and open >= close and close <= open
bullEngulfNow = close > open and bearPrev1 and open <= close and close >= open
// Liquidity sweep by previous candle on 1m
sweepHighPrev = high > ta.highest(high, 5)
sweepLowPrev = low < ta.lowest(low, 5)
// Local zone storage (one active support + one active resistance)
// Quality score: 1 = engulf only, 2 = engulf + sweep (we only trade ≥2)
var float supLow = na
var float supHigh = na
var int supQ = 0
var bool supUsed = false
var float resLow = na
var float resHigh = na
var int resQ = 0
var bool resUsed = false
// New resistance zone: previous bullish candle -> bear engulf
if bearEngulfNow
resLow := low
resHigh := high
resQ := sweepHighPrev ? 2 : 1
resUsed := false
// New support zone: previous bearish candle -> bull engulf
if bullEngulfNow
supLow := low
supHigh := high
supQ := sweepLowPrev ? 2 : 1
supUsed := false
// Raw "inside zone" detection
inSupRaw = not na(supLow) and close >= supLow and close <= supHigh
inResRaw = not na(resHigh) and close <= resHigh and close >= resLow
// QUALITY FILTER: only trade zones with quality ≥ 2 (engulf + sweep)
highQualitySup = supQ >= 2
highQualityRes = resQ >= 2
inSupZone = inSupRaw and highQualitySup and not supUsed
inResZone = inResRaw and highQualityRes and not resUsed
// Plot zones
plot(supLow, "Sup Low", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(supHigh, "Sup High", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(resLow, "Res Low", color = color.new(color.red, 60), style = plot.style_linebr)
plot(resHigh, "Res High", color = color.new(color.red, 60), style = plot.style_linebr)
//━━━━━━━━━━━━━━━━━━━
// 5. MODERATE BOS (3-BAR FRACTAL STRUCTURE)
//━━━━━━━━━━━━━━━━━━━
// 3-bar swing highs/lows
swHigh = high > high and high > high
swLow = low < low and low < low
var float lastSwingHigh = na
var float lastSwingLow = na
if swHigh
lastSwingHigh := high
if swLow
lastSwingLow := low
// BOS conditions
bosUp = not na(lastSwingHigh) and close > lastSwingHigh
bosDown = not na(lastSwingLow) and close < lastSwingLow
// Zone “arming” and BOS validation
var bool supArmed = false
var bool resArmed = false
var bool supBosOK = false
var bool resBosOK = false
// Arm zones when first touched
if inSupZone
supArmed := true
if inResZone
resArmed := true
// BOS after arming → zone becomes valid for entries
if supArmed and bosUp
supBosOK := true
if resArmed and bosDown
resBosOK := true
// Reset BOS flags when new zones are created
if bullEngulfNow
supArmed := false
supBosOK := false
if bearEngulfNow
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 6. ENTRY CONDITIONS (ZONE + BOS + RISK STATE)
//━━━━━━━━━━━━━━━━━━━
flatOrShort = strategy.position_size <= 0
flatOrLong = strategy.position_size >= 0
longSignal = canTradeToday and not longBlockedByZone and inSupZone and supBosOK and flatOrShort
shortSignal = canTradeToday and not shortBlockedByZone and inResZone and resBosOK and flatOrLong
//━━━━━━━━━━━━━━━━━━━
// 7. ORDER LOGIC – TWO PROFIT STRATEGIES
//━━━━━━━━━━━━━━━━━━━
// Common metrics
atrTrail = ta.atr(atrTrailLen)
// MINIMAL MODE: single trade, BE after TP1, optional trailing
// HYBRID MODE: two trades (Scalp @ TP1, Runner @ TP2)
// Persistent tracking
var float longEntry = na
var float longTP1 = na
var float longTP2 = na
var float longSL = na
var bool longBE = false
var float longRunEntry = na
var float longRunTP1 = na
var float longRunTP2 = na
var float longRunSL = na
var bool longRunBE = false
var float shortEntry = na
var float shortTP1 = na
var float shortTP2 = na
var float shortSL = na
var bool shortBE = false
var float shortRunEntry = na
var float shortRunTP1 = na
var float shortRunTP2 = na
var float shortRunSL = na
var bool shortRunBE = false
isMinimal = profitStrategy == "Minimal Risk | Full BE after TP1"
isHybrid = profitStrategy == "Hybrid | Scalp TP + Runner TP"
//━━━━━━━━━━ LONG ENTRIES ━━━━━━━━━━
if longSignal
if isMinimal
longEntry := close
longSL := longEntry - slPoints
longTP1 := longEntry + tp1Points
longTP2 := longEntry + slPoints * runnerRR
longBE := false
strategy.entry("Long", strategy.long)
supUsed := true
supArmed := false
supBosOK := false
else if isHybrid
longRunEntry := close
longRunSL := longRunEntry - slPoints
longRunTP1 := longRunEntry + tp1Points
longRunTP2 := longRunEntry + slPoints * runnerRR
longRunBE := false
// Two separate entries, each 50% of baseQty (for backtest)
strategy.entry("LongScalp", strategy.long, qty = baseQty * 0.5)
strategy.entry("LongRun", strategy.long, qty = baseQty * 0.5)
supUsed := true
supArmed := false
supBosOK := false
//━━━━━━━━━━ SHORT ENTRIES ━━━━━━━━━━
if shortSignal
if isMinimal
shortEntry := close
shortSL := shortEntry + slPoints
shortTP1 := shortEntry - tp1Points
shortTP2 := shortEntry - slPoints * runnerRR
shortBE := false
strategy.entry("Short", strategy.short)
resUsed := true
resArmed := false
resBosOK := false
else if isHybrid
shortRunEntry := close
shortRunSL := shortRunEntry + slPoints
shortRunTP1 := shortRunEntry - tp1Points
shortRunTP2 := shortRunEntry - slPoints * runnerRR
shortRunBE := false
strategy.entry("ShortScalp", strategy.short, qty = baseQty * 50)
strategy.entry("ShortRun", strategy.short, qty = baseQty * 50)
resUsed := true
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 8. EXIT LOGIC – MINIMAL MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size > 0 and not na(longEntry)
// Move to BE once TP1 is touched
if not longBE and high >= longTP1
longBE := true
// Base SL: BE or initial SL
float dynLongSL = longBE ? longEntry : longSL
// Optional trailing after BE
if longBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longEntry
dynLongSL := math.max(dynLongSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailSL = close - atrTrailMult * atrTrail
dynLongSL := math.max(dynLongSL, trailSL)
strategy.exit("Long Exit", "Long", stop = dynLongSL, limit = longTP2)
// SHORT – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size < 0 and not na(shortEntry)
if not shortBE and low <= shortTP1
shortBE := true
float dynShortSL = shortBE ? shortEntry : shortSL
if shortBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortEntry
dynShortSL := math.min(dynShortSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailSLs = close + atrTrailMult * atrTrail
dynShortSL := math.min(dynShortSL, trailSLs)
strategy.exit("Short Exit", "Short", stop = dynShortSL, limit = shortTP2)
//━━━━━━━━━━━━━━━━━━━
// 9. EXIT LOGIC – HYBRID MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Hybrid: Scalp + Runner
if isHybrid
// Scalp leg: full TP at TP1
if strategy.opentrades > 0
strategy.exit("LScalp TP", "LongScalp", stop = longRunSL, limit = longRunTP1)
// Runner leg
if strategy.position_size > 0 and not na(longRunEntry)
if not longRunBE and high >= longRunTP1
longRunBE := true
float dynLongRunSL = longRunBE ? longRunEntry : longRunSL
if longRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longRunEntry
dynLongRunSL := math.max(dynLongRunSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailRunSL = close - atrTrailMult * atrTrail
dynLongRunSL := math.max(dynLongRunSL, trailRunSL)
strategy.exit("LRun TP", "LongRun", stop = dynLongRunSL, limit = longRunTP2)
// SHORT – Hybrid: Scalp + Runner
if isHybrid
if strategy.opentrades > 0
strategy.exit("SScalp TP", "ShortScalp", stop = shortRunSL, limit = shortRunTP1)
if strategy.position_size < 0 and not na(shortRunEntry)
if not shortRunBE and low <= shortRunTP1
shortRunBE := true
float dynShortRunSL = shortRunBE ? shortRunEntry : shortRunSL
if shortRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortRunEntry
dynShortRunSL := math.min(dynShortRunSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailRunSLs = close + atrTrailMult * atrTrail
dynShortRunSL := math.min(dynShortRunSL, trailRunSLs)
strategy.exit("SRun TP", "ShortRun", stop = dynShortRunSL, limit = shortRunTP2)
//━━━━━━━━━━━━━━━━━━━
// 10. RESET STATE WHEN FLAT
//━━━━━━━━━━━━━━━━━━━
if strategy.position_size == 0
longEntry := na
shortEntry := na
longBE := false
shortBE := false
longRunEntry := na
shortRunEntry := na
longRunBE := false
shortRunBE := false
//━━━━━━━━━━━━━━━━━━━
// 11. VISUAL ENTRY MARKERS
//━━━━━━━━━━━━━━━━━━━
plotshape(longSignal, title = "Long Signal", style = shape.triangleup,
location = location.belowbar, color = color.lime, size = size.tiny, text = "L")
plotshape(shortSignal, title = "Short Signal", style = shape.triangledown,
location = location.abovebar, color = color.red, size = size.tiny, text = "S")
ICT Quant-Core: Liquidity Intelligence [Dual-Engine]🔥 THE ULTIMATE LIQUIDITY FILTERING ENGINE
Most SMC traders lose money because they "catch falling knives" on every local wick. This algorithm solves this problem by using DUAL-CORE logic and a signal quality scoring system.
This is no ordinary pivot indicator.
⚙️ HOW DOES IT WORK? (DUAL-CORE LOGIC)
The algorithm analyzes the market on two levels simultaneously:
1️⃣ MACRO CORE (Lookback 50 - "WHALE 🐋")
Tracks key levels from recent weeks/months.
This is where institutions build their positions.
Signals from this core have the highest priority (Score 10/10).
2️⃣ LOCAL CORE (Lookback 20 - "ROACH 🐟")
Tracks internal market structure and noise.
Signals are filtered by the Main Trend. If the trend is down, Local Longs are marked as "TRAP."
🧠 SMART FILTERS (QUANT LAYERS)
Instead of entering on every line touch, the script requires confirmation:
✅ RECLAIM LOGIC: Price must close back above/below the liquidity level (Swing Failure Pattern).
✅ RVOL FILTER: Requires relative volume > 1.2x the average (institutional track).
✅ SCORING SYSTEM (0-10): Each signal receives a score.
- 10/10: Macro Grab in line with the trend + high volume.
- 3/10: Local Grab against the trend (risky).
📊 ANALYTICAL DASHBOARD
In the lower right corner, you'll find the "Command Center":
- Trend Status (Distribution/Accumulation)
- Whale's Last Move (Price and Direction)
- Current Tactics (e.g., "Ignore Longs, Search for Shorts")
- Filter Status (RSI, Volume, Reclaim)
🚀 HOW TO USE IT?
1. Set the H4 timeframe.
2. Wait for a signal with a rating > 7/10.
3. Ignore "Fish/Local" signals (small icons) if they contradict the Dashboard color.
4. Entry occurs only after the candle closes (Reclaim).
Cold Brew Ranges🧭 Core Logic and Calculation
The fundamental logic for each range (OR and CR) is identical:
Time Definition: Each range is defined by a specific Start Time and a fixed 30-second duration. The timestamp function, using the "America/New_York" time zone, is used to calculate the exact start time in Unix milliseconds for the current day.
Example: t0200 = timestamp(TZ, yC, mC, dC, 2, 0, 0) sets the start time for the 02:00 OR to 2:00:00 AM NY time.
Range Data Collection: The indicator uses the request.security_lower_tf() function to collect the High (hArr) and Low (lArr) prices of all bars that fall within the defined 30-second window, using a user-specified, sub-chart-timeframe (openrangetime, defaulted to "1" second, "30S", or "5" minutes). This ensures high precision in capturing the exact high and low during the 30-second window.
High/Low Determination: It iteratively finds the absolute highest price (OR_high) and the absolute lowest price (OR_low) recorded by the bars during that 30-second window.
Range Locking: Once the current chart bar's time (lastTs) passes the 30-second End Time (tEnd), the High and Low are locked (OR_locked = true), meaning the range calculation is complete for the day.
Drawing: Upon locking, the range is drawn on the chart using line.new for the High, Low, and Equilibrium, and box.new for the shaded fill. The lines are extended to a subsequent time anchor point (e.g., the 02:00 OR is extended to 08:20, the 09:30 OR is extended to 16:00).
Equilibrium (EQ): This is calculated as the simple average (midpoint) of the High and Low of the range.
EQ=
2
OR_High+OR_Low
⏰ Defined Trading Ranges
The indicator defines and tracks the following specific 30-second ranges:
Range Name Type Start Time (NY) Line Extension End Time (NY) Common Market Context
02:00 OR Opening 02:00:00 08:20:00 Asian/European Market Overlap
08:20 OR Opening 08:20:00 16:00:00 Pre-New York Open
09:30 OR Opening 09:30:00 16:00:00 New York Stock Exchange Open (Most significant OR)
18:00 OR Opening 18:00:00 20:00:00 Futures Market Open (Sunday/Monday)
20:00 OR Opening 20:00:00 Next Day's session start Asian Session Start
15:50 CR Closing 15:50:00 20:00:00 New York Close Range
⚙️ Key User Inputs and Customization
The script offers extensive control over which ranges are displayed and how they are visualized:
Range Time & History
openrangetime: Sets the sub-timeframe (e.g., "1" for 1 second) used to calculate the precise High/Low of the 30-second range. Crucial for accuracy.
showHistory: A toggle to show the ranges from previous days (up to a histCap of 50 days).
Range Toggles and Styling
On/Off Toggles: Independent input.bool (e.g., OR_0200_on) to enable or disable the display of each individual range.
Colors & Width: Separate color and width inputs for the High/Low lines (hlC), the Equilibrium line (eqC), and the background fill (fillC) for each range.
Line Styles: Global inputs for the line styles of High/Low (lineStyleInput) and Equilibrium (eqLineStyleInput) lines (Solid, Dotted, or Dashed).
showFill: Global toggle to enable the shaded background box that highlights the area between the High and Low.
Extensions
The script calculates and plots extensions (multiples of the initial range) above the High and below the Low.
showExt: Toggles the visibility of the extension lines.
useRangeMultiples: If true, the step size for each extension level is equal to the initial range size:
Step=Range=OR_High−OR_Low
If false, the step size is a fixed value defined by stepPts (e.g., 60.0 points, which is a common value for NQ futures).
stepCnt: Determines how many extension levels (multiples) are drawn above and below the range (default is 10).
📈 Trading Strategy Implications
The Cold Brew Ranges indicator is a tool for session-based support and resistance and range breakout/reversal strategies.
Key Support/Resistance: The High and Low of these defined opening ranges often act as strong, predefined price levels. Traders look for price rejection off these boundaries or a breakout with conviction.
Equilibrium (Midpoint): The EQ often represents a fair value for that specific session's opening. Movements away from it are seen as opportunities, and a return to it is common.
Extensions: The range extensions serve as potential profit targets or stronger, layered support/resistance levels if the market trends aggressively after the opening range is set.
The core idea is that the activity in the first 30 seconds of a significant trading session (like the NYSE or a market session open) sets a bias and initial boundary for the trading period that follows.
Absorption RatioThe Hidden Connections Between Markets
Financial markets are not isolated islands. When panic spreads, seemingly unrelated assets suddenly begin moving in lockstep. Stocks, bonds, commodities, and currencies that normally provide diversification benefits start falling together. This phenomenon, where correlations spike during crises, has devastated portfolios throughout history. The Absorption Ratio provides a quantitative measure of this hidden fragility.
The concept emerged from research at State Street Associates, where Mark Kritzman, Yuanzhen Li, Sebastien Page, and Roberto Rigobon developed a novel application of principal component analysis to measure systemic risk. Their 2011 paper in the Journal of Portfolio Management demonstrated that when markets become tightly coupled, the variance explained by the first few principal components increases dramatically. This concentration of variance signals elevated systemic risk.
What the Absorption Ratio Measures
Principal component analysis, or PCA, is a statistical technique that identifies the underlying factors driving a set of variables. When applied to asset returns, the first principal component typically captures broad market movements. The second might capture sector rotations or risk-on/risk-off dynamics. Additional components capture increasingly idiosyncratic patterns.
The Absorption Ratio measures the fraction of total variance absorbed or explained by a fixed number of principal components. In the original research, Kritzman and colleagues used the first fifth of the eigenvectors. When this fraction is high, it means a small number of factors are driving most of the market movements. Assets are moving together, and diversification provides less protection than usual.
Consider an analogy: imagine a room full of people having independent conversations. Each person speaks at different times about different topics. The total "variance" of sound in the room comes from many independent sources. Now imagine a fire alarm goes off. Suddenly everyone is talking about the same thing, moving in the same direction. The variance is now dominated by a single factor. The Absorption Ratio captures this transition from diverse, independent behavior to unified, correlated movement.
The Implementation Approach
TradingView does not support matrix algebra required for true principal component analysis. This implementation uses a closely related proxy: the average absolute correlation across a universe of major asset classes. This approach captures the same underlying phenomenon because when assets are highly correlated, the first principal component explains more variance by mathematical necessity.
The asset universe includes eight ETFs representing major investable categories: SPY and QQQ for large cap US equities, IWM for small caps, EFA for developed international markets, EEM for emerging markets, TLT for long-term treasuries, GLD for gold, and USO for oil. This selection provides exposure to equities across geographies and market caps, plus traditional diversifying assets.
From eight assets, there are twenty-eight unique pairwise correlations. The indicator calculates each using a rolling window, takes the absolute value to measure coupling strength regardless of direction, and averages across all pairs. This average correlation is then transformed to match the typical range of published Absorption Ratio values.
The transformation maps zero average correlation to an AR of 0.50 and perfect correlation to an AR of 1.00. This scaling aligns with empirical observations that the AR typically fluctuates between 0.60 and 0.95 in practice.
Interpreting the Regimes
The indicator classifies systemic risk into four regimes based on AR levels.
The Extreme regime occurs when the AR exceeds 0.90. At this level, nearly all asset classes are moving together. Diversification has largely failed. Historically, this regime has coincided with major market dislocations: the 2008 financial crisis, the 2020 COVID crash, and significant correction periods. Portfolios constructed under normal correlation assumptions will experience larger drawdowns than expected.
The High regime, between 0.80 and 0.90, indicates elevated systemic risk. Correlations across asset classes are above normal. This often occurs during the build-up to stress events or during volatile periods where fear is spreading but has not reached panic levels. Risk management should be more conservative.
The Normal regime covers AR values between 0.60 and 0.80. This represents typical market conditions where some correlation exists between assets but diversification still provides meaningful benefits. Standard portfolio construction assumptions are reasonable.
The Low regime, below 0.60, indicates that assets are behaving relatively independently. Diversification is working well. Idiosyncratic factors dominate returns rather than systematic risk. This environment is favorable for active management and security selection strategies.
The Relationship to Portfolio Construction
The implications for portfolio management are significant. Modern portfolio theory assumes correlations are stable and uses historical estimates to construct efficient portfolios. The Absorption Ratio reveals that this assumption is violated precisely when it matters most.
When AR is elevated, the effective number of independent bets in a diversified portfolio shrinks. A portfolio holding stocks, bonds, commodities, and real estate might behave as if it holds only one or two positions during high AR periods. Position sizing based on normal correlation estimates will underestimate portfolio risk.
Conversely, when AR is low, true diversification opportunities expand. The same nominal portfolio provides more independent return streams. Risk can be deployed more aggressively while maintaining the same effective exposure.
Component Analysis
The indicator separately tracks equity correlations and cross-asset correlations. These components tell different stories about market structure.
Equity correlations measure coupling within the stock market. High equity correlation indicates broad risk-on or risk-off behavior where all stocks move together. This is common during both rallies and selloffs driven by macroeconomic factors. Stock pickers face headwinds when equity correlations are elevated because individual company fundamentals matter less than market beta.
Cross-asset correlations measure coupling between different asset classes. When stocks, bonds, and commodities start moving together, traditional hedges fail. The classic 60/40 stock/bond portfolio, for example, assumes negative or low correlation between equities and treasuries. When cross-asset correlation spikes, this assumption breaks down.
During the 2022 market environment, for instance, both stocks and bonds fell significantly as inflation and rate hikes affected all assets simultaneously. High cross-asset correlation warned that the usual defensive allocations would not provide their expected protection.
Mean Reversion Characteristics
Like most risk metrics, the Absorption Ratio tends to mean-revert over time. Extremely high AR readings eventually normalize as panic subsides and assets return to more independent behavior. Extremely low readings tend to rise as some level of systematic risk always reasserts itself.
The indicator tracks AR in statistical terms by calculating its Z-score relative to the trailing distribution. When AR reaches extreme Z-scores, the probability of normalization increases. This creates potential opportunities for strategies that bet on mean reversion in systemic risk.
A buy signal triggers when AR recovers from extremely elevated levels, suggesting the worst of the correlation spike may be over. A sell signal triggers when AR rises from unusually low levels, warning that complacency about diversification benefits may be excessive.
Momentum and Trend
The rate of change in AR carries information beyond the absolute level. Rapidly rising AR suggests correlations are increasing and systemic risk is building. Even if AR has not yet reached the high regime, acceleration in coupling should prompt increased vigilance.
Falling AR momentum indicates normalizing conditions. Correlations are decreasing and assets are returning to more independent behavior. This often occurs in the recovery phase following stress events.
Practical Application
For asset allocators, the AR provides guidance on how much diversification benefit to expect from a given allocation. During high AR periods, reducing overall portfolio risk makes sense because the usual diversifiers provide less protection. During low AR periods, standard or even aggressive allocations are more appropriate.
For risk managers, the AR serves as an early warning indicator. Rising AR often precedes large market moves and volatility spikes. Tightening risk limits before correlations reach extreme levels can protect capital.
For systematic traders, the AR provides a regime filter. Mean reversion strategies may work better during high AR periods when panics create overshooting. Momentum strategies may work better during low AR periods when trends can develop independently across assets.
Limitations and Considerations
The proxy methodology introduces some approximation error relative to true PCA-based AR calculations. The asset universe, while representative, does not include all possible diversifiers. Correlation estimates are inherently backward-looking and can change rapidly.
The transformation from average correlation to AR scale is calibrated to match typical published ranges but is not mathematically equivalent to the eigenvalue ratio. Users should interpret levels directionally rather than as precise measurements.
Correlation regimes can persist longer than expected. Mean reversion signals indicate elevated probability of normalization but do not guarantee timing. High AR can remain elevated throughout extended crisis periods.
References
Kritzman, M., Li, Y., Page, S., and Rigobon, R. (2011). Principal Components as a Measure of Systemic Risk. Journal of Portfolio Management, 37(4), 112-126.
Kritzman, M., and Li, Y. (2010). Skulls, Financial Turbulence, and Risk Management. Financial Analysts Journal, 66(5), 30-41.
Billio, M., Getmansky, M., Lo, A., and Pelizzon, L. (2012). Econometric Measures of Connectedness and Systemic Risk in the Finance and Insurance Sectors. Journal of Financial Economics, 104(3), 535-559.
Equal Highs & Lows Strategy // ------------------------------------------------------------------------------
// 🧠 THE MARKET PSYCHOLOGY (WHY THIS WORKS):
// ------------------------------------------------------------------------------
// 1. THE MAGNET THEORY:
// "Equal Highs" (EQH) and "Equal Lows" (EQL) are not random. They represent
// Retail Support and Resistance. Retail traders are taught to put Stop Losses
// just above Double Tops or just below Double Bottoms.
// - Therefore, these lines represent massive pools of LIQUIDITY (Money).
// - Price is often engineered to move toward these lines to "unlock" that money.
//
// 2. THE INSTITUTIONAL TRAP (STOP HUNTS):
// Institutions need liquidity to fill large orders without slippage.
// - To Buy massive amounts, they need many Sellers -> They push price BELOW EQL
// to trigger retail Sell Stops.
// - To Sell massive amounts, they need many Buyers -> They push price ABOVE EQH
// to trigger retail Buy Stops.
//
// 3. THE STRATEGY (TURTLE SOUP):
// We do not trade the initial touch. We wait for the "Sweep & Reclaim".
// - Bullish Signal (GRAB ⬆): Price drops below the Green Line (EQL), grabs the
// stops, but buyers step in and force the candle to CLOSE back above the line.
// - Bearish Signal (GRAB ⬇): Price spikes above the Red Line (EQH), grabs the
// stops, but sellers step in and force the candle to CLOSE back below the line.
// ------------------------------------------------------------------------------
Setup Keltner Banda 3 e 5 - MMS + RSI + Distância Tabela
📊 Indicator Overview: Keltner Bands + RSI + Distance Table
This custom TradingView indicator combines three powerful tools into a single, visually intuitive setup:
Keltner Channels (Bands 3x and 5x ATR)
Relative Strength Index (RSI)
Dynamic Table Displaying RSI and Price Distance from Moving Average (MMS)
🔧 Components and Functions
1. Keltner Channels (3x and 5x ATR)
Based on a Simple Moving Average (MMS) and Average True Range (ATR).
Two sets of bands are plotted:
3x ATR Bands: Used for moderate volatility signals.
5x ATR Bands: Used for high volatility extremes.
Visual fills between bands help identify overextended price zones.
2. RSI (Relative Strength Index)
Measures momentum and potential reversal zones.
Customizable overbought (default 70) and oversold (default 30) levels.
RSI values are color-coded in the table:
Green for RSI ≤ 30 (oversold)
Blue for 30 < RSI ≤ 70 (neutral)
Red for RSI > 70 (overbought)
3. Distance Table (Price vs. MMS)
Displays the real-time distance between the current price and the MMS:
In points (absolute difference)
In percentage (relative to MMS)
Helps traders assess how far price has deviated from its mean.
📈 How to Use
Trend Reversal Signals
Look for price crossing back inside the 3x or 5x Keltner Bands.
Confirm with RSI:
RSI > 70 + price re-entering from above = potential short
RSI < 30 + price re-entering from below = potential long
Volatility Zones
Price outside the 5x band indicates extreme movement.
Use this to anticipate mean reversion or breakout continuation.
Table Insights
Monitor RSI and price distance in real time.
Use color cues to quickly assess momentum and stretch.
⚙️ Customization
Adjustable parameters for:
MMS period
ATR multipliers
RSI period and thresholds
Table position on chart
Fill colors between bands
This indicator is ideal for traders who want a clean, data-rich visual tool to track volatility, momentum, and price deviation in one place.
Credit Spread RegimeThe Credit Market as Economic Barometer
Credit spreads are among the most reliable leading indicators of economic stress. When corporations borrow money by issuing bonds, investors demand a premium above the risk-free Treasury rate to compensate for the possibility of default. This premium, known as the credit spread, fluctuates based on perceptions of economic health, corporate profitability, and systemic risk.
The relationship between credit spreads and economic activity has been studied extensively. Two papers form the foundation of this indicator. Pierre Collin-Dufresne, Robert Goldstein, and Spencer Martin published their influential 2001 paper in the Journal of Finance, documenting that credit spread changes are driven by factors beyond firm-specific credit quality. They found that a substantial portion of spread variation is explained by market-wide factors, suggesting credit spreads contain information about aggregate economic conditions.
Simon Gilchrist and Egon Zakrajsek extended this research in their 2012 American Economic Review paper, introducing the concept of the Excess Bond Premium. They demonstrated that the component of credit spreads not explained by default risk alone is a powerful predictor of future economic activity. Elevated excess spreads precede recessions with remarkable consistency.
What Credit Spreads Reveal
Credit spreads measure the difference in yield between corporate bonds and Treasury securities of similar maturity. High yield bonds, also called junk bonds, carry ratings below investment grade and offer higher yields to compensate for greater default risk. Investment grade bonds have lower yields because the probability of default is smaller.
The spread between high yield and investment grade bonds is particularly informative. When this spread widens, investors are demanding significantly more compensation for taking on credit risk. This typically indicates deteriorating economic expectations, tighter financial conditions, or increasing risk aversion. When the spread narrows, investors are comfortable accepting lower premiums, signaling confidence in corporate health.
The Gilchrist-Zakrajsek research showed that credit spreads contain two distinct components. The first is the expected default component, which reflects the probability-weighted cost of potential defaults based on corporate fundamentals. The second is the excess bond premium, which captures additional compensation demanded beyond expected defaults. This excess premium rises when investor risk appetite declines and financial conditions tighten.
The Implementation Approach
This indicator uses actual option-adjusted spread data from the Federal Reserve Economic Database (FRED), available directly in TradingView. The ICE BofA indices represent the industry standard for measuring corporate bond spreads.
The primary data sources are FRED:BAMLH0A0HYM2, the ICE BofA US High Yield Index Option-Adjusted Spread, and FRED:BAMLC0A0CM, the ICE BofA US Corporate Index Option-Adjusted Spread for investment grade bonds. These indices measure the spread of corporate bonds over Treasury securities of similar duration, expressed in basis points.
Option-adjusted spreads account for embedded options in corporate bonds, providing a cleaner measure of credit risk than simple yield spreads. The methodology developed by ICE BofA is widely used by institutional investors and central banks for monitoring credit conditions.
The indicator offers two modes. The HY-IG excess spread mode calculates the difference between high yield and investment grade spreads, isolating the pure compensation for below-investment-grade credit risk. This measure is less affected by broad interest rate movements. The HY-only mode tracks the absolute high yield spread, capturing both credit risk and the overall level of risk premiums in the market.
Interpreting the Regimes
Credit conditions are classified into four regimes based on Z-scores calculated from the spread proxy.
The Stress regime occurs when spreads reach extreme levels, typically above a Z-score of 2.0. At this point, credit markets are pricing in significant default risk and economic deterioration. Historically, stress regimes have coincided with recessions, financial crises, and major market dislocations. The 2008 financial crisis, the 2011 European debt crisis, the 2016 commodity collapse, and the 2020 pandemic all triggered credit stress regimes.
The Elevated regime, between Z-scores of 1.0 and 2.0, indicates above-normal risk premiums. Credit conditions are tightening. This often occurs in the build-up to stress events or during periods of uncertainty. Risk management should be heightened, and exposure to credit-sensitive assets may be reduced.
The Normal regime covers Z-scores between -1.0 and 1.0. This represents typical credit conditions where spreads fluctuate around historical averages. Standard investment approaches are appropriate.
The Low regime occurs when spreads are compressed below a Z-score of -1.0. Investors are accepting below-average compensation for credit risk. This can indicate complacency, strong economic confidence, or excessive risk-taking. While often associated with favorable conditions, extremely tight spreads sometimes precede sudden reversals.
Credit Cycle Dynamics
Beyond static regime classification, the indicator tracks the direction and acceleration of spread movements. This reveals where credit markets stand in the credit cycle.
The Deteriorating phase occurs when spreads are elevated and continuing to widen. Credit conditions are actively worsening. This phase often precedes or coincides with economic downturns.
The Recovering phase occurs when spreads are elevated but beginning to narrow. The worst may be over. Credit conditions are improving from stressed levels. This phase often accompanies the early stages of economic recovery.
The Tightening phase occurs when spreads are low and continuing to compress. Credit conditions are very favorable and improving further. This typically occurs during strong economic expansions but may signal building complacency.
The Loosening phase occurs when spreads are low but beginning to widen from compressed levels. The extremely favorable conditions may be normalizing. This can be an early warning of changing sentiment.
Relationship to Economic Activity
The predictive power of credit spreads for economic activity is well-documented. Gilchrist and Zakrajsek found that the excess bond premium predicts GDP growth, industrial production, and unemployment rates over horizons of one to four quarters.
When credit spreads spike, the cost of corporate borrowing increases. Companies may delay or cancel investment projects. Reduced investment leads to slower growth and eventually higher unemployment. The transmission mechanism runs from financial conditions to real economic activity.
Conversely, tight credit spreads lower borrowing costs and encourage investment. Easy credit conditions support economic expansion. However, excessively tight spreads may encourage over-leveraging, planting seeds for future stress.
Practical Application
For equity investors, credit spreads provide context for market risk. Equities and credit often move together because both reflect corporate health. Rising credit spreads typically accompany falling stock prices. Extremely wide spreads historically have coincided with equity market bottoms, though timing the reversal remains challenging.
For fixed income investors, spread regimes guide sector allocation decisions. During stress regimes, flight to quality favors Treasuries over corporates. During low regimes, spread compression may offer limited additional return for credit risk, suggesting caution on high yield.
For macro traders, credit spreads complement other indicators of financial conditions. Credit stress often leads equity volatility, providing an early warning signal. Cross-asset strategies may use credit regime as a filter for position sizing.
Limitations and Considerations
FRED data updates with a lag, typically one business day for the ICE BofA indices. For intraday trading decisions, more current proxies may be necessary. The data is most reliable on daily timeframes.
Credit spreads can remain at extreme levels for extended periods. Mean reversion signals indicate elevated probability of normalization but do not guarantee timing. The 2008 crisis saw spreads remain elevated for many months before normalizing.
The indicator is calibrated for US credit markets. Application to other regions would require different data sources such as European or Asian credit indices. The relationship between spreads and subsequent economic activity may vary across market cycles and structural regimes.
References
Collin-Dufresne, P., Goldstein, R.S., and Martin, J.S. (2001). The Determinants of Credit Spread Changes. Journal of Finance, 56(6), 2177-2207.
Gilchrist, S., and Zakrajsek, E. (2012). Credit Spreads and Business Cycle Fluctuations. American Economic Review, 102(4), 1692-1720.
Krishnamurthy, A., and Muir, T. (2017). How Credit Cycles across a Financial Crisis. Working Paper, Stanford University.
RVOL + Volume Z-Score (Textbook)This indicator is a relative-volume and “volume anomaly” dashboard designed to help you quickly spot when a ticker is actually in-play versus simply drifting on normal activity. It plots standard volume bars (colored by up/down candles) and overlays multiple optional smoothers of volume (SMA, LSMA/linear-regression MA, HMA, ALMA) so you can see whether participation is expanding or fading across different smoothing styles. It also calculates RVOL (current bar volume divided by the average volume over a user-defined lookback) and displays RVOL (and Z) in a small table for quick reference.
The core feature is a textbook volume z-score: Z=(V−SMA(V,N))/StDev(V,N)
This measures how far the current bar’s volume is from its recent average in standard-deviation units, making it easy to filter for genuinely unusual volume. The script plots mean + 1σ and mean + 2σ threshold bands and can highlight “anomaly” volume bars when Z exceeds your chosen σ thresholds (default 1σ for broader detection, with alerts available for 1σ/2σ). Use it as a participation filter: combine high RVOL / high Z with your price structure (key levels, VWAP, trend) to validate breakouts or identify high-conviction reversal/flush events.
IMPORTANT Levels by SBImportant levels by SB based on gann levels.One can plot these levels once on the chart and can work on these levels .When ever market market come at any of these levels .User can wait for the price action and accordingly user can get inside the trade
The Rumer's Box Theory“The Rumer's Box Theory” is a visual trading indicator designed to help traders quickly identify the previous daily candle’s high and low ranges across all timeframes. The indicator draws a purple box spanning the previous day’s high to low, with a blue horizontal line at the 50% midpoint for easy reference.
Indian Scalper 2025 – PSAR + SMA50 + RSI≤50 + High Volume (75%)Best 1-min / 2-min scalping strategy for NIFTY, BANKNIFTY, FINNIFTY & liquid stocks in 2025
✓ PSAR flip + SMA-50 trend filter
✓ RSI ≤50 (avoids chasing)
✓ Only high-volume candles (bright colour)
✓ Loud mobile alerts with price & SL
✓ 1:2+ RR with PSAR trailing
Works like magic 9:15–11:30 AM and 2–3:20 PM
Made with love for the Indian trading community ♥






















