金融, 统计

滚动Z分数zscore

Rolling Zscore

滚动Z分数:识别价格极值与回归机会的标准化工具 一、什么是“滚动Z分数”? 滚动Z分数(Rolling Z Score)是一种基于统计标准化的方法,用于衡量某一时点的价格相对于过去一段时间的均值的偏离程度。 它本质上回答的问题是: 当前价格高(或低)得是否“离谱”? Z分数公式如下: $$ Z = \frac{x_t - \mu_t}{\sigma_t} $$ 其…

滚动Z分数:识别价格极值与回归机会的标准化工具

一、什么是“滚动Z分数”?

滚动Z分数(Rolling Z Score)是一种基于统计标准化的方法,用于衡量某一时点的价格相对于过去一段时间的均值的偏离程度

它本质上回答的问题是:

当前价格高(或低)得是否“离谱”?

Z分数公式如下:

$$ Z = \frac{x_t - \mu_t}{\sigma_t} $$

其中:

  • $x_t$:当前收盘价
  • $\mu_t$:过去 N 日的滚动平均值
  • $\sigma_t$:过去 N 日的滚动标准差

Z分数为正 → 高于均值 Z分数为负 → 低于均值 Z分数绝对值大 → 偏离显著(可能是极端值或转折点)


二、如何用 pandas_ta 实现?

pandas_ta 中调用方式非常简洁:

import pandas as pd
import pandas_ta as ta

df = pd.read_csv("price.csv")
df["ZSCORE"] = ta.zscore(df["close"], length=30, std=1)
  • length=30:基于30日的滚动均值与标准差;
  • std=1:默认1个标准差作为归一化因子;
  • 返回值为 ZSCORE 列,是每个K线的标准分数。

三、图示与解读:Z分数的波动意义

我们可以这样绘图:

import matplotlib.pyplot as plt

df[["close", "ZSCORE"]].plot(subplots=True, figsize=(12, 6), title=["收盘价", "滚动Z分数"])
plt.axhline(y=2, color='r', linestyle='--')
plt.axhline(y=-2, color='g', linestyle='--')
plt.show()

图中:

  • Z > 2:价格远高于均值(可能超买)
  • Z < -2:价格远低于均值(可能超卖)
  • Z ≈ 0:价格处于历史均值附近

这种标准化处理,使得不同股票、不同周期间的价格行为可以进行横向比较


四、典型应用场景

均值回归策略

Z分数是布林带策略和配对交易的核心之一:

df["signal"] = 0
df.loc[df["ZSCORE"] > 2, "signal"] = -1   # 做空信号
df.loc[df["ZSCORE"] < -2, "signal"] = 1   # 做多信号

这类策略假设价格会向均值靠拢,而 Z 分数提供明确的进出场门槛。

情绪极端识别

在市场出现突发利好/利空时,价格会瞬间脱离均值,此时 Z 分数将迅速跳出 ±3 区间,投资者可识别是否属于“情绪驱动”。

风险预警系统

当 Z 分数波动过大时,代表市场波动性剧增,适合用作风控指标或仓位调节参考。


五、与布林带的异同

项目 滚动Z分数 布林带
本质 标准化偏离度 价格的上下轨构建
输出 标准分数(可正可负) 上轨、均线、下轨三条价格线
解读难度 略高,需要结合均值与分布形态 直观,常用于K线图叠加
比较优势 可做横向标准比较,多品种量化有利 更适合图形化趋势识别

六、实战策略:配对交易中的Z分数过滤

对于高度相关的两只股票(如中国平安 vs 中国太保),计算它们价格差的Z分数:

df["spread"] = df["close_stock1"] - df["close_stock2"]
df["zscore_spread"] = ta.zscore(df["spread"], length=20)

信号逻辑:

  • zscore_spread > 2:价差偏离均值过多,可做空价差
  • zscore_spread < -2:价差偏离过低,可做多价差
  • zscore_spread ≈ 0:平仓点,均值回归完成

结语

滚动Z分数是一个既简单又强大的工具。它为我们提供了一个标准化尺度,使得我们能在纷繁复杂的市场数据中,捕捉“异常点”、识别“回归机会”、管理“风险暴露”。

pandas_ta 中通过一行代码调用 zscore() 函数,量化交易者便拥有了一把在不确定市场中识别偏离的利器。

不论你是构建交易信号系统、执行风控管理,还是做跨品种套利分析——滚动Z分数都是你不可或缺的数据基准线。