BollingerPercentB

增量式、因果技术分析文档

摘要

BollingerPercentB 是 RTTA 对布林 %B 的流式实现,用于表示价格在滚动均值 和标准差通道中的相对位置。

更新 API

result = rtta.BollingerPercentB().update(value)

每次调用 update(...) 都通过 value 输入一个观测值。若调用者只希望更新 状态而不实例化 Python 返回值,可使用输入相同的 advance(...)

工作原理

BollingerPercentB 报告当前价格在布林带下轨与上轨之间所处的位置。接近 0 表示价格紧贴下轨,接近 1 表示紧贴上轨;超出 \([0,1]\) 的值表示价格位于通道 之外。

递推公式

令 \(z_t=value_t\)、\(n\) 为窗口长度、\(k\) 为标准差倍数(num_std, 默认值为 2)。

\[M_t = \operatorname{mean}_n(z_t), \qquad S_t = \operatorname{stddev}_n(z_t)\]
\[U_t = M_t + k S_t, \qquad L_t = M_t - k S_t, \qquad \%B_t = \frac{z_t - L_t}{U_t - L_t}\]

方差与 BollingerBands 一样使用总体方差形式 (平方值的 \(1/n\) 均值)。

返回值为指标当前的标量值。

组合使用的基础指标

BollingerBandsSMAStdDev

实现说明

递推过程实现在 src/rtta/indicator.cppclass BollingerPercentB 中。

参考资料