相对波动指数(RVI):衡量市场波动性情绪的进阶工具
在技术分析中,投资者广泛使用相对强弱指数(RSI)衡量市场超买超卖状态。但 RSI 的局限在于它仅反映价格变动方向,而对市场的波动强度缺乏捕捉。为了弥补这一空白,相对波动指数(Relative Volatility Index, RVI) 应运而生。
RVI 不看方向,而是用标准差波动性作为信号源,帮助交易者识别“情绪驱动型”市场环境,判断高波动下的潜在转折或突破。
一、什么是相对波动指数(RVI)?
相对波动指数(RVI) 是由 Donald Dorsey 提出的一种基于波动性强度的指标。与 RSI 类似,它的值在 0 到 100 之间,但不同之处在于:
RSI 衡量价格上涨与下跌的动量,而 RVI 衡量价格波动性的变化趋势。
它通过分析过去若干周期的标准差,来判断市场是否处于“波动增强”或“波动收敛”的阶段。
二、pandas_ta 中 RVI 的参数说明
使用 pandas_ta.rvi()
可快速计算相对波动指数,以下为参数列表:
参数名 | 类型 | 描述 | 默认值 |
---|---|---|---|
close |
Series | 收盘价序列,必需 | 必填 |
high |
Series | 最高价序列(若启用 refined 模式需填) | None |
low |
Series | 最低价序列(若启用 refined 模式需填) | None |
length |
int | 计算周期,影响波动性测量的窗口大小 | 14 |
scalar |
float | 输出缩放因子,默认 100(将结果标准化为百分比) | 100 |
refined |
bool | 若为 True,则返回 RVI(high) 与 RVI(low) 的平均值 | False |
thirds |
bool | 若为 True,则返回 RVI(high)、RVI(low)、RVI(close) 三者平均 | False |
mamode |
str | 移动平均方式,如 "sma"、"ema",默认为指数加权平均("ema") | "ema" |
offset |
int | 向前或向后平移结果 | 0 |
返回值说明
-
返回一个单列 DataFrame,列名如:
RVI_14
三、RVI 的计算逻辑简析
RVI 的核心在于将波动性视为信号源,并将其标准差序列进行相对强弱转换:
✅ 步骤 1:计算每根K线的标准差波动性
$$ SD_t = \text{StandardDeviation}(Price_t, \text{length}) $$
价格可以是收盘价,也可以是 high、low 或三者平均,取决于 refined 与 thirds 参数。
✅ 步骤 2:与前一周期的 SD_t 做差,计算“波动性涨跌”
- 若当前 SD > 上一周期 SD,则记为“上涨波动”
- 否则记为“下跌波动”
✅ 步骤 3:与 RSI 类似公式进行归一化处理
$$ \text{RVI}_t = \frac{\text{UpVol}_t}{\text{UpVol}_t + \text{DownVol}_t} \times \text{scalar} $$
这样就得到了一个位于 [0, scalar] 区间的指标,通常 scalar=100。
四、Python 实战:如何用 pandas_ta 快速调用 RVI?
import pandas as pd
import pandas_ta as ta
import matplotlib.pyplot as plt
# 加载行情数据
df = pd.read_csv("AAPL.csv", index_col="Date", parse_dates=True)
# 计算 RVI 指标(默认使用收盘价)
df["RVI_14"] = ta.rvi(close=df["Close"], length=14)
# 可视化
plt.figure(figsize=(14,6))
plt.plot(df["RVI_14"], label="RVI (相对波动指数)", color="purple")
plt.axhline(70, color='red', linestyle='--', label='高波动阈值')
plt.axhline(30, color='green', linestyle='--', label='低波动阈值')
plt.title("相对波动指数 RVI 指标")
plt.grid(True)
plt.legend()
plt.show()
五、RVI 的实战应用策略
✅ 1. 波动型突破策略
- 当 RVI 突破 70,说明波动急剧增加;
- 可与布林带、均线金叉等形态共振,判断是否为趋势启动点。
✅ 2. 趋势减弱信号
- 若 RVI 跌破 30,说明波动正在收敛,行情可能进入盘整;
- 可提前退出追趋势策略,等待方向确认。
✅ 3. 替代 RSI 的超买超卖系统
- RVI 在高波动区间(如 80+)进行短空;
- 在低波动区间(如 20-)寻找短多机会;
- 效果在震荡市场中优于传统 RSI。
六、RVI 与 RSI 的对比
指标 | 参考源 | 反映内容 | 是否考虑波动性 | 是否标准化 |
---|---|---|---|---|
RSI | 价格变化 | 买方/卖方动量对比 | ❌ 否 | ✅ 是 |
RVI | 波动变化 | 多头/空头波动强弱 | ✅ 是 | ✅ 是 |
RVI 适合用于捕捉**“恐慌性”上涨或下跌**背后的波动能量,是判断“市场情绪极端化”的重要工具。
七、总结:相对波动指数,连接波动性与情绪的桥梁
📌 RVI 把波动当作信号,而非噪音
📌 能够揭示传统动量指标看不到的市场能量变化
📌 适合波动策略、震荡区间判断、事件驱动行情的识别