计算布林带
布林带(20 周期、2-sigma 默认)。返回 upper / mid / lower 三条带数组。Edge-first 消费上游 close 序列。连到多个 Price Factor 时按标的 fan out 为 by_symbol。
做什么(One-liner)
围绕移动平均的波动率包络(20 日 SMA ± 2σ)—— 喂给突破与均值回归信号。
输入
period(number,可选)—— 回溯,默认 20。std_dev(number,可选)—— 带宽 sigma 数,默认 2。
输出
upper——mid + std_dev × sigma。mid—— 中轨(移动平均)。lower——mid - std_dev × sigma。by_symbol—— 连多个 Price Factor 时的 per-ticker 映射。
怎么用
- 连一个上游
price_factor。 - 可选覆盖
period和std_dev。 - 读取
upper/mid/lower做相对包络的信号。
核心公式
mid = close.rolling(period).mean()
std = close.rolling(period).std(ddof=0)
upper = mid + std_dev × std
lower = mid - std_dev × std假设与适用场景
假设:Bollinger 20 / 2σ defaults + ddof=0(population std)+ pandas-ta 等价。
适用:mean reversion 信号、breakout 识别、volatility envelope;equities、FX、crypto、commodities,daily / weekly 频率。
不适用:n < period、trending(bands hug price)。
已知局限
- 假设近似正态弥散;肥尾破坏覆盖率。
- 触带本身不构成信号。
- 20 / 2σ 默认是惯例;ddof 选择影响带宽;pandas-ta 派遣依赖。
参考文献
Bollinger (2001), Bollinger on Bollinger Bands;Murphy (1999) 教科书解释。
Golden Test
tests/golden/fixtures/tier1/compute_bollinger/ —— 容差 1e-10 absolute,pandas-ta + 手算 SMA + rolling std cross-check,最后验证 2026-05-25,状态 passing。
Changelog
- 1.0.0 (2026-05-25) —— 作为 Layer-1 规范 transform 激活;并入已弃用 Layer-0
compute_bollinger卡的治理字段。

