# Relative Volatility Index

A Volatility concept (Volatility estimators) in the LuxAlgo Library, with 1 indicator implementation.

## What is the Relative Volatility Index?

The Relative Volatility Index (RVI) is Donald Dorsey's 1993 oscillator that applies [RSI](https://www.luxalgo.com/library/concept/rsi/) arithmetic to volatility instead of price change. Each bar, a rolling standard deviation of closes (10 periods in the original article) is assigned to an up bucket if the close rose or a down bucket if it fell; both buckets are smoothed (Dorsey used 14 periods), and RVI is the smoothed up share times 100. The result oscillates between 0 and 100, with readings above 50 meaning volatility is being generated on up-closes.

Dorsey designed it as a confirmation tool, not a standalone signal: the 50 line marks whether volatility favors buyers or sellers, and his published rules only allowed trades in the direction RVI endorsed, with outer thresholds governing missed entries and exits. His 1995 refinement ran the calculation on highs and lows separately and averaged the two. Note the naming collision: the Relative Vigor Index shares the RVI abbreviation but is a different indicator entirely.

The construction has a subtlety worth spelling out: standard deviation is always positive, so the indicator's direction comes entirely from the assignment step. The dispersion number itself says how energetic the bar's neighborhood is; crediting it to the up or down bucket by the close's direction converts unsigned energy into a signed share. That is why RVI answers a question neither [ATR](https://www.luxalgo.com/library/concept/atr/) nor [realized volatility](https://www.luxalgo.com/library/concept/realized-volatility/) addresses. Those measure how much the market is moving; RVI measures which side the movement is working for, a directional dissection of volatility rather than another size gauge.

In the modern toolkit it slots naturally into compression-expansion workflows. Squeeze frameworks flag that energy is loading; RVI leaning above or below 50 during the compression is one read on which way that energy is tilted when it releases, a pairing squeeze traders make with [TTM Squeeze](https://www.luxalgo.com/library/concept/ttm-squeeze/) style tools. everget's Library port is the standard modern reference implementation, Regi_Lantern's RSI & RVI pairs it with its price-side sibling on one panel, and PuguForex's Directional Volatility and Volume extends the same idea with a participation check.

## How to identify the Relative Volatility Index

The construction is RSI with one substitution, so the checklist is short and the substitution is the point.

1. Compute a rolling standard deviation of closes, 10 periods in the original design.
2. Assign each bar's dispersion value to the up bucket when the close rose, the down bucket when it fell.
3. Smooth both buckets over the signal window, 14 periods in Dorsey's article, using RSI-style averaging.
4. Plot the up share times 100: a 0-100 oscillator whose 50 line divides buyer-favored from seller-favored volatility.
5. Read it Dorsey's way: 50 as the confirmation gate, the outer zones for missed-entry and exit refinements, and divergences against price as the warning layer.

## How it's calculated

A 0 to 100 oscillator that applies RSI arithmetic to standard deviation rather than price change, showing whether volatility sits on up moves or down moves.

```
sigma_t = stdev(C, s)_t
U_t = sigma_t if C_t > C_t-1, else 0
D_t = sigma_t if C_t < C_t-1, else 0
AvgU_t = EMA_n(U)_t
AvgD_t = EMA_n(D)_t
RVI_t = 100 × AvgU_t / (AvgU_t + AvgD_t)

  C_t: closing price at bar t
  s: standard deviation lookback in bars (default 10)
  stdev(C, s)_t: standard deviation of the last s closes ending at bar t
  sigma_t: the bar's volatility reading from that standard deviation
  U_t: volatility credited to up closes
  D_t: volatility credited to down closes
  n: smoothing length in bars (default 14)
  EMA_n: n-bar exponential moving average
  AvgU_t: smoothed up-side volatility
  AvgD_t: smoothed down-side volatility
  RVI_t: Relative Volatility Index at bar t, 0 to 100
  t: current bar
```

Donald Dorsey (1993); his 1995 revision computes the index on highs and lows separately and averages the two results.

Some platforms use Wilder smoothing in place of the EMA.

Distinct from the Relative Vigor Index, which shares the RVI acronym.

## How traders use it

- As a confirmation gate: momentum or trend entries are taken only when RVI agrees, above 50 for longs and below 50 for shorts, filtering out signals that lack volatility support.
- As a divergence tool: RVI making lower highs while price makes higher highs is read as [bearish divergence](https://www.luxalgo.com/library/concept/regular-bullish-bearish-divergence/) in the volatility backing the move, and the bullish mirror applies at lows.
- As a companion to RSI: RSI tracks the direction of price change, RVI tracks the direction of volatility, and agreement between the two is treated as a stronger [overbought/oversold](https://www.luxalgo.com/library/concept/overbought-oversold/) read than either gives alone.
- As a squeeze-direction tell: while a compression regime builds, RVI holding one side of 50 offers a lean on the eventual break's direction, treated as a tilt to be confirmed by the break itself rather than a forecast.
- Alongside volatility-level context: pairing RVI's directional share with a [volatility percentile or rank](https://www.luxalgo.com/library/concept/volatility-percentile-rank/) read distinguishes one-sided volatility in a dead market from one-sided volatility in an energetic one, which carry very different weight.

## Relative Volatility Index vs related measures

- **RSI** (https://www.luxalgo.com/library/concept/rsi/): Identical arithmetic, different fuel: RSI feeds signed price changes into its averages, RVI feeds unsigned dispersion assigned by close direction. RSI asks who is winning on price; RVI asks whose moves carry the energy. Dorsey built RVI to confirm, not replace, its sibling.
- **ATR** (https://www.luxalgo.com/library/concept/atr/): ATR measures the size of movement and deliberately ignores direction, which is why it serves stops and position sizing. RVI throws away none of the direction: it splits volatility by which side generated it. One sizes the storm, the other reports which way the wind blows.
- **BandWidth** (https://www.luxalgo.com/library/concept/bandwidth/): BandWidth tracks total volatility through the spread of Bollinger Bands, flagging compression and expansion regimes. RVI allocates volatility between buyers and sellers. They compose naturally: BandWidth says energy is loading or releasing, RVI says which side has been supplying it.

## FAQ

### Is the Relative Volatility Index the same as the Relative Vigor Index?

No, they only share initials. The Relative Volatility Index buckets standard deviation by whether the close rose or fell, measuring which side volatility favors. The Relative Vigor Index compares where price closes relative to its open, normalized by range, measuring closing strength. Check which one an implementation actually computes before relying on the abbreviation.

### How is the RVI different from RSI?

RSI feeds the size of price changes into its up and down averages, so it measures directional momentum. RVI feeds a rolling standard deviation into the same arithmetic, so it measures whether volatility is concentrated on up-closes or down-closes. Dorsey's stated intent was for RVI to confirm signals from other tools rather than replace RSI.

### What were Dorsey's original RVI trading rules?

Confirmation rules, not signals. In his published framework the 50 line was the gate: buy-side signals from other systems were honored only with RVI above 50, sell-side only below it, and supplementary thresholds in the 60s and 40s handled entering after a missed signal and standing down when volatility support faded. The exact numbers matter less than the design intent: RVI vetoes trades, it does not generate them.

### What are the standard RVI settings?

The original article used a 10-period standard deviation fed into 14-period RSI-style smoothing, and most platform implementations default close to that. Dorsey's 1995 refinement computes the whole indicator separately on highs and on lows and averages the two results, which smooths single-print distortions. As with any oscillator, shortening the windows buys speed with noise; the published settings are the sensible baseline.

### Does RVI above 50 mean the market is trending up?

Not by itself. It means recent volatility has been generated predominantly on rising closes, which supports an uptrend read but also prints during choppy conditions with sharp upward spikes. The honest use is directional evidence about volatility, weighed alongside structure and trend tools, exactly the supporting role its designer assigned it.

### Can the RVI be used for mean reversion?

The outer zones carry some exhaustion information: readings pinned near the extremes say volatility has been almost entirely one-sided, a condition that often precedes at least a pause. Dorsey's own rules used the outer thresholds mainly for exits rather than countertrend entries, and that remains the safer reading; fading a market purely because its volatility is one-sided fights conditions that can persist through entire trends.

## Implementations in the Library

- Relative Volatility Index (LuxAlgo, the standard build of the classic formula): https://www.luxalgo.com/library/indicator/relative-volatility-index/

## Related concepts

- Volatility Estimators: https://www.luxalgo.com/library/concept/volatility-estimators/
- Close-to-close Historical Volatility: https://www.luxalgo.com/library/concept/close-to-close-historical-volatility/
- EWMA Volatility: https://www.luxalgo.com/library/concept/ewma-volatility/
- Parkinson Estimator: https://www.luxalgo.com/library/concept/parkinson-estimator/
- Garman-Klass Estimator: https://www.luxalgo.com/library/concept/garman-klass-estimator/
- Rogers-Satchell Estimator: https://www.luxalgo.com/library/concept/rogers-satchell-estimator/
- Yang-Zhang Estimator: https://www.luxalgo.com/library/concept/yang-zhang-estimator/
- Garman-Klass–Yang-Zhang Hybrid: https://www.luxalgo.com/library/concept/garman-klass-yang-zhang-hybrid/
- Jump Detection: https://www.luxalgo.com/library/concept/jump-detection/
- Volatility Signature Plot: https://www.luxalgo.com/library/concept/volatility-signature-plot/

---

Source: https://www.luxalgo.com/library/concept/relative-volatility-index/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/