Skip to content

计算布林带

布林带(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 映射。

怎么用

  1. 连一个上游 price_factor
  2. 可选覆盖 periodstd_dev
  3. 读取 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)。

已知局限

  1. 假设近似正态弥散;肥尾破坏覆盖率。
  2. 触带本身不构成信号。
  3. 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 卡的治理字段。

Verifiable intelligence for the decisions that demand scrutiny.