Relative Volatility Index (RVI)

Relative Volatility Index (RVI)

1. Introduction

The Relative Volatility Index (RVI) is a technical indicator designed to measure the direction and magnitude of volatility. Unlike other volatility indicators that focus solely on the level of price fluctuations (such as Bollinger Bands or ATR), the RVI incorporates the trend direction, making it a valuable tool for identifying potential trade opportunities.

Developed in 1993 by Donald Dorsey, the RVI is often used in combination with trend-following indicators to confirm signals. It resembles the Relative Strength Index (RSI) but instead of measuring price momentum, it focuses on volatility direction.

2. Calculating the RVI

The RVI is calculated based on the standard deviation of price changes, smoothed over a predefined period. Here’s the step-by-step process:

  1. Standard Deviation Calculation:

    • The indicator computes the standard deviation (σ) of price over a selected period.
    • The standard deviation can be calculated using either the population or sample method.
  2. Directional Volatility Components:

    • If the closing price of the current bar is higher than the previous close, the volatility is considered positive.
    • If the closing price is lower, the volatility is negative.
  3. Smoothing the RVI:

    • The RVI is obtained by smoothing the ratio of positive volatility to total volatility over a set period.

The formula for the RVI is:

Values range from 0 to 100, where higher values indicate stronger upward volatility, and lower values signal downward volatility.

3. Configuration and Parameters

The RVI can be customized using several key parameters:

  • Standard Deviation Length (stdevLength): Defines the period for the standard deviation calculation (default: 10).
  • Smoothing Length (smoothLength): Defines the period used to smooth the RVI calculation (default: 14).
  • Overbought Level (obLevel): A predefined level where volatility suggests an overbought market (default: 80).
  • Oversold Level (osLevel): A predefined level where volatility suggests an oversold market (default: 20).
  • Moving Average Length (maLengthInput): Optional smoothing with a moving average (default: 14).
  • Bollinger Bands Activation (useBB): Allows the addition of Bollinger Bands around the RVI.

4. Interpretation and Trading Strategies

How to Use the RVI in Trading?

The RVI is commonly used to confirm trend strength and identify potential reversals:

  • Trend Confirmation:

    • A rising RVI suggests increasing bullish volatility, confirming an uptrend.
    • A falling RVI suggests increasing bearish volatility, confirming a downtrend.
  • Overbought/Oversold Signals:

    • If the RVI crosses above 80, it may indicate an overbought condition.
    • If the RVI drops below 20, it may signal an oversold condition.
  • Divergences:

    • If price makes a new high, but the RVI fails to do so, a bearish divergence may indicate weakening momentum.
    • If price makes a new low, but the RVI remains stable or rises, a bullish divergence may signal a potential reversal.

Strategy Ideas Using the RVI

  1. RVI + Moving Average:

    • Use a moving average of the RVI to filter out noise.
    • Buy when the RVI crosses above its moving average.
    • Sell when the RVI crosses below its moving average.
  2. RVI + Bollinger Bands:

    • If the RVI moves outside the upper Bollinger Band, it signals extreme bullish volatility.
    • If the RVI moves outside the lower Bollinger Band, it signals extreme bearish volatility.
  3. Breakout Confirmation:

    • Highlight breakouts by coloring the area where the RVI crosses key levels.
    • If RVI crosses above 80 and price breaks resistance, it confirms strong bullish momentum.

5. Implementation in ProRealTime

The RVI can be programmed in ProRealTime’s ProBuilder language, ensuring flexibility in customization. The implementation follows these key steps:

  1. Compute the standard deviation using the selected calculation method.
  2. Determine directional volatility (upward or downward).
  3. Apply smoothing to refine the final RVI value.
  4. Optionally, add a moving average and Bollinger Bands for additional analysis.
  5. Visualize the indicator with color-coded levels to highlight overbought and oversold zones.

The ProBuilder code follows these principles and allows easy parameter adjustments.

6. Conclusion

The Relative Volatility Index (RVI) is a powerful tool that provides insight into the direction of volatility, helping traders confirm trends and identify reversals. While it should not be used in isolation, combining it with moving averages, Bollinger Bands, or other momentum indicators can enhance its effectiveness.

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

avatar
Register or

Likes

avatar avatar avatar
Related users ' posts
bharatjai Script 'Adaptive ATR' has been saved line 24: no viable alternative at input 'lr' Gettin...
Nicolas download the itf file and import it into your platform.
Francis3332 Bonjour à tous, J'aime beaucoup cet indicateur et j'aimerais pouvoir l'utiliser sur la dern...
Nicolas
7 years ago
enricot Scusa nn riesco.
SoloContado If you smooth the signal using a "summation" function, you get a nice "crossing of 0" graph....
ShaunG Greatly appreciated Nicolas!
AGTrader Interesante, muy visual Doc. Felicidades!!!
Andraxx simplemente impresionante Dom...te sigo en youtube. Me ha gustado tu canal. Gracias por comp...
Leo Does it opens pending orders?... maybe they were not trigger.
Mattzi Dont know, all i can see is that it opened an order yesterday in backtest but not live. Th...
Jean-Christophe Hello Leo, when running the strategy from 29/12/2015 to 31/08/2018 on ProRealTime Premium, I...
Etienne Hi, thanks for proving this code. I would like to contribute by adding a computation speed...
Etienne //Compute Super Smoother coefficients once if barindex = 1 then a1 = exp( -1.414 * 3.14159...
Nicolas Thanks a lot!
Caribeengeek Bonjour j’avais vu que vous proposiez d’écrire des codes pour ceux qui s’y connaisse pas Mai...
Caribeengeek Les devises unité
Nicolas Merci d'utiliser le forum pour les demandes de programmation personnalisée
apachx Hi. Please, describe the algorithm in words. I want to understand how it works, but for now...
ak5hay2 Works like crazy on bitcoin. Use different timeframes. Thanks a lot Doc!!!
richyowen Hi, great code thanks. Very new to this forum. Is there a way to add a 100point target on an...
lisamitch50 Morning all, Just backtested on quite a few instruments, worked well on backtesting, but tel...
Matriciel
7 years ago
Alai-n Thanks...
Bard Thanks for sharing this Verdi55. More instructions from Larry Williams website (and a fea...
Nicolas
7 years ago
Jurik RSX
v10.3
Jurik RSX
3
Indicators
hartgeld Hallo Nicolas, ein sehr guter Indikator, vielen Dank! Leider rechnet er bei mir nicht die Pe...
rigel Hi Nicolas, have you coded the Jurik alone (as Mov. average)?
Nicolas 2 versions available in this indicator: https://www.prorealcode.com/prorealtime-indicators/a...
juanj This gets me thinking about creating a strategy on the 5min timeframe that only takes trades...
GraHal I noted above does okay on DAX 10 min with even a reduction to 30 of the Stop Loss. I've s...
Kris75 Hi Grahal, What about making the same great work you did with the snipet on google doc but...
AG1 Thanks Nicolas Still a problem in line 29 Please take a look. thanks again Alex
Nicolas code is modified in the above post, use that one.
AG1 Still a problem in line 29 Please take a look. thanks again Alex
jebus89 Big thanks for sharing this :) Seems to work as expected, good stuff.
xpe74 Top visually, and very efficient. I would like to integrate it as a value in a small algo i...
styrke Hello Nicolas, Nice screener, I appreciate the way you always try to condense at maximum th...
Nicolas There's no particular reason. RSI is widely use with its default period and results seems re...
LancerX This catch my attention, tried to load in pro order but not coming through. What variables n...
macdopa Hello ALE. Is there any way to help us develop or program an algo-strategy for automatic tr...
Giuseppe68 Ciao, sono nuovo e poco esperto, volevo chiedere perchè il ProBacktest lo esegue correttamen...
MaoRai54 Hi, first of all Happy New Year. Well, I've inserted your indicator in DAX 1h but I cann...
Vinks_o_7 Hi Mao Happy New Year ! This is just an improved RSI where you plot a standard price momen...
Angel Perez Ciao Francesco. First of all thanks for the indicator and also fro the screener. I do have a...
PSIDIO Ciao to you all, I also have a question and would be very happy for a helpful comment. I a...
SpreadBetMH Hi there, I have V11.1. I get the Indicator but no Arrows on the price. Kind Regards...
Alai-n Ciao Francesco, sei ancora in giro?
Metodi97 This indicator is great but can someone create strategy based on the same indicator it will ...

Top