Relative Vigor Index: formula and limits

The Relative Vigor Index, or RVI, is an indicator that measures where the close sits relative to the open of each candle, divided by the candle's range, from low to high, then smoothed over several candles. Its idea fits in one sentence from its author, John Ehlers: in a rising market, prices as a rule close above their open; in a falling market, below it. It is an oscillator centred on zero, with no fixed overbought or oversold threshold, unlike the stochastic oscillator, and it starts neither from moving averages like the MACD nor from close-to-close changes like the RSI. This lesson gives its exact calculation, worked by hand on ten candles, what each platform shows with the period 10, how to read the zero line, crossovers and divergences, and then what the indicator does not measure.

Relative Vigor Index: definition, what it measures and what it does not

The RVI asks one question of every candle: did it close above or below its open, and by how much relative to its range? MetaTrader 5's help page on the Relative Vigor Index sums up the idea: in a bull market the close is, as a rule, higher than the open, and the other way round in a bear market; the vigor, or energy, of the move is therefore established by where prices end up at the close. To normalise that measure, the change in price is divided by the candle's range: RVI = (close − open) ÷ (high − low). TradingView's help page on the Relative Vigor Index defines it by the same likelihood, that of prices closing higher than the open in uptrends and lower in downtrends, and describes it as a centred oscillator, one that moves around a centre line rather than along price.

The indicator comes from an article by John F. Ehlers, 'Something Old, Something New: Relative Vigor Index (RVI)', published in the January 2002 issue of Technical Analysis of Stocks & Commodities (volume 20, number 1, pages 16 to 20). The abstract published by the magazine gives its origin: in 1972, Jim Waters and Larry Williams had described an accumulation/distribution oscillator whose formula, once expanded, is identical to that of the RVI up to constants. Ehlers takes up the idea and makes it, in his words, easier to smooth using modern filter theory. The name therefore reads literally: an index of the relative vigor of each candle.

Two points. The RVI only looks inside the candle: it does not compare the close with the previous close, so a candle that opens higher after a gap and closes below its open counts as negative, even if it ends above the previous close. And the acronym is ambiguous: RVI also stands for another indicator, the Relative Volatility Index, which TradingView's help documents on the page following its own; in its scripts directory, TradingView shortens the Relative Vigor Index to RVGI. Pages consulted in October 2026.

Seventy-two candles and their 10-period Relative Vigor Index
Seventy-two candles and their 10-period Relative Vigor Index Invented price series, real calculation: close minus open and high minus low smoothed with the weights 1, 2, 2, 1, summed over ten candles then divided, signal line with the same smoothing. Top: seventy-two candles, ten with no direction, sixteen rising and closing near their high, six pulling back, twelve rising more slowly to a higher close, eight falling, then twenty with no trend (shaded area). Bottom: the RVI as the thick line, the signal line as the thin purple line, the zero line as the solid line, on a scale from −0.84 to +0.84. The RVI starts on candle 13, the signal line on candle 16. The RVI peaks at 0.780 on candle 23 and moves below its signal line on candle 25, one candle before the highest close of the first rise, 126.95. It moves back above on candle 39 (first dot), when the second rise has already covered close to two thirds of its path, then below on candle 46 (second dot), two candles after the top. The dashes join the two peaks: the highest close goes from 126.95 to 130.84, the peak of the RVI drops from 0.780 to 0.355. That is a bearish divergence. In the shaded area, the RVI stays below zero and crosses its signal line three times; the two bullish crossovers are followed by lower closes.

Calculating the RVI: numerator, denominator, signal line

Step 1: two measures per candle. The numerator is the candle's signed body, close − open, positive if it closes above its open, negative otherwise. The denominator is its range, high − low, always positive or zero. The raw ratio of a single candle is +1 if it opened at the low and closed at the high, −1 in the opposite case, and it jumps from one candle to the next: MetaTrader 5's help writes that an average is used to obtain a smoother calculation.

Step 2: the four-candle smoothing, weights 1, 2, 2, 1. Each of the two measures is smoothed by a symmetrically weighted moving average over four candles: the current candle counts for 1, the two before it for 2 each, the oldest for 1. MetaTrader 5's help writes it MovAverage = (close − open) of the current candle + 2 × that of the previous candle + 2 × that of two candles ago + that of three candles ago, and RangeAverage the same way with highs and lows. TradingView's formula divides both sums by 6, the total of the weights; MetaTrader 5's does not. It makes no difference to the indicator: the same factor of 6 in the numerator and the denominator cancels out in the division.

Step 3: the sum over the period, 10 by default. The two smoothed values are then added up over the last N candles and divided one by the other: RVI = sum of the smoothed numerators over N candles ÷ sum of the smoothed denominators over N candles. TradingView writes the same thing with two simple moving averages over N periods, which comes to the same since both averages share the same divisor. The indicator code published by MetaQuotes sums over the period set, 10 by default. As with the MACD line, this stacking of smoothings has a cost in lag, detailed further down.

Step 4: the signal line. It is the same four-value smoothing, applied to the RVI itself and divided by 6: signal = (RVI + 2 × previous RVI + 2 × RVI two candles ago + RVI three candles ago) ÷ 6. MetaTrader 5 and TradingView write this formula identically, and MetaTrader 5's help justifies it in one sentence: the signal line is there to remove the ambiguity of the main line. It trails the RVI by one to two candles.

How much history it needs. The four-candle smoothing only gives its first value on the fourth candle; the sum over 10 waits for ten of those values, so the first RVI value lands on the thirteenth candle, and the signal line, which waits for four RVI values, on the sixteenth. MetaQuotes' code starts drawing exactly there: the RVI line from candle (period − 1) + 3, the signal line from (period − 1) + 6. And since the result is a ratio between two quantities expressed in price, it has no unit: an RVI of 0.30 reads the same way on an index at 20,000 points and on a stock at 20 dollars, which is true neither of the MACD line nor of the ATR.

The RVI worked by hand on ten candles

The prices are invented, and the period is 4 instead of 10 so that the calculation fits in ten candles: with 4, the smoothing gives its first value on candle 4, the RVI on candle 7 and the signal line on candle 10. The method is unchanged. The weighted sums are written as in MetaTrader 5's help, without the division by 6; dividing them would change every intermediate line, not the result. Values are rounded to three decimals.

Here are the ten candles, in the order open, high, low, close. Candle 1: 100.00, 101.00, 99.00, 100.50. Candle 2: 100.50, 102.00, 100.00, 101.50. Candle 3: 101.50, 102.50, 100.50, 102.00. Candle 4: 102.00, 104.00, 101.50, 103.50. Candle 5: 103.50, 104.50, 102.50, 103.00. Candle 6: 103.00, 105.00, 102.50, 104.50. Candle 7: 104.50, 105.50, 103.50, 104.00. Candle 8: 104.00, 105.00, 102.00, 102.50. Candle 9: 102.50, 103.50, 101.00, 101.50. Candle 10: 101.50, 102.50, 100.00, 100.50. Price rises up to candle 6, then four candles close below their open.

The two measures per candle. Close − open, from candle 1 to candle 10: +0.50, +1.00, +0.50, +1.50, −0.50, +1.50, −0.50, −1.50, −1.00, −1.00. High − low: 2.00, 2.00, 2.00, 2.50, 2.00, 2.50, 2.00, 3.00, 2.50, 2.50.

The 1, 2, 2, 1 smoothing. On candle 4, the smoothed numerator is 0.50 + 2 × 1.00 + 2 × 0.50 + 1.50 = 5.00, and the smoothed denominator 2.00 + 2 × 2.00 + 2 × 2.00 + 2.50 = 12.50. Sliding the window one candle at a time, the smoothed numerator then reads 4.50, 4.00, 3.00, 0.00, −3.50 and −6.50 on candles 5 to 10, and the smoothed denominator 13.00, 13.50, 13.50, 14.00, 15.00 and 15.50. On candle 8, the smoothed numerator falls exactly to zero: candle 8 (−1.50) and candle 7 (2 × −0.50) cancel out candle 6 (2 × 1.50) and candle 5 (−0.50), while price has just lost 1.50 in one candle.

The 4-period RVI. Candle 7: (5.00 + 4.50 + 4.00 + 3.00) ÷ (12.50 + 13.00 + 13.50 + 13.50) = 16.50 ÷ 52.50 = 0.314. Candle 8: 11.50 ÷ 54.00 = 0.213. Candle 9: 3.50 ÷ 56.00 = 0.063. Candle 10: −7.00 ÷ 58.00 = −0.121. The RVI stays positive on candles 8 and 9 although both close below their open: the bullish candles from the start are still in the window. It only drops below zero on candle 10, four candles after the highest close.

The signal line. It waits for four RVI values, so its first one lands on candle 10: (−0.121 + 2 × 0.063 + 2 × 0.213 + 0.314) ÷ 6 = 0.124. On that candle, the RVI is already below its signal line, by 0.245, and below zero: the signal line, smoothed once more, still carries the trace of the bullish candles the RVI has already forgotten. That lag is what makes crossovers readable, and it is also what makes them come late.

RVI settings, platform by platform

A single setting: the period of the sum. The 1, 2, 2, 1 weights of the smoothing and of the signal line cannot be changed anywhere in the sources read. But the documents do not say quite the same thing.

MetaTrader 5 lists the Relative Vigor Index in its oscillators menu, next to Momentum and the stochastic oscillator. Its help writes that 10 is considered the best period, without saying by whom or on which data, and that the calculation goes through a simple moving average. The indicator code published by MetaQuotes, the developer of the platform, has a single parameter, Period, set to 10, and plots two lines, 'RVI' in green and 'Signal' in red, with three decimals. It adds the two smoothed values over the period set, without dividing them by 6, then divides the signal line by 6.

Where MetaQuotes' help and code differ. The help page writes that after the smoothing, the averages are summed over the last 4 periods. The RVI.mq5 file downloaded from MetaQuotes' page, for its part, sums over the period set, 10 by default, in a loop that runs back from the current candle to the candle Period candles ago. Both texts come from the same publisher and do not describe the same window; the code is what runs on the chart. The same code provides for an edge case: if the sum of the ranges is zero, it shows the sum of the numerators instead of the ratio, which only happens when every candle in the window has the same high and the same low.

TradingView writes the full formula in its help: numerator and denominator weighted 1, 2, 2, 1 and divided by 6, RVI equal to the simple moving average of the numerators over N periods divided by the simple moving average of the denominators over N periods, and signal line equal to (RVI + 2 × previous RVI + 2 × RVI two candles ago + RVI three candles ago) ÷ 6. The page leaves the choice of N to the reader and gives no default value. It files the indicator among centred oscillators, between the RSI and the Relative Volatility Index in its table of contents.

None of the sources read compares several periods or measures the effect of a change of setting. TradingView only writes that a longer lookback period reduces the impact of short-term countertrends on the readings. The period 10 is MetaTrader 5's default, not a result.

Reading the RVI: zero line, signal line, divergences

The zero line. Above zero, over the window, candles closed above their open more than below it, weights and ranges included; below zero, the reverse. It is neither a price level nor a trend direction: the RVI says how the candles were built, not where price went. In the diagram, it drops back below zero on candle 35 while price has been rising for three candles: the ten-candle window still carries the six candles of the pullback.

The signal line crossover. For MetaTrader 5's help, the meeting of the two lines is a signal to buy or to sell. TradingView makes it one of the two most used signals, bullish when the RVI moves above its signal line, bearish when it moves below, and writes that these crossovers are leading indicators of future price direction. That is a claim made by the page, with no measurement. In the diagram, the bearish crossover on candle 25 comes one candle before the highest close of the first rise; the bullish crossover on candle 39 arrives when 65% of the second rise is already done, and the bearish crossover on candle 46 lands two candles after the top, 3.69 lower. Same indicator, same series: sometimes before, sometimes after.

Divergences. TradingView defines them as the gap between the direction of the indicator and that of price, for example a price that rises while the RVI falls, and reads them as the announcement of a near-term trend change. In the diagram, the dashes show one: the highest close goes from 126.95 to 130.84, and the peak of the RVI drops from 0.780 to 0.355. The second rise goes higher with candles whose closes sit less close to the high: that is what the divergence measures, and nothing more. On this series, drawn to show it, the fall follows; on a real chart, nothing guarantees it, and the lesson on the MACD recalls, after StockCharts, that bearish divergences are commonplace in a strong rise.

No threshold. None of the sources read sets an overbought or oversold level for the RVI. By construction, it cannot leave −1 and +1, since a candle's body never exceeds its range; but those bounds assume that every candle in the window closes at its extreme, and the diagram does not exceed 0.780 at the top of thirteen candles that all close above their open. It is therefore read around zero and against its signal line, not against a scale.

None of these readings is an order to buy or sell. They are conventions, to be tested on your market, your timeframe and your period, with the method in the article on how to backtest a trading strategy. Tradoshi does not record the RVI at the time of your trades: the indicator is read on your chart. The journal is for the next step: you tag every trade taken on one precise reading, for example 'bullish RVI crossover below zero', and the dashboard filters by tag to show what that reading produced for you, in win rate as in expectancy.

RVI, stochastic and RSI: three different questions

The stochastic oscillator places the close within the range between the lowest low and the highest high of the last N candles, from 0 to 100. MetaTrader 5's help draws the parallel and marks the difference: the RVI is calculated similarly, but it compares the close with the open, and not with the low as the stochastic does. The stochastic therefore answers the question 'where did price close within its recent range?', the RVI the question 'did recent candles close above or below their open?'. The lesson on the stochastic oscillator works that calculation again.

The RSI looks at neither the open nor the range: it compares the average of close-to-close gains with the average of losses, over 14 periods in Wilder's setting, and stays between 0 and 100 with the usual thresholds of 70 and 30. A run of candles that open higher after a gap and then close part of that gap gives a rising RSI and a falling RVI: the two indicators do not contradict each other, they do not measure the same thing. The article on the RSI details its calculation.

The MACD and momentum start from closes alone: the gap between two moving averages for the MACD, the close compared with the close n candles earlier for momentum and the ROC. None of the four uses volume. Three oscillators that agree are not three confirmations, and the page on technical analysis explains why; but the RVI is, of the four, the only one to look at the candle's open, and that is the only information it adds.

The limits of the Relative Vigor Index

It lags, twice. The four-candle smoothing and then the sum over ten push the first value back to the thirteenth candle, and the signal line smooths once more. In the diagram, the bullish crossover on candle 39 arrives when close to two thirds of the second rise is done. Shortening the period reduces that lag and multiplies the crossovers: no setting removes the trade-off.

Without a trend, crossovers multiply. TradingView writes it: the indicator seems to generate false signals when applied to range-bound markets, and works better in trending markets. In the shaded area of the diagram, twenty candles close between 110.76 and 118.35; the RVI crosses its signal line three times there, and the two bullish crossovers, on candles 56 and 69, are followed by lower closes. Knowing whether a trend is in place is another question, the one covered in the lesson on the DMI and the ADX.

It sees neither gaps nor volume. The RVI is calculated inside each candle: an opening gap from the previous close enters neither the numerator nor the denominator, and a wide candle weighs the same as a narrow one as long as its close sits in the same relative place. Nor does it say anything about the size of the candles, which is the question the ATR answers, or about what was traded, which is the question of volume.

It depends on the text you read. MetaTrader 5's help and MetaQuotes' code do not describe the same summing window, TradingView gives no default period, and the acronym RVI also stands for the Relative Volatility Index. Before comparing a value read elsewhere with the one on your screen, check the period, the indicator's full name and, if you are reading a formula, whether or not it divides by 6, which changes the intermediate lines without changing the result.

No published study, to our knowledge, measures it. Ehlers' article presents the construction of the indicator; TradingView's claims about crossovers as 'leading indicators' and about a better fit in trending markets come with no figure on its page, and we found no peer-reviewed publication that tests the Relative Vigor Index, nor the success rates that circulate about it. This lesson therefore repeats none of them. What does exist is an exact calculation, reproducible on any series, and a rule to be judged on data it has not already seen.

Frequently asked questions

What is the Relative Vigor Index (RVI) in trading?

The Relative Vigor Index is a technical indicator published by John Ehlers in January 2002 in Technical Analysis of Stocks & Commodities. It measures where the close sits relative to the open of each candle, divided by the candle's range, smoothed by a 1, 2, 2, 1 weighted average and then summed over 10 candles. It oscillates around zero and comes with a signal line.

How is the Relative Vigor Index calculated?

Numerator: close − open, smoothed over four candles with the weights 1, 2, 2, 1. Denominator: high − low, smoothed the same way. RVI = sum of the smoothed numerators over N candles ÷ sum of the smoothed denominators over N candles, with N = 10 by default. Signal line = (RVI + 2 × previous RVI + 2 × RVI two candles ago + RVI three candles ago) ÷ 6.

What is the best period for the Relative Vigor Index?

10 is the default in MetaTrader 5's code, whose help writes that it is considered the best period, without saying by whom or on which data. TradingView leaves the choice open and gives no default. No source read compares several periods: the shorter it is, the more crossovers there are; the longer it is, the later they come.

What is the difference between the RVI and the stochastic oscillator?

Both place the close within a range, but not the same one. The stochastic compares the close with the lowest low and the highest high of the last N candles, from 0 to 100. The RVI compares the close with the open of each candle, relative to that candle's range, and oscillates around zero with no fixed threshold. MetaTrader 5's help sums it up: the RVI is calculated like the stochastic, but against the open rather than the low.

Is the Relative Vigor Index reliable?

No published study, to our knowledge, measures it. TradingView writes that it works better in trending markets and generates false signals in range-bound markets, with no figure to back it. On the lesson's series, it crosses its signal line three times in twenty candles with no trend, and the two bullish crossovers are followed by lower closes. The only way to know on your market is to test the rule on data it has not seen.

Key takeaways

  • The Relative Vigor Index measures where the close sits relative to the open, divided by the candle's range: it describes how candles are built, not the price level.
  • Numerator and denominator are smoothed with the weights 1, 2, 2, 1, summed over 10 candles by default, then divided; the signal line is the same smoothing of the RVI, divided by 6.
  • It oscillates around zero, with no overbought or oversold threshold; its theoretical bounds of −1 and +1 assume candles that all close at their extreme.
  • First value on the thirteenth candle, signal line on the sixteenth: it lags by construction, and its crossovers multiply when there is no trend.
  • MetaTrader 5's help and MetaQuotes' code do not describe the same summing window, and no published study, to our knowledge, measures the indicator.

Join the Oshi Academy

The lessons teach you the theory, the community makes you practise. We swap trades, screenshots and silly questions there, and nobody sells signals.

Join the Oshi Academy