布林带和RSI的计算方法
直接答案:公式、参数和数据输入
布林带和RSI都是从单一时间序列(通常是收盘价)计算得出的:
- 布林带 在中轨周围创建一个上轨和下轨。中轨通常是移动平均线;轨道之间的距离来自回溯周期内价格的标准差。
- RSI(相对强弱指数) 是一种振荡器,通过比较回溯周期内的平均涨幅与平均跌幅来总结近期动量,然后将结果映射为0到100之间的数值。
只要拥有(1)按时间排序的一系列价格数据,以及(2)选定的参数(回溯周期长度,对于布林带还包括移动平均类型和标准差倍数),就可以计算这两个指标。
机制:每个指标所需的数据及其计算方式
布林带:定义和逐步计算
假设你有一个时间序列 $P_t$(常见输入为收盘价),并选择以下参数:
- $n$:回溯周期长度(周期数)
- $k$:标准差倍数(用于轨道宽度)
- $\text{MA}$:用于中轨的移动平均方法(通常为简单移动平均SMA)
对于每个具有足够历史数据的时间点 $t$(即 $t$ 至少有 $n$ 个先前观测值):
-
中轨(基准) [ \text{MB}t = \text{MA}(P{t-n+1},\dots,P_t) ] 若使用SMA,则: [ \text{MB}t = \frac{1}{n}\sum{i=0}^{n-1} P_{t-i} ]
-
窗口内的标准差 [ \sigma_t = \text{stdev}(P_{t-n+1},\dots,P_t) ] 标准差基于同一窗口内价格偏离均值的程度计算。
-
上轨和下轨 [ \text{Upper}_t = \text{MB}_t + k,\sigma_t ] [ \text{Lower}_t = \text{MB}_t - k,\sigma_t ]
关键数据要求:布林带始终使用相同的价格序列。若从收盘价改为最高/最低价(或改变采样频率),$\text{MB}_t$ 和 $\sigma_t$ 会变化,因此轨道也会变化。
RSI:定义和逐步计算
RSI使用价格变动,并区分上涨和下跌。
假设使用相同的价格序列 $P_t$,并选择:
- $n$:回溯周期长度
计算单周期价格变化: [ \Delta_t = P_t - P_{t-1} ] 然后计算涨幅和跌幅: [ \text{Gain}_t = \max(\Delta_t, 0) ] [ \text{Loss}_t = \max(-\Delta_t, 0) ]
实际应用中有多种平滑方法。独立验证的关键是:使用与你对比工具相同的平均方法。
一种常见方法是先计算前 $n$ 个周期的平均涨幅和平均跌幅,然后进行平滑处理(通常类似于Wilder方法)。概念上:
-
平均涨幅(或平滑序列) [ \text{AvgGain}_t \approx \text{过去 } n \text{ 个周期的涨幅平均值(采用所选平滑方式)} ]
-
平均损失 [ \text{AvgLoss}_t \approx \text{过去 } n \text{ 个周期的损失平均值(采用所选平滑方式)} ]
-
相对强度 [ \text{RS}_t = \frac{\text{AvgGain}_t}{\text{AvgLoss}_t} ]
-
RSI变换 到0–100范围 [ \text{RSI}_t = 100 - \frac{100}{1+\text{RS}_t} ]
处理边界情况:如果 $\text{AvgLoss}_t = 0$,则 $\text{RS}_t$ 变得非常大;某些实现返回接近100的RSI值。如果 $\text{AvgGain}_t = 0$,RSI趋向于0。不同平台对这些除法的处理方式不同,因此精确数值结果可能有所差异。
证据或示例:从小数据集中重新计算数值
以下是一个具体、可验证的小型示例结构。(数字仅为演示方法;关键是计算流程。)
假设你有6个有序价格 $P_1$ 到 $P_6$。
布林带示例流程
选择 $n=3$,$k=2$,并使用SMA作为移动平均。
- 对于 $t=3$:
- 计算 $\text{MB}_3$ 为 $P_1,P_2,P_3$ 的均值。
- 计算 $\sigma_3$ 为 $P_1,P_2,P_3$ 的标准差。
- 然后 $\text{Upper}_3=\text{MB}_3+2\sigma_3$,$\text{Lower}_3=\text{MB}_3-2\sigma_3$。
- 对 $t=4,5,6$ 重复上述步骤,使用滚动窗口 $(P_2,P_3,P_4)$ 等。
RSI示例流程
选择 $n=3$。
- 计算 $t=2..6$ 的变化量 $\Delta_t=P_t-P_{t-1}$。
- 将每个 $\Delta_t$ 转换为 $\text{Gain}_t$ 和 $\text{Loss}_t$。
- 对于第一个RSI输出,计算前 $n$ 个有效周期的平均涨幅和平均损失(例如,与 $t=2..4$ 相关,具体取决于实现的索引方式)。
- 计算 $\text{RS}=\frac{\text{AvgGain}}{\text{AvgLoss}}$,然后 $\text{RSI}=100-\frac{100}{1+\text{RS}}$。
为何这是“证据”:如果你对相同有序数据使用相同公式、参数和平滑选择,应能复现相同的指标轨迹。若无法复现,通常是因为参数设置、价格输入或RSI平滑方式不同。
局限性和失效模式:可能出现的问题及原因
参数和输入敏感性
两个指标都是其输入的确定性函数,但输入本身是人为选择的:
- 价格序列选择:使用收盘价或其他价格会影响数值。
- 回溯周期长度:改变 $n$ 会影响响应速度。
- 布林带移动平均类型和倍数:不同的 $\text{MA}$ 类型或 $k$ 值会改变轨道宽度。
- RSI平滑方式:即使 $n$ 相同,不同的平滑方法也可能产生不同的RSI曲线。
RSI除零和近零稳定性问题
RSI依赖于比率。当平均损失为零(或接近零)时,RSI趋近上限;当平均收益为零时,趋近下限。微小的数值差异(例如,实现如何处理精确零值)可能导致明显的RSI差异。
市场状态转变和波动率激增
指标并不“知道”未来行为。布林带根据近期波动率自动扩缩,而RSI在持续极端行情中可能长时间处于极值区域。在市场状态转变(持续趋势变化或波动率突变)期间,历史关系可能不再具有参考价值。
数据和计算对齐问题
独立验证可能因实际问题而非指标缺陷而失败:
- 构建 $P_t$ 时存在不一致的时区或交易时段边界
- 采样频率不同
- 缺失数据点或因公司行为调整价格导致序列定义变化
验证或下一步问题:如何自行检查计算
要独立验证布林带和RSI的计算:
- 固定输入序列:明确 $P_t$ 的定义(例如,未调整收盘价、已调整收盘价),并保持顺序一致。
- 固定参数:记录 $n$、$k$、布林带移动平均类型,以及RSI的平均/平滑方法。