OPEN-SOURCE SCRIPT
Updated VIX Range Levels (Rule of 16)

VIX Range Levels — Rule of 16
What this indicator does-
This indicator uses India VIX (or any VIX-class index) to plot statistically derived expected move levels for the current trading day directly on your price chart. It draws six price levels — at 1×, 1.5×, and 2× standard deviations above and below the prior session's close — with colour-coded fills between each band.
The Rule of 16 — explained:
VIX is quoted as an annualized implied volatility, expressed as a percentage. To translate that annual figure into a single day's expected price range, we divide by the square root of the number of trading days in a year:
Daily Expected Move (%) = VIX ÷ √252 ≈ VIX ÷ 16
√252 ≈ 15.87, which practitioners conventionally round to 16 — hence the name.
Worked example:
If INDIAVIX closes at 14.40:
Daily Move = 14.40 ÷ 16 = 0.90%
On a Nifty level of 22,000, that is ±198 points for the 1σ (sigma) band.
Statistical interpretation of the bands-
The Rule of 16 assumes log-normal returns and uses a one standard deviation (1σ) framework:
Band Multiplier Probability price stays inside Inner (solid lines)1×~68%Middle (dashed)1.5×~87%Outer (dashed)2×~95%
In plain English: on any given day, price should stay within the solid lines roughly 7 out of 10 sessions, within the dashed 1.5× lines about 9 out of 10 sessions, and within the outer 2× lines about 19 out of 20 sessions — assuming markets are pricing volatility fairly.
Important caveat: These are probabilistic ranges derived from implied volatility, not guarantees. VIX measures the market's expectation of future volatility, not its certainty. On high-VIX days, ranges will be wide; on low-VIX days, they will be narrow.
How to identify potential Tops and Bottoms:
The bands are not just risk levels — they are mean-reversion anchors. Here is how experienced traders use them:
🔴 Potential Top signals-
Price tags or exceeds the 1× upper level (solid red line) on the first push of the day — especially in the opening hour. A clean touch with a rejection candle (spinning top, doji, shooting star) at this level is a high-probability fade setup.
Price reaches the 1.5× upper level intraday. Statistically, this is an outlier move. Look for volume exhaustion, a lower-high on a smaller timeframe, or a bearish divergence on RSI/MACD to confirm a reversal.
Price closes above the 2× upper level. This is a rare ~5% event. It signals either a genuine breakout (news-driven) or an extreme overextension due for a sharp snapback the following session.
🟢 Potential Bottom signals-
Price dips to the 1× lower level (solid green line) and holds — particularly if the broader market trend is up. A bullish engulfing or hammer candle at this level, especially on above-average volume, is a classic intraday reversal signal.
Price hits the 1.5× lower level with declining sell-side momentum. Watch for positive divergence on shorter timeframes or a sudden spike in buying volume as confirmation.
Price closes below the 2× lower level. Similar to the upper equivalent — either a true breakdown or an exhaustion move. Gap-up opens the following session from this zone are historically common.
Mid-line (dotted yellow — prior close)-
The prior session's close acts as the neutral axis. Price hovering above it indicates relative strength; price gravitating below it indicates weakness. Failed attempts to reclaim the mid-line after a breakdown are bearish; decisive reclaims are bullish.
Band fill colour guide-
Fill Meaning Grey (inner, 1× band) Normal expected range — most activity happens here Orange (middle, 1.5× band) Extended move — caution zone, watch for reversals Red (outer, 2× band) Extreme move — high-probability mean-reversion area
Settings:
Parameter Description Volatility Multiplier Scale all bands up or down (0.5–2.0). Use < 1.0 for low-volatility markets; > 1.0 to account for persistent trending conditions Upper / Lower Colour for resistance and support lines
Notes on data-
Levels are calculated using yesterday's closing VIX to avoid look-ahead bias (lookahead_off).
The anchor price is yesterday's close of the charted instrument. Lines start from the first bar of the current trading day so zones correctly represent today's session range.
Works on any intraday timeframe (1m, 5m, 15m, hourly).
Not meaningful on daily charts.
Best used with-
Price Action — candlestick patterns at band extremes
Volume Profile — confluence of VIX levels with high-volume nodes
RSI / MACD — divergences at band touches to confirm reversal intent
Order Flow — absorption or exhaustion at the outer bands
This indicator does not repaint. All calculations are based on confirmed prior-session data.
These are popular market calculations & are in no way meant to act as a standalone trading system, always research before investing. If you found it useful, please boost the script.Happy trading !!
What this indicator does-
This indicator uses India VIX (or any VIX-class index) to plot statistically derived expected move levels for the current trading day directly on your price chart. It draws six price levels — at 1×, 1.5×, and 2× standard deviations above and below the prior session's close — with colour-coded fills between each band.
The Rule of 16 — explained:
VIX is quoted as an annualized implied volatility, expressed as a percentage. To translate that annual figure into a single day's expected price range, we divide by the square root of the number of trading days in a year:
Daily Expected Move (%) = VIX ÷ √252 ≈ VIX ÷ 16
√252 ≈ 15.87, which practitioners conventionally round to 16 — hence the name.
Worked example:
If INDIAVIX closes at 14.40:
Daily Move = 14.40 ÷ 16 = 0.90%
On a Nifty level of 22,000, that is ±198 points for the 1σ (sigma) band.
Statistical interpretation of the bands-
The Rule of 16 assumes log-normal returns and uses a one standard deviation (1σ) framework:
Band Multiplier Probability price stays inside Inner (solid lines)1×~68%Middle (dashed)1.5×~87%Outer (dashed)2×~95%
In plain English: on any given day, price should stay within the solid lines roughly 7 out of 10 sessions, within the dashed 1.5× lines about 9 out of 10 sessions, and within the outer 2× lines about 19 out of 20 sessions — assuming markets are pricing volatility fairly.
Important caveat: These are probabilistic ranges derived from implied volatility, not guarantees. VIX measures the market's expectation of future volatility, not its certainty. On high-VIX days, ranges will be wide; on low-VIX days, they will be narrow.
How to identify potential Tops and Bottoms:
The bands are not just risk levels — they are mean-reversion anchors. Here is how experienced traders use them:
🔴 Potential Top signals-
Price tags or exceeds the 1× upper level (solid red line) on the first push of the day — especially in the opening hour. A clean touch with a rejection candle (spinning top, doji, shooting star) at this level is a high-probability fade setup.
Price reaches the 1.5× upper level intraday. Statistically, this is an outlier move. Look for volume exhaustion, a lower-high on a smaller timeframe, or a bearish divergence on RSI/MACD to confirm a reversal.
Price closes above the 2× upper level. This is a rare ~5% event. It signals either a genuine breakout (news-driven) or an extreme overextension due for a sharp snapback the following session.
🟢 Potential Bottom signals-
Price dips to the 1× lower level (solid green line) and holds — particularly if the broader market trend is up. A bullish engulfing or hammer candle at this level, especially on above-average volume, is a classic intraday reversal signal.
Price hits the 1.5× lower level with declining sell-side momentum. Watch for positive divergence on shorter timeframes or a sudden spike in buying volume as confirmation.
Price closes below the 2× lower level. Similar to the upper equivalent — either a true breakdown or an exhaustion move. Gap-up opens the following session from this zone are historically common.
Mid-line (dotted yellow — prior close)-
The prior session's close acts as the neutral axis. Price hovering above it indicates relative strength; price gravitating below it indicates weakness. Failed attempts to reclaim the mid-line after a breakdown are bearish; decisive reclaims are bullish.
Band fill colour guide-
Fill Meaning Grey (inner, 1× band) Normal expected range — most activity happens here Orange (middle, 1.5× band) Extended move — caution zone, watch for reversals Red (outer, 2× band) Extreme move — high-probability mean-reversion area
Settings:
Parameter Description Volatility Multiplier Scale all bands up or down (0.5–2.0). Use < 1.0 for low-volatility markets; > 1.0 to account for persistent trending conditions Upper / Lower Colour for resistance and support lines
Notes on data-
Levels are calculated using yesterday's closing VIX to avoid look-ahead bias (lookahead_off).
The anchor price is yesterday's close of the charted instrument. Lines start from the first bar of the current trading day so zones correctly represent today's session range.
Works on any intraday timeframe (1m, 5m, 15m, hourly).
Not meaningful on daily charts.
Best used with-
Price Action — candlestick patterns at band extremes
Volume Profile — confluence of VIX levels with high-volume nodes
RSI / MACD — divergences at band touches to confirm reversal intent
Order Flow — absorption or exhaustion at the outer bands
This indicator does not repaint. All calculations are based on confirmed prior-session data.
These are popular market calculations & are in no way meant to act as a standalone trading system, always research before investing. If you found it useful, please boost the script.Happy trading !!
Release Notes
bug fixed:Change 1 — Replace prevClose line (~line 24):
pine// ❌ Old
float prevClose = close[1]
// ✅ New
float prevClose = request.security(syminfo.tickerid, "D", close, lookahead = barmerge.lookahead_off)
Change 2 — Fix VIX line (~line 25), remove [1]:
pine// ❌ Old
float vixValue = request.security("NSE:INDIAVIX", "D", close[1], lookahead = barmerge.lookahead_off)
// ✅ New
float vixValue = request.security("NSE:INDIAVIX", "D", close, lookahead = barmerge.lookahead_off)
Change 3 — Add na guard on draw block (~line 57):
pine// ❌ Old
if barstate.islast
// ✅ New
if barstate.islast and not na(prevClose) and not na(vixValue)
Release Notes
Added weekly & monthly rangeThe Rule of 16 uses divisor 16 for daily. For weekly it's approximately 7.2 sqrt(52) ≈ 7.21, and for monthly it's approximately 3.5 sqrt(12) ≈ 3.46, but approx 3.5.
Ternary lookup: Daily → 16.0, Weekly → 7.2 (√52), Monthly → 3.5 (√12 convention)
The active range mode is appended inside both floating labels so you always know which regime is plotted
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Open-source script
In true TradingView spirit, the creator of this script has made it open-source, so that traders can review and verify its functionality. Kudos to the author! While you can use it for free, remember that republishing the code is subject to our House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.