RSI 是如何计算的?(相对强弱指数)

RSI 计算公式的输入限制,用于独立验证。

RSI 是如何计算的?(相对强弱指数)

在计算前先定义 RSI

相对强弱指数(RSI)是一种动量振荡器,用于衡量近期价格涨幅与跌幅的相对强度。其核心思想很简单:在选定的时间窗口内,比较价格上涨的幅度与下跌的幅度。RSI 将这种比较转化为一个通常介于 0 到 100 之间的数值。

RSI 本身并不是一种预测工具。它是将价格变动历史转化为有界指标值的一种转换。这种转换取决于你选择的具体计算规则(尤其是回溯周期长度以及如何对涨跌进行平滑处理)。

RSI 计算:公式与所需数据

要计算 RSI,你需要一个按时间排序的价格序列。大多数 RSI 实现使用每个周期的一个价格(通常为收盘价),并计算相邻周期之间的价格变化。

步骤 1:选择回溯周期(N)

选择一个窗口长度 N(例如,常见的选择是 14)。RSI 的计算在对涨跌进行平均时会引用这个 N。

步骤 2:计算单周期变化

对于每个周期 t,计算价格变化:

  • Change(t) = Price(t) − Price(t−1)

从 Change(t) 中拆分为两个非负分量:

  • Gain(t) = max(Change(t), 0)
  • Loss(t) = max(−Change(t), 0)

因此,只有上涨变化计入 Gain,只有下跌变化计入 Loss。

步骤 3:平均涨幅与平均跌幅

RSI 需要回溯窗口内的平均涨幅和平均跌幅。存在不同“版本”的 RSI,但广泛使用的方法是采用平滑处理,而不是每次重新计算简单平均值。

一种常见的平滑方法是:

  • AverageGain = Gain(t) 在 N 个周期内的平滑平均值
  • AverageLoss = Loss(t) 在 N 个周期内的平滑平均值

平滑处理的细节很重要,因为如果你使用:

  • 简单移动平均(每个周期从头重新计算),或
  • Wilder 风格的平滑(递归方式,使用先前的平滑值),

RSI 的结果会有所不同。

如果你想在不同工具之间获得一致的结果,请使用你的计算器或数据集所期望的精确平滑规则。

步骤 4:将平均值转换为 RS,再转换为 RSI

计算相对强度比:

  • RS = AverageGain / AverageLoss

然后转换为 RSI:

  • RSI = 100 − (100 / (1 + RS))

有两个特殊情况需要明确说明:

  • 如果 AverageLoss 为 0(在平均窗口内无近期亏损),RS 变得非常大。实际上,RSI 接近 100。
  • 如果 AverageGain 为 0(无近期涨幅),RS 变为 0。实际上,RSI 变为 0。

RSI 的数学原理

RSI 比较了来自同一价格序列的两个平均量:

  • 当近期周期中涨幅多于跌幅(以平滑平均意义而言),AverageGain 相对于 AverageLoss 较大,导致 RS 增大,RSI 升高。
  • 当近期周期中跌幅多于涨幅,AverageLoss 占主导,RS 变小,RSI 下降。

其有界输出(大致为 0 到 100)是将 AverageGain/AverageLoss 的比率转换为一个倾向于强调上涨与下跌运动之间平衡变化的尺度。

重要的是,RSI 对“变化”的定义方式(价格输入和采样频率)非常敏感。即使“计算公式”相同,每分钟收盘价序列和每日收盘价序列也可能产生不同的 RSI 曲线。

可复现的示例或证据

以下是一个小而完整的示例设置。目标不是匹配任何特定平台,而是展示所需的输入和中间值。

假设:

  • 使用收盘价到收盘价的变化。
  • 选择 N = 5。
  • 使用与你的参考实现一致的平滑方法。

你从第 0 到第 5 周期的价格(共六个价格)开始。对于每个 t 从 1 到 5:

  1. 计算 Change(t) = Price(t) − Price(t−1)。
  2. 计算 Gain(t) 和 Loss(t),分别为 max(Change, 0) 和 max(−Change, 0)。
  3. 使用你选择的平均方法在最近 N 个周期内计算 AverageGain 和 AverageLoss。
  4. 计算 RS = AverageGain / AverageLoss。
  5. 计算 RSI = 100 − (100 / (1 + RS))。

要独立复现结果,请使用相同的 N 和平滑规则进行相同计算。如果你的 RSI 与所比较的工具结果不同,这种差异几乎总是来自以下选择之一:

  • N 值(回溯周期长度)
  • 价格序列输入(收盘价 vs 其他来源)
  • 在数据不足 N 个周期的早期阶段的处理方式
  • 平滑方法(简单 vs 递归)
  • 当 AverageLoss 或 AverageGain 为 0 时的边界情况处理

需要考虑的局限性与失效模式

尽管 RSI 有明确的公式,但当基础假设不稳定时,它可能产生误导性的解释。

局限性 1:RSI 依赖于所选的 N 和平滑方法

改变 N 会改变近期历史中哪些部分影响平均值。改变平均/平滑方法会改变新旧涨跌的权重。因此,即使从相同价格计算,两个 RSI 序列也可能不同。

局限性 2:数据质量与序列定义很重要

如果你的价格序列存在不连续性(例如,因非交易时段导致的跳空),或中途更换数据源,则计算出的涨跌会发生变化。由于 RSI 由周期间差异驱动,即使输入的微小变化也可能改变 RSI。

局限性 3:边界情况可能扭曲直觉

当 AverageLoss 极小时,RS 变得非常大,推动 RSI 趋向上限。这可能发生在持续上涨过程中,但也可能发生在窗口内亏损数据几乎为零时。同样,持续的横盘走势可能使解释变得不直观,因为根据实现细节,涨跌可能都接近零。

局限性 4:RSI 不保证预测准确性

RSI 源于历史变化。RSI 变动与未来结果之间的历史关系并不能保证未来行为。成本、执行时机和市场结构的变化都可能影响“未来结果”,使其与指标历史上所暗示的不同。

验证与下一步检查

要独立验证 RSI 计算,请关注可复现性而非解释:

  1. 确认计算中使用的精确价格输入(每个周期使用哪个价格)。
  2. 确认 N(回溯周期)。
  3. 确认用于计算 AverageGain 和 AverageLoss 的平均/平滑方法。
  4. 确认在完整窗口形成前如何处理最初的 RSI 值。
  5. 确认实现如何处理 AverageLoss 为 0 或 AverageGain 为 0 的情况。
外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。