QA GATE · GOOD 18/18 automated ai-check.js · 18 readability, YMYL and image gates · mechanics verified against vike-indicators · live real-data chart embedded
Burstiness (sentence-length SD)10.7
Lexical diversity (MATTR-50)0.81
Consecutive similar sentences2
Repeated paragraph starts (≥3)0
AI-marker phrases0
Demonstrated experience3
Avg sentence length (words)17.6
Repeated 5-grams0
H2 section balance (50–500w)0 off
YMYL risk disclaimeryes
Mechanics verified vs codeyes
Primary keyword coverageyes
Internal links + CTA5
Content visuals10
Every figure has a caption10/10
Alt / caption text coverage100%
Distributed (≥1 per section)6/7 (86%)
Filenames sluggedn/a (inline)
Live interactive chart7 real
Learn · Trading Indicators · Momentum

Relative Vigor Index: How to Read the RVI

The Relative Vigor Index rests on one observation about how markets close. In a rising market prices tend to close near the top of the bar, and in a falling one they close near the bottom, so the position of the close inside its own range carries information that the close alone does not. Vike computes it as batch_relative_vigor, part of the momentum family in our engine.

This page lays out the exact arithmetic, then the crossover rule everyone quotes, then what 2,453 of those crossovers actually returned when they were scored against real forward bars.

What the Relative Vigor Index measures

opens low, closes highratio near +1opens high, closes lowratio near −1round tripratio near 0left bracket = high − low · right bracket = |close − open|
The vigor of one bar is its body divided by its range. The third case is the interesting one: a violent bar that resolved nothing scores near zero, which raw price change alone would never tell you.
ATOM/USDT daily — a real RVI crossover detected 2026-08-03, RVI -0.358 crossed up through its signal → +6.0% in 9 days.

Every bar hands you two numbers worth comparing. Close minus open says which side won the session; high minus low says how much ground was fought over.

Their ratio is the vigor. A bar that opens at its low and closes at its high scores near +1, one that does the reverse scores near −1, and a bar that thrashed around and finished where it started scores near zero regardless of how violent the thrashing was. That last case is the useful one, because raw price change would have called it flat and the range says otherwise.

One bar of this is noise. Ten bars of it, smoothed, is an indicator.

The exact RVI formula our engine runs

1221symmetric 4-bar weights1 · 2 · 2 · 1 ÷ 6close − openhigh − lowswmaswmasum 10sum 10÷RVIfrom bar 12the two series are smoothed separately — you cannot rebuild this from a ratio
The arithmetic batch_relative_vigor runs. Numerator and denominator are smoothed and summed on their own, and only the final sums are divided.
DOT/USDT daily — a real RVI crossover detected 2026-06-30, RVI -0.307 crossed up through its signal → +8.5% in 3 days.

Two layers of averaging sit between the raw ratio and the line on your screen, and both matter.

Each series is first passed through a symmetric weighted average over four bars, with the weights 1, 2, 2 and 1 divided by six. Numerator and denominator get this treatment separately — that detail is easy to miss and it is the reason you cannot reproduce the RVI by smoothing a ratio you already computed. Both smoothed series are then summed over ten bars, and the sums are divided. Its signal line repeats the same four-bar weighting on the finished RVI.

How Vike computes it. batch_relative_vigor builds close - open and high - low, applies swma to each, sums both over the ten-bar window, and returns the quotient wherever the denominator is non-zero. Four-bar weighting plus a ten-bar sum means the RVI line begins on bar 12 and its signal on bar 15. Nothing partial is emitted before then.

I ported that rule straight from the crate source and then ran it against the Python implementation the crate was ported from. The two agree bit for bit over fourteen symbols and a thousand daily bars each, which is what makes the measurements below quotable.

Reading the RVI against its signal line

ADA/USDT daily — a real RVI crossover detected 2026-07-08, RVI 0.27 crossed down through its signal → -7.0% in 5 days.

Zero divides the chart into buying and selling. Everything else is a matter of degree.

Scale is where people go wrong first, because this oscillator has no fixed bounds of any kind. Its arithmetic maximum is ±1, but that needs ten consecutive bars closing exactly at their extremes. Across the sample I measured — fourteen liquid pairs, a thousand daily bars apiece — the median reading was −0.014, the standard deviation 0.170, and the extremes only reached −0.543 and +0.521. So ±0.20 is already the outer fifth of real readings, and anything past ±0.40 is genuinely rare.

Crossings of the signal line are the standard entry. Upward means recent vigor has outrun its own recent average; downward means the reverse. The direction of the cross is what carries the claim, not the level it happens at — though as the next section shows, the level is what separates a signal from a coin flip.

How to trade the RVI crossover

ETH/USDT daily — a real RVI crossover detected 2026-06-29, RVI -0.202 crossed up through its signal → +6.9% in 3 days.
UNI/USDT daily — a real RVI crossover detected 2026-06-20, RVI 0.25 crossed down through its signal → -7.0% in 3 days.

Take the textbook rule exactly as written: buy the RVI crossing above its signal, sell it crossing below. No filter, no context.

Over 13,622 bars where both lines existed, that fired 2,453 times — one signal every 5.6 bars. Scored first-touch across the next ten bars with a 6% target against an 8% stop, and awarding the loss whenever a bar tagged both, the long side resolved 609 wins to 477 losses. That is 56.1%. Risking eight to make six needs 57.1% to break even before fees, so the unfiltered long rule is a losing rule, and its 61.7% short side is barely a winning one.

Adding one condition changes the picture. Requiring the cross to happen beyond ±0.20 cuts the count from 2,453 to 496 and lifts the long side to 59.6% and the short side to 64.1%. Fewer trades, better trades — the oldest result in the business, and this indicator demonstrates it cleanly.

Pair it with structure rather than another oscillator. A candlestick reversal sits on one bar and the RVI sits on twelve, so when I use both, the agreement is worth something; two momentum lines agreeing is one opinion counted twice.

Where the RVI fails

NEAR/USDT daily — a real RVI crossover detected 2026-08-02, RVI -0.27 crossed up through its signal → fell 8.1% first (vigor turned, price did not).
BTC/USDT daily — a real RVI crossover detected 2026-04-12, RVI 0.205 crossed down through its signal → rose 10.7% instead (one strong close undoes the cross).
Two real losses. NEAR crossed up at −0.27, deep inside the stretched fifth of readings, and still gave up 8.1% before it gained anything; BTC crossed down at +0.205 and climbed 10.7% instead. Filtering on the reading improves the odds, as the numbers below show — it does not make the cross reliable.

Here is the honest part, and both failures shown here are real signals this detector produced.

Frequency is the first problem and it is severe. A crossover every 5.6 bars is not a decision, it is a metronome, and a rule that fires that often will feel active while grinding your account down through fees. Every serious use of this indicator is really a use of some filter on top of it.

Gaps break the second assumption. The whole premise is that the open sits somewhere meaningful inside the bar, which holds on a 24/7 crypto chart and holds poorly on anything that gaps at the session boundary, where the open is inherited from the previous close rather than traded. I've watched the same rule behave completely differently on the same asset across venues for exactly that reason.

Thin books distort the third. When a single large order sets both the high and the close, one bar can carry the ten-bar sum, and the resulting cross describes that order rather than any real balance of pressure.

RVI, RSI and the abbreviation problem

Relative Vigor Indexreadsopen · high · low · closeone periodRelative Volatility Indexreadsdeviation of movesa deviation lengthRSIreadsclose against closeone periodsame three letters on the left two — the parameter box is what tells them apart
Two indicators answer to RVI and they share nothing but the initials. If the settings ask for a deviation length, it is the volatility one.

Three letters, two indicators, and no help from most charting software.

The Relative Volatility Index also goes by RVI. It measures the standard deviation of price moves and has nothing whatsoever to do with vigor, opens or closes; if the settings box asks for a deviation length, you are looking at the wrong one. Ours takes a single period.

Against RSI the difference is cleaner and more interesting. RSI reads close against close and never sees the intrabar path, whereas this index reads the open, high and low as well, so it sees where inside the bar the fight was decided. The Stochastic Momentum Index is closer in spirit but still built on close-to-close change, which is why the three disagree in ways that are informative rather than annoying.

Frequently asked questions

What is the best RVI period? Ten is the default and every figure on this page was measured with it. Longer periods produce fewer, calmer crossings; shorter ones produce a great many more and most of the extra ones are noise.

Is an RVI crossover a buy signal? On its own, no — the unfiltered rule tested here does not clear its own break-even hit rate. It becomes tradeable once you demand that the cross happens at a stretched reading, and better still with confirmation from price.

Why do the first bars have no value? The four-bar weighting has to finish before the ten-bar window can even open, which puts the earliest reading on bar 12 and the earliest signal three bars after that. Anything sooner would be a partial average wearing the costume of a real one.

Does the RVI work on crypto? Better than on markets with a session gap, since a continuous tape means every open is a real traded price. Thin books are still a genuine hazard, and no parameter choice repairs that.

What does a reading of zero mean? Buying and selling closed out even across the window. It is not a signal by itself, and crossings that happen near zero are the ones I skip.

This is educational material, not financial advice. Every figure here comes from past bars, past results generalize poorly to future ones, and trading carries real risk of loss — size any position so that being wrong stays survivable.

See the Stochastic Momentum Index breakdown