使用 Pandas 计算布林 Z 分数

Calculate Bollinger Z-score using Pandas

提问人:Asclepius 提问时间:11/17/2023 更新时间:11/21/2023 访问量:27

问:

给定一个序列,我想使用 Pandas 计算其布林带 Z 分数(而不是布林带)。存在一个先前的问题,它讨论了如何计算波段,但没有讨论 z 分数。

给定一个带有 dtype 的变量,我有使用这个答案计算 z 分数的公式:seriespandas.Seriesfloat64

zs = (data - SMA(data, n=20)) / SD(data, n=20)

然而,上面的公式不是我需要的 Pandas 代码。

Python Pandas 技术指标

评论


答:

0赞 Asclepius 11/17/2023 #1

考虑这个函数。它的输出看起来与 TradingView 的输出相匹配。

import pandas as pd

def bollinger_zscore(series: pd.Series, length: int = 20) -> pd.Series:
    # Ref: https://stackoverflow.com/a/77499303/
    rolling = series.rolling(length)
    mean = rolling.mean()
    std = rolling.std(ddof=0)
    return (series - mean) / std

要计算布林带,请参阅此答案