The Relative Vigor Index measures the "vigor" of price movement — specifically, the relationship between where price closed relative to where it opened. A bullish bar closes higher than it opened. The RVI captures this pattern across N bars, normalized by the bar's high-low range. Unlike RSI, which measures close-to-close momentum, RVI measures the quality of each bar's directional movement.

Momentum Oscillator
Category
Institutional
Difficulty
Theoretically unbounded, typically -1 to +1
Output Range
10
Default Period
None
Repaint Risk
Full OHLC — open, high, low, close required
Data Need
MOMENTUM · OSCILLATOR · CODE_HEAVY · LAGGING · REAL_TIME
Tags

Section 1: Core Mechanics

RVI was introduced by John Ehlers in his work on cycle analysis and technical indicators. The core insight: in bullish markets, bars tend to close in the upper portion of their range (close > open). In bearish markets, bars close in the lower portion (close < open). By averaging this relationship over N bars and normalizing by the true range, RVI produces a smooth oscillator centered around zero.

Formula

The RVI uses a symmetric triangular weighting — [1, 2, 2, 1] divided by 6 — applied over four consecutive bars.

Step 1 — Numerator (smoothed close-minus-open):

Step 2 — Denominator (smoothed true range):

Step 3 — RVI value (N-period sum ratio):

Step 4 — Signal line (same triangular weighting applied to RVI):

The Signal line is a 4-bar weighted average of the RVI — identical to MACD's signal line concept, but using the triangular weighting instead of EMA.

Why Triangular Weighting?

The [1, 2, 2, 1]/6 weighting is symmetric — it gives peak weight to the two middle bars rather than the most recent bar. This preserves the shape of the price pattern without end-point bias. It is less reactive than EMA (which front-loads recent data) but more reactive than SMA (which weights all bars equally). Ehlers chose this weighting specifically for its spectral properties — it reduces noise at cycle frequencies shorter than 4 bars.

Inputs

  • Open, High, Low, Close for each bar (all four prices required — unlike most momentum indicators)
  • Period (N): Summing window for the NUM/DENOM ratio (default 10)

Parameters

Parameter Default Range Impact
Period (N) 10 5–20 Lower = more reactive, noisier signal line crossovers
Signal period 4 (fixed triangular weighting) Not typically adjustable Matches the numerator/denominator weighting

Output

RVI oscillates around zero. Positive = bars tending to close higher than they opened (bullish vigor). Negative = bars tending to close lower than they opened (bearish vigor). In practice, extreme values are rare — most readings stay between -0.5 and +0.5 in normal market conditions.


Section 2: Interpretation & Signals

Signal Zones

RVI Level Interpretation Action
Above zero and rising Bullish vigor — bars consistently closing above open Hold longs, look for adding entries
Above zero, crossing below Signal Bullish vigor fading — potential reversal Exit long or tighten stop
Crossing zero from below Momentum shift to bullish Entry zone for new long positions
Crossing zero from above Momentum shift to bearish Exit long; entry zone for shorts
Below zero and falling Bearish vigor — bars consistently closing below open Hold shorts, look for adding entries
Below zero, crossing above Signal Bearish vigor fading Exit short or tighten stop

Primary Signal: RVI/Signal Line Crossover

The main RVI signal is when the RVI line crosses its Signal line — identical in concept to MACD crossovers.

Bullish crossover: RVI crosses above the Signal line. Vigor is increasing — more recent bars show greater close-above-open behavior than the broader period.

Bearish crossover: RVI crosses below the Signal line. Vigor is declining.

Crossovers above zero (bullish) are higher-conviction buy signals. Crossovers below zero (bearish) are higher-conviction sell signals. Crossovers at or near zero are weaker — wait for the cross to happen clearly on one side of the centerline.

RVI Signal Line Crossover in Bullish Trend

Zero-Line Cross

When RVI crosses from negative to positive (or vice versa), the momentum character of the market has shifted. Over the lookback period, bars were predominantly closing below their open (negative RVI); now more bars close above their open (positive RVI). This transition is a trend change signal — slower and more reliable than a simple crossover of the Signal line.

Divergence

RVI divergence interpretation is identical to RSI or Stochastic divergence:

Bullish: Price makes a lower low. RVI makes a higher low. The vigor of downward bars is diminishing — selling pressure is exhausting.

Bearish: Price makes a higher high. RVI makes a lower high. The vigor of upward bars is diminishing — buying pressure is fading.

💡 TIP
RVI divergence is most reliable when confirmed by the OHLC pattern on the divergence bars themselves. If RVI shows bullish divergence and the bars at the new price low are closing near their highs (small lower shadow, close near high) — that is the candle pattern confirming RVI's divergence reading. Both the formula and the visual pattern are saying the same thing.
⚠️ WARNING
RVI generates too many false crossover signals in ranging markets. The open-close relationship oscillates near zero when price goes nowhere — any random bar pattern can trigger a crossover. Require a confirmed trend (ADX > 20) before treating RVI crossovers as actionable. In ranging conditions, use RVI only for divergence at clear support/resistance levels.

Best Market Conditions

RVI performs best in trending markets with clear directional bias — where the open-close relationship consistently favors one direction. In trending markets, RVI can sustain above or below zero for many bars, and crossovers of the Signal line provide reliable entry timing within the trend. In tight ranges, the open-close relationship is random and RVI is noisy.


Section 3: Pass vs. Live — Real-Time Reliability

None — all calculations use closed bar OHLC
Repaint Risk
Moderate — triangular weighting over 4 bars plus N-period summing adds lag
Lag
Signal line crossovers require 4 completed bars to fully form
Confirmation Timing
Trend confirmation + signal line crossover timing within confirmed trends
Best Use
Ranging markets / Low-volume environments where open-close gaps are noise
Avoid

RVI requires all four OHLC values. The open price of each bar is set at the bar's start and does not change. Only the close, high, and low change during the live bar. The triangular weighting means the oldest bar in the 4-bar calculation has the least influence — the live bar's close position updates RVI, but less drastically than a front-loaded EMA would. Once the bar closes, all values are permanent. No repaint.


Section 4: Practical Use Cases

Setup: RVI(10) on 1H chart; only trade in direction confirmed by RVI zero-line position Signal: RVI crosses above Signal line while RVI is above zero (bullish crossover in positive territory) Entry: 1H bar close after the crossover Exit: RVI crosses back below Signal line or RVI approaches zero from above Key Rule: Do not trade crossovers when RVI is within 0.05 of zero — the signal is ambiguous

Real example — EUR/USD, 2023 trend phase: EUR/USD daily RVI crossed above zero on January 12, 2023, at 1.0745. The Signal line crossover (RVI crossing above Signal) confirmed on January 17, 2023, at 1.0820. Both the zero-line cross and Signal crossover aligned. EUR/USD trended to 1.1033 by February 2, 2023 — a 213-pip (1.96%) move over 11 trading days from the entry signal. RVI crossed back below Signal on February 6 at 1.0730 as the trend exhausted, capturing the bulk of the move.


Section 5: Pseudo Code

INPUT: open_[], high[], low[], close[], period=10

PROCESS:
  Step 1: For each bar i >= 3 (need 4 bars for triangular weighting):
            # Numerator: weighted close-minus-open
            num[i] = ((close[i] - open_[i])
                    + 2*(close[i-1] - open_[i-1])
                    + 2*(close[i-2] - open_[i-2])
                    + (close[i-3] - open_[i-3])) / 6
            # Denominator: weighted high-minus-low
            denom[i] = ((high[i] - low[i])
                      + 2*(high[i-1] - low[i-1])
                      + 2*(high[i-2] - low[i-2])
                      + (high[i-3] - low[i-3])) / 6

  Step 2: For each bar i >= 3 + period - 1:
            sum_num = sum(num[i - period + 1 : i + 1])
            sum_denom = sum(denom[i - period + 1 : i + 1])
            if sum_denom == 0:
              rvi[i] = 0  # Flat market — neutral
            else:
              rvi[i] = sum_num / sum_denom

  Step 3: Signal line (4-bar triangular weighting of RVI):
            For i >= first_valid_rvi + 3:
              signal[i] = (rvi[i] + 2*rvi[i-1] + 2*rvi[i-2] + rvi[i-3]) / 6

OUTPUT: rvi[], signal[] — oscillate around zero
EDGE CASES:
  - sum_denom == 0 (all bars identical high/low): rvi = 0 (neutral)
  - Fewer than (3 + period) bars: NaN for rvi; additional 3 bars for signal
  - NaN in any OHLC: propagate NaN for that bar and subsequent calculations
  - Flat market (open == close for all bars): rvi = 0 continuously

Section 6: Parameters & Optimization

Standard Conventions

Period Use Case Signal Frequency
5 Scalping — faster response High noise on Signal crossovers
10 Standard — default Balanced for daily and 4H
14 Matches RSI default period Useful for direct comparison setups
20 Weekly position trading Very smooth, low frequency

Parameter Impact

Change Effect When to Apply
Lower period (< 10) More crossovers, more false signals Only in strongly trending intraday markets
Higher period (> 10) Slower, more reliable zero-line crosses Position trading, weekly timeframes
Comparison with MACD RVI uses open-close; MACD uses close-close When you want to measure bar quality vs. price direction
How does RVI differ from MACD if both show momentum?

MACD measures the spread between two exponential moving averages of closing price — it captures where close is relative to its own recent history. RVI measures the ratio of (close minus open) to (high minus low) — it captures the quality or vigor of each individual bar. MACD answers: is price trending? RVI answers: are the bars in that trend strong and directional? A strong uptrend on MACD with weak RVI (bars closing near their open even as price drifts up) signals a low-conviction trend that may be near its end.

Why does RVI need OHLC when RSI only needs close?

RSI's formula compares today's close to yesterday's close — it only needs two data points per bar. RVI's formula compares today's close to today's open (close-open relationship), then normalizes by the bar's full range (high minus low). To capture the bar's internal structure, RVI needs all four price points. This is both its advantage (richer information) and its limitation (not applicable to close-only data series like mutual funds or some indices).

What does "institutional" difficulty mean for RVI?

The institutional difficulty rating reflects that RVI requires understanding of: (1) triangular weighting and why it differs from EMA or SMA weighting, (2) the two-component structure (numerator as vigor, denominator as normalization), (3) interpreting an oscillator around zero without bounded overbought/oversold levels, and (4) applying it only in markets with clear OHLC data. Beginners reaching for RVI before mastering RSI and MACD will misinterpret crossovers and misapply it to unsuitable markets.


Section 7: Synergies & Conflicts

Works Well WithAvoid Combining With
MACDMACD captures close-to-close trend direction; RVI captures bar-by-bar vigor within that trend. Both positive = high-conviction entry. Divergence between them = caution.
ADXADX > 20 confirms that a trend exists — only trade RVI crossovers in trending conditions. ADX is a prerequisite filter, not a separate signal.
Candlestick patternsRVI is the quantified version of candlestick analysis. When RVI signals align with a bullish engulfing or pin bar at support, both the pattern and the formula confirm the same underlying move.
VolumeRising volume with positive RVI = institutional buying. High RVI with low volume = retail-driven move, lower conviction.
RSIRSI measures close-to-close momentum. RVI measures open-to-close vigor. They are related but not identical — at trend extremes they can diverge from each other. Decide which framework you are trading and stick with it.
StochasticStochastic measures range position; RVI measures bar vigor. They measure fundamentally different things. Using both simultaneously creates conflicting entry conditions without clear resolution logic.
Williams %RMathematically related to Stochastic — same conflict applies. RVI's philosophy (bar quality) is incompatible with range-position indicators (Stochastic, %R) as a dual-signal system.

Section 8: Common Mistakes

Mistake Root Cause Solution
Trading RVI crossovers in ranging markets RVI generates random crossovers when bars have no directional bias Require ADX(14) > 20 before acting on any RVI crossover signal
Applying RVI to close-only data RVI formula requires all four OHLC prices Only use RVI on instruments with full OHLC data — stocks, forex, futures, crypto. Not applicable to close-only series.
Treating RVI like a 0-100 oscillator RVI oscillates around zero without fixed bounds There are no overbought/oversold levels. Use zero-line position and Signal crossovers — not extreme level triggers.
Using short period (< 10) in noisy markets Too many false crossovers from noise Use period 10-14 as minimum. Filter with ADX. Accept fewer, higher-quality signals.
Ignoring the Signal line and using RVI alone RVI without Signal is like MACD without the Signal line — raw, noisy Always plot both RVI and Signal. Crossovers between them are the actionable events, not RVI alone.

Section 9: Cheat Sheet

ℹ️ INFO
**Relative Vigor Index (RVI)**

USE WHEN: Trending market with ADX > 20, OHLC data available, looking for bar-vigor confirmation within trend
AVOID WHEN: Ranging market, close-only data, ADX < 20, first (period + 6) bars of chart data

ENTRY SIGNAL: RVI crosses above Signal while RVI is above zero (buy) / RVI crosses below Signal while RVI below zero (sell)
EXIT SIGNAL: RVI crosses back through Signal line / RVI crosses zero against position direction

PARAMETERS: Standard = period 10, 4-bar triangular Signal | Position = period 14-20
CONFLUENCE: MACD direction alignment + ADX(14) > 20 trend filter + Volume rising with crossover

RISK: Very noisy in ranging conditions — ADX filter is non-negotiable for this indicator
BEST TIMEFRAME: Daily and 4H for swing entries / Weekly for position trend confirmation