The RVM (Relative Volatility Measure)

The RVM (Relative Volatility Measure)

Volatility is the lifeblood of trading, yet its absolute value can often be misleading. A 50-point move on a stock might be extreme volatility one month and completely normal the next. To solve this, AlfinPlot has developed the RVM (Relative Volatility Measure), a specialized indicator for ProRealTime designed to normalize volatility into a clear, readable scale of 0 to 100.

By blending multiple time horizons and scaling the results, the RVM helps traders identify “volatility squeezes”—those quiet moments that often precede explosive market moves.

The Philosophy Behind RVM

Most traders use the Average True Range (ATR) to measure volatility. However, the RVM takes this a step further by using a dual-layered approach:

  1. Short-Term Velocity: It averages three fast ATR periods (3, 5, and 8) to capture immediate price action.

  2. Long-Term Context: It averages three slow ATR periods (55, 89, and 144), based on the Fibonacci sequence, to establish the historical “noise” level.

By combining these two averages, the indicator provides a “Combined ATR” that reflects volatility across the entire spectrum of the market’s memory.

How to Interpret the RVM

The RVM uses an oscillator format (0-100) that makes identification of market regimes instantaneous:

  • The Launchpad (0 – 10): Highlighted in Green, this represents extreme consolidation. In this zone, volatility is at its lowest relative to the recent past. Markets rarely stay here for long; this is often where the most powerful trends begin.

  • The Preparation Zone (10 – 20): Highlighted in Cyan, this suggests the market is beginning to wake up from a squeeze or is entering a period of healthy, low-volatility trending.

  • The Midpoint (50): This serves as the equilibrium line. Values above 50 indicate that current volatility is higher than the average of the lookback period.

  • Volatility Peaks (80 – 100): When the RVM reaches these levels, volatility is “overbought.” While this doesn’t necessarily mean a price reversal, it often signals that the current move is reaching a climax and may soon transition into a range or a pullback.

Settings & Customization

The RVM is highly flexible and can be adapted to any timeframe, from scalping to long-term investing:

  • lookbackPeriod (Default: 25): This defines the window of time used to calculate the relative “Highs” and “Lows” of volatility. Increasing this value will make the indicator less sensitive, while decreasing it will make it more reactive to sudden spikes.

  • showBgColor (Binary 0 or 1): This setting toggles the background coloring for the “Launchpad” and “Preparation” zones, allowing for a cleaner chart if desired.

Tip: You should add lookbackPeriod and showBgColor as variables in the “Variable Definition” menu to modify them without touching the code.

ProBuilder Code

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
Related users ' posts
AndPar Buongiorno Nicolas, vorrei provare questo indicatore, ma quando lo inserisco in PRT mi vengo...
Nicolas Basta aggiungerlo al prezzo https://www.prorealcode.com/blog/video-tutorials/how-to-add-an-i...
Aragorna hello Nicolas, this indicator works with the last Beta version of PRT? Ive seen tha many in...
SnorreDK Works extremely well - How? How do u implement this in a startegy? Breakoutstrategy?
Keyeming Thanks, but yes same question as above, some explanations on how to read it would be appreci...
Bateson Bonjour. Merci beaucoup ! J'ai installé l'indicateur sur PRT 11 mais pour des raisons qui ...
CederTrader Hi Denis, does this indicator add to the chart as panel, or on the candles. Thanks
Nicolas Add it on the price chart as described in this video: https://www.prorealcode.com/blog/video...
Denis Hello Nicolas and Ceder Trader, Sorry, I only just saw your replies. The indicator is alre...
Xenotrax A première vue, sa à l'air d'être un indicateur très puissant sur de petites temporalités, j...
merri Bonjour Nicolas, Comment transformer cet indicateur en bot sur PRT ?
Nicolas Cela a déjà été fait, voir ce sujet: https://www.prorealcode.com/topic/strategia-con-lindica...
Seabiscuit Hi! I like this indicator a lot, been using it on a 30 min timeframe and usually confirms my...
Ramahu Bonjour et merci pour cet indicateur ! je l'observe sur les actions du Nasdaq et la plupart ...
StephFor //ind1 = ZigZagPoint[2*averagetruerange[200]](close) avr = 3 //3% ind1 = ZigZag[avr](close...
Manu L. @Steph un grand merci pour ton aide mais :-( J'ai copier le code tel quel mais cependant j...
AlphaMauss Je n'ai pas réussi à faire fonctionner l'indicateur avec le code fourni en commentaire sur P...
Nicolas Il doit s'agir d'un mauvais copier/coller. Je suggère de télécharger le fichier itf contenu ...
Bard Hello @Nicolas, I can get this to display in a separate indicator panel but not on Price as ...
Stenozar Hi @Nicolas, how can I put the bands on price? Thanks, Stefano
Fabian Hi IV Mcm, have you drawn the rectangles (Dinamic, Range) by yourself in the chart or are...
IV Mcm Myself to illustrate ;)
oraclus Bonjour indicateur très intéressant existe t il un screener qui détecte les actions qui donn...
IV Mcm Ce n'est pas le but de cet indicateur, mais avec un peu d'entraînement vous pourriez le code...
Yantra Thank you for sharing your good work!
Nicolas Oui c'est possible. Merci de ne pas poster des demandes qui sont hors sujets. Pour les deman...
Igor Merci pour cet itf. Question : comment faire pour instruire un screener ?
Nicolas tester le croisement du Close avec la première valeur de l'indicateur : "TrailingStop", faci...
luxrun sorry, add prt code add doesn't work
robertogozzi Don't worry about PRT code, I can't make it work either! Great for pointing that out, it's ...
Khaled @Luxrun, good morning, you mentionned "y = exponentialaverage (x)", isn't the period of the ...
luxrun One question, Roberto: the two AvgT are variable, could you explain to me what they regulate...
robertogozzi AvgT stands for Average Type, it's a parameter for the AVERAGE keyword (https://www.prorealc...
robertogozzi Yes, you can use any setting that suits you best! As to which one... it depends on the inst...
DaxRider grazie Robnerto
supertiti Bonjour Nicolas, Je ne comprend pas bien , le trend change de couleur quand les prix sont a...
Nicolas Oui ce serait possible, cependant l'indicateur est bien prévu pour conserver la couleur de l...
supertiti Quand tu pourras si tu peux nous coder la troisième couleur cela améliorerait les trades cou...
Nicolas remplacer les valeurs de coloured(0,255,0) par coloured(r,g,b) et ajouter ces noms de variab...
mohamed merci Nicolas!
sacram14 Merci Nicolas pour ce set-up que je ne connaissais pas ! J'ai tenté de reprendre le code pou...

Top