Relative Vigor Index
Calculate the Relative Vigor Index (RVI) for a given price series.
The Relative Vigor Index is an oscillator that measures the conviction of a current price trend using the relationship between closing and opening prices.
The formula is as follows:
\[\text{RVI} = \operatorname{Sum}(\text{Upward Close-Open Movement},\; \text{window}) / (\operatorname{Sum}(\text{Upward Close-Open Movement},\; \text{window}) + \operatorname{Sum}(\text{Downward Close-Open Movement},\; \text{window}))\]Also known as: vigor index. Note this is a bounded [0, 1] measure of the proportion of upward close-open movement, related in spirit to (but not numerically the same as) John Ehlers’ published Relative Vigor Index. See momentum_model.get_relative_vigor_index for the full formula and caveats.
Relative Vigor Index in Python
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_relative_vigor_index as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(tickers=["AAPL", "MSFT"])
toolkit.technicals.get_relative_vigor_index()
Which returns:
| Date | AAPL | MSFT | Benchmark |
|---|---|---|---|
| 2026-06-18 | 0.4036 | 0.0663 | 0.4484 |
| 2026-06-22 | 0.4352 | 0.0626 | 0.3655 |
| 2026-06-23 | 0.2163 | 0.091 | 0.319 |
| 2026-06-24 | 0.2251 | 0.0984 | 0.3306 |
| 2026-06-25 | 0.1793 | 0.095 | 0.2203 |
| 2026-06-26 | 0.397 | 0.4174 | 0.2946 |
| 2026-06-29 | 0.4175 | 0.3712 | 0.4362 |
| 2026-06-30 | 0.7891 | 0.4475 | 0.6846 |
| 2026-07-01 | 0.7922 | 0.5237 | 0.9267 |
| 2026-07-02 | 1.1745 | 0.7045 | 0.5225 |
Parameters
The function accepts the following parameters:
- period (str, optional): The time period to consider for historical data. Can be “daily”, “weekly”, “quarterly”, or “yearly”. Defaults to “daily”.
- close_column (str, optional): The column in the historical data that represents the closing prices. Defaults to “Adj Close”.
- window (int, optional): The number of periods for calculating the RVI. Defaults to 14.
- rounding (int | None, optional): The number of decimals to round the results to. Defaults to 4.
- growth (bool, optional): Whether to calculate the growth of the indicator values. Defaults to False.
- lag (int | list[int], optional): The lag to use for the growth calculation.
- standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False. Defaults to 1.