3、基础统计特征:均值、方差、偏度、峰度在交易数据中的应用、滚动窗口统计量
聊到交易数据的统计特征,很多人第一反应就是「算个平均值看看」。嗯,这没错,但远远不够。我做了这么多年量化,发现真正能从数据里挖出Alpha的,往往不是那些花里胡哨的模型,而是对基础统计量的深刻理解。
说白了,价格序列和收益率序列就像一个人的心电图。均值告诉你心脏跳得有多快,方差告诉你心跳稳不稳,偏度和峰度则能暴露出一些「异常搏动」——而这些异常,往往就是超额收益的来源。
3.1 均值:趋势的锚点
均值是最直观的统计量。在交易数据里,我们通常关注两种均值:
- 价格均值:比如过去20日的平均收盘价(MA20),这是趋势跟踪的基础
- 收益率均值:比如过去60日的平均日收益率,用来衡量一段时间的「赚钱效应」
我个人习惯把均值当作「回归的引力中心」。价格偏离均值太远,迟早要拉回来——这就是均值回归策略的逻辑基础。
3.2 方差与标准差:波动率的度量
方差衡量的是数据偏离均值的程度。在金融里,我们更常用标准差(方差的平方根),因为它和价格单位一致。
标准差在交易中有两个核心用途:
- 风险度量:标准差越大,价格波动越剧烈,风险越高
- 信号过滤:当价格突破「均值±n倍标准差」时,往往意味着极端行情
你想想看,如果一只股票过去20天的标准差是2%,今天突然涨了5%,这已经偏离均值2.5个标准差。这种极端情况要么是趋势启动,要么是噪音——怎么判断?我一般会结合成交量来看。
3.3 偏度:不对称性的信号
偏度衡量的是数据分布的不对称程度。简单说:
- 正偏度:右尾更长,意味着有更多的大涨
- 负偏度:左尾更长,意味着有更多的大跌
- 零偏度:对称分布(比如正态分布)
在交易里,偏度是个被很多人忽视的Alpha来源。我记得有一次分析某只小盘股的收益率分布,发现它的偏度高达1.8——这意味着它经常出现「突然拉升」的情况。后来我基于这个特征做了一个事件驱动策略,效果相当不错。
3.4 峰度:尾部风险的预警
峰度衡量的是数据分布的「尖峭程度」和「尾部厚度」。金融数据有个特点:峰度通常远大于3(正态分布的峰度)。
为什么?因为市场经常出现「肥尾」——极端事件发生的概率比正态分布预测的要高得多。
峰度的实际应用:
- 高峰度(>3):意味着极端行情频繁,适合做波动率策略
- 低峰度(<3):意味着市场相对平稳,适合做趋势策略
我个人习惯把峰度和偏度结合起来看。比如:负偏度+高峰度,这是典型的「崩盘前兆」——左尾厚且尖,说明市场随时可能暴跌。这个组合信号我在2015年股灾前就捕捉到过,可惜当时没敢重仓做空。
3.5 滚动窗口统计量:动态视角
静态的统计量只能告诉你「过去整体怎么样」,但交易需要的是「现在怎么样」。所以我们要用滚动窗口——也就是滑动时间窗,实时计算最新的统计特征。
滚动窗口的核心参数有两个:
| 参数 | 说明 | 常见取值 |
|---|---|---|
| 窗口大小 | 每次计算用多少条数据 | 20、60、120(日线) |
| 步长 | 每次滑动多少条数据 | 1(逐日滚动) |
下面是我常用的滚动统计量计算代码:
import pandas as pd
import numpy as np
def rolling_stats(price_series, window=20):
"""
计算滚动窗口的均值、标准差、偏度、峰度
"""
df = pd.DataFrame(index=price_series.index)
df['rolling_mean'] = price_series.rolling(window).mean()
df['rolling_std'] = price_series.rolling(window).std()
df['rolling_skew'] = price_series.rolling(window).skew()
df['rolling_kurt'] = price_series.rolling(window).kurt()
return df
# 示例:计算某股票日收益率的滚动统计量
returns = pd.Series([0.01, -0.02, 0.03, 0.005, -0.01, ...])
stats = rolling_stats(returns, window=20)
print(stats.tail())
3.6 知识体系总览
下面这张图把本章的核心逻辑串起来了。你可以看到,基础统计量从不同维度刻画了交易数据的特征,而滚动窗口则让这些特征「活」了起来。
这张图展示了从原始交易数据到Alpha信号的完整链路。四个基础统计量分别从不同角度刻画市场状态,而滚动窗口让这些特征具备了时效性。最终,我们把这些动态特征组合起来,就能生成有效的交易信号。
好了,这一章的内容就到这里。记住,统计量本身不是目的,目的是从数据里找到那些「不寻常」的模式。下次当你看到一只股票的偏度突然飙升时,不妨多问一句:是不是有什么事情要发生了?