金融, 动量

相对活跃RVGI

Relative Vigor Index

相对活跃指数(RVGI):衡量趋势强度的技术利器 在金融市场中,掌握趋势方向是制定交易决策的关键。而除了传统的均线系统、MACD 等指标外,还有一类专门衡量趋势“强度”的工具,那就是——相对活跃指数(Relative Vigor Index,简称 RVGI)。 RVGI 是一项少有人深入了解但极具实用价值的动量指标,它尝试衡量市场收盘价相对于交易区间的位置,从而判断当前趋势是否稳健。 一、什么是 RVGI(Relative Vigor Index)?…

相对活跃指数(RVGI):衡量趋势强度的技术利器

在金融市场中,掌握趋势方向是制定交易决策的关键。而除了传统的均线系统、MACD 等指标外,还有一类专门衡量趋势“强度”的工具,那就是——相对活跃指数(Relative Vigor Index,简称 RVGI)

RVGI 是一项少有人深入了解但极具实用价值的动量指标,它尝试衡量市场收盘价相对于交易区间的位置,从而判断当前趋势是否稳健。


一、什么是 RVGI(Relative Vigor Index)?

相对活跃指数(RVGI) 是一种震荡类指标,旨在通过收盘价相对于日内价格区间的位置,判断多空力量的平衡状态。

它的设计思想是:

在上涨趋势中,收盘价通常更靠近当日最高价; 在下跌趋势中,收盘价则更接近当日最低价。

因此,RVGI 实质上是在度量“价格活跃度”与趋势方向之间的相对关系。


二、RVGI 的计算原理

RVGI 的核心是以下两个公式:

✅ 主线:

$$ RVGI_t = \frac{\text{平滑}(Close_t - Open_t)}{\text{平滑}(High_t - Low_t)} $$

✅ 信号线:

$$ Signal_t = \text{移动平均}(RVGI_t, N) $$

其中:

  • 分子衡量的是收盘价与开盘价的差距,代表趋势动量;
  • 分母是最高价与最低价的差距,代表日内波动;
  • 整体进行平滑处理,以减少波动干扰。

三、如何使用 pandas_ta 计算 RVGI?

在 Python 中,我们可以通过 pandas_ta 技术分析库快速计算 RVGI 指标,适用于股票、期货、加密货币等市场。

📦 安装依赖:

pip install pandas_ta yfinance

💻 示例代码:

import pandas as pd
import pandas_ta as ta
import yfinance as yf

# 下载股票数据,以AAPL为例
df = yf.download("AAPL", start="2023-01-01", end="2024-01-01")

# 计算 RVGI
RVGI_df = ta.RVGI(df['Close'], df['High'], df['Low'], df['Open'], length=10)

# 合并进原始数据
df = pd.concat([df, RVGI_df], axis=1)

# 查看结果
print(df[['Close', 'RVGI_10', 'RVGI_10s']].tail())
  • RVGI_10 为主线;
  • RVGI_10s 为信号线。

返回结果:

返回一个 2列的 DataFrame,列名如下:

  • RVGI_14_4:RVGI 主线(动量值)
  • RVGIs_14_4:RVGI 信号线(平滑后的动量值)

你可以通过 lengthswma_length 改变周期组合。


四、如何解读 RVGI 指标信号?

📈 多头信号:

  • RVGI 上穿信号线(RVGI_10 > RVGI_10s)→ 买入;
  • RVGI 持续处于正值区域 → 趋势健康向上;
  • RVGI 与价格形成底背离 → 多头动能可能加强。

📉 空头信号:

  • RVGI 下穿信号线(RVGI_10 < RVGI_10s)→ 卖出;
  • RVGI 持续处于负值区域 → 空头主导市场;
  • 价格创新高,RVGI 不创新高 → 顶背离预警。

五、实战应用技巧

✅ 趋势过滤

RVGI 可用于过滤震荡信号:

  • RVGI 趋势向上时,仅接受做多信号;
  • 趋势向下时,仅考虑做空机会。

✅ 多指标联用

将 RVGI 与以下指标搭配,可增强信号可靠性:

搭配指标 用途
MACD 趋势共振确认
RSI 判断是否处于超买或超卖状态
均线系统 判断大周期趋势是否共振
Bollinger Bands 判断价格是否突破常态范围

六、案例分析:BTC-USD 走势中的 RVGI 信号

btc = yf.download("BTC-USD", start="2023-06-01", end="2024-06-01")
RVGI_btc = ta.RVGI(btc['Close'], btc['High'], btc['Low'], btc['Open'], length=10)
btc = pd.concat([btc, RVGI_btc], axis=1)

# 筛选RVGI金叉(上穿信号线)位置
cross_up = (btc['RVGI_10'].shift(1) < btc['RVGI_10s'].shift(1)) & (btc['RVGI_10'] > btc['RVGI_10s'])
print(btc[cross_up][['Close', 'RVGI_10', 'RVGI_10s']].tail())

结合布林带或成交量分析,可以进一步判断是否有资金推动上涨,形成有效趋势。


七、RVGI 的优势与局限

✅ 优势:

  • 更能反映趋势“质量”而不仅仅是方向;
  • 信号更平滑,减少短期噪音干扰;
  • 适合震荡-趋势切换频繁的市场使用。

⚠️ 局限:

  • 响应速度略慢,不适合超短线;
  • 在极端行情中可能“迟到”;
  • 建议配合价格形态与成交量验证信号。

八、总结:趋势背后的“活力”密码

相对活跃指数(RVGI) 是一种低调却强大的趋势分析工具。它不追求高频信号,而是致力于揭示趋势背后的“活力强度”,帮助交易者在方向确定的基础上提高入场和持仓的信心。

趋势不仅是方向,更是力度; 而 RVGI,正是你测量力度的刻度尺。


📌 想构建以 RVGI 为核心的交易系统?可以尝试:

  • RVGI 金叉配合均线突破;
  • RVGI 背离作为抄底逃顶信号;
  • RVGI + MACD 组合识别强弱转换。