You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas计算布林带Z分数(Bollinger Z-score)?

使用Pandas计算布林带Z分数

根据你给出的公式 zs = (data - SMA(data, n=20)) / SD(data, n=20),可以用Pandas的滚动窗口方法直接实现,步骤如下:

  • 计算20期简单移动平均(SMA):使用rolling(window=20).mean()方法
  • 计算20期标准差(SD):使用rolling(window=20).std()方法,默认是样本标准差(除以n-1);若需总体标准差(除以n),需添加参数ddof=0
  • 代入公式得到Z分数

完整代码实现

# 假设series是已有的pandas.Series类型变量(数据类型float64)
import pandas as pd

# 计算20期简单移动平均
sma_20 = series.rolling(window=20).mean()
# 计算20期标准差(默认样本标准差)
std_20 = series.rolling(window=20).std()
# 计算布林带Z分数
z_score = (series - sma_20) / std_20

注意事项

  • 由于滚动窗口需要至少20个数据点,结果中前19个值会是NaN,属于正常情况
  • 若业务要求使用总体标准差,修改标准差计算代码为:std_20 = series.rolling(window=20).std(ddof=0)

内容的提问来源于stack exchange,提问作者Asclepius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:22:07