RSI 和移动平均线的计算方法
直接答案
RSI 和移动平均线都是从价格时间序列中计算得出的,但它们的计算方式不同。移动平均线通过在选定的时间窗口内对近期价格取平均值来平滑价格。RSI(相对强弱指数)则将近期价格的上涨和下跌变化转换为一个介于 0–100 之间的有界分数,使用回看窗口和特定的平滑方法(通常是 Wilder 平滑法)。
要准确计算这两个指标,你需要:(1) 使用的价格序列(例如收盘价),(2) 时间步长或数据频率(例如每日K线),以及 (3) 指标参数(RSI 的回看长度,移动平均线的窗口长度和方法)。一旦确定了这些假设,两种计算都是确定性的,可以通过使用相同输入序列重新计算来进行独立验证。
机制或定义
移动平均线:对什么进行平均
移动平均线通过对固定数量的近期观测值取平均,为每个时间点生成一个平滑值。
- 简单移动平均线 (SMA):最近 N 个价格值的算术平均。
- 指数移动平均线 (EMA):一种加权移动平均,赋予近期价格更高权重,通过平滑因子定义。
由于不同平台在实现 EMA 时可能存在细微差异,验证时的关键是使用相同的定义和参数。
SMA 公式
设 P_t 为时间 t 的选定价格(通常为收盘价)。对于窗口长度 N,时间 t 的 SMA(当有足够数据时)为:
SMA(t) = (P_t + P_{t-1} + … + P_{t-N+1}) / N
这意味着第一个 SMA 值至少需要 N 个价格点,后续的 SMA 值则逐时间步向前滑动。
EMA 概念与常见形式
EMA 可以递归表示,使用前一个 EMA 值和当前价格。一种常用形式为:
EMA(t) = EMA(t−1) + α × (P_t − EMA(t−1))
其中 α 是由选定长度 N 决定的平滑因子。一个典型的关系是 α = 2 / (N + 1),但某些工具可能使用略有不同的初始化或惯例。为了独立验证,你必须匹配所比较计算器所使用的精确 EMA 定义和起始规则。
RSI:将涨跌幅转换为 0–100 分数
RSI 衡量近期价格上涨幅度相对于下跌幅度的相对大小。经典方法使用连续差值,并将其分为 涨幅 和 跌幅。
设价格序列为 P_t。定义变化量:
Δ_t = P_t − P_{t-1}
然后定义:
- Gain_t = max(Δ_t, 0)
- Loss_t = max(−Δ_t, 0)
之后,RSI 使用选定的平滑方法在回看长度 N 上计算涨跌幅的平滑平均值(有时也使用简单平均,取决于变体)。
相对强度与 RSI 公式
计算窗口内的平均涨幅和平均跌幅(使用选定的平滑方法),然后:
RS = AvgGain / AvgLoss
RSI = 100 − (100 / (1 + RS))
两个边界情况对正确计算很重要:
- 如果 AvgLoss = 0,则 RS 为无穷大,RSI 实际上为 100。
- 如果 AvgGain = 0,则 RS = 0,RSI 为 0。
这些情况出现在所选定义下,回看窗口内价格变化无下跌或无上涨时。
Wilder 式平滑(常见的 RSI 惯例)
一种广泛使用的 RSI 方法对涨幅和跌幅应用 Wilder 的平滑法:
- 在时间 t = N 的第一个平均值,使用前 N 个涨幅和跌幅的简单平均。
- 之后递归更新。
一个常见的更新规则是:
AvgGain(t) = (AvgGain(t−1) × (N−1) + Gain_t) / N
AvgLoss(t) = (AvgLoss(t−1) × (N−1) + Loss_t) / N
一旦得到这些平均值,使用上述 RS 和 RSI 公式计算 RSI。
与 EMA 一样,验证的关键是匹配所测试工具使用的精确平滑和初始化行为。
证据或示例(含明确假设)
示例假设
假设:
- 使用 收盘价。
- 在具有固定时间步长的 K线序列 上计算指标。
- RSI 使用 回看长度 N = 14 和 Wilder 式平滑。
- 移动平均线为 SMA,窗口 N = 20。
现在定义一个用于演示移动平均线的小型价格序列(仅用于演示):
对于时间 t = 1…20,假设收盘价为 P_1, P_2, …, P_20。
- SMA(20) 等于 (P_1 + P_2 + … + P_20) / 20。
- SMA(21) 等于 (P_2 + P_3 + … + P_21) / 20。
这种滑动特性是移动平均线计算的核心。
RSI 计算步骤
要计算时间 t 的 RSI,你需要:
- 差值 Δ_t = P_t − P_{t-1}。
- 涨幅和跌幅 Gain_t = max(Δ_t, 0) 和 Loss_t = max(−Δ_t, 0)。
- 使用选定的平滑规则计算平滑平均值 AvgGain(t) 和 AvgLoss(t)。
- RS 和 RSI:
- RS = AvgGain / AvgLoss
- RSI = 100 − (100 / (1 + RS))
即使不代入具体数值,验证逻辑也相同:如果你从相同的 P_t 序列开始,应用相同的定义,并使用相同的初始平均值,你必须得到与指标实现相同的结果。
局限性与风险
指标对数据惯例的敏感性
RSI 和移动平均线都对 计算惯例 敏感:
- 输入价格的选择(收盘价、开盘价、典型价格等)。
- 数据频率以及缺失K线的处理方式。
- 窗口长度和平滑方法(尤其是 RSI 的平滑和 EMA 的初始化)。
如果一个实现使用了不同的惯例,即使公式看起来相似,输出结果也可能不同。
失效模式与边界情况
主要局限包括:
- 早期周期行为:在数据点不足之前,RSI 和移动平均线可能未定义,或使用特殊初始化规则计算。
- 除零错误(RSI):如果平均跌幅为零,RSI 达到 100;如果平均涨幅为零,RSI 达到 0。这些结果可能反映窗口内变化序列的“无波动”,而不一定代表更广泛的市场状况。
- 参数过拟合:当你调整长度时,RSI 和移动平均线会发生变化。依赖特定参数集的模型或解释可能无法泛化。
误解风险
RSI 是从相对涨跌幅构建的振荡器;移动平均线是对价格的平滑。两者本身都不是未来价格走势的独立证明。历史关系(如果有人声称存在)并不能证明相同关系在未来仍成立。
验证或下一个问题
如何独立验证计算
要自行验证 RSI 和移动平均线的计算:
- 使用与图表工具相同的价格序列和时间步长。