提问人:Asclepius 提问时间:11/17/2023 更新时间:11/21/2023 访问量:27
使用 Pandas 计算布林 Z 分数
Calculate Bollinger Z-score using Pandas
问:
给定一个序列,我想使用 Pandas 计算其布林带 Z 分数(而不是布林带)。存在一个先前的问题,它讨论了如何计算波段,但没有讨论 z 分数。
给定一个带有 dtype 的变量,我有使用这个答案计算 z 分数的公式:series
pandas.Series
float64
zs = (data - SMA(data, n=20)) / SD(data, n=20)
然而,上面的公式不是我需要的 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
要计算布林带,请参阅此答案。
评论