5、统计套利理论基础:统计套利定义与分类、配对交易与多资产套利、协整与均值回复、平稳性检验(ADF检验、KPSS检验)

5.1 统计套利到底是个啥?

说实话,刚入行那会儿,我对“统计套利”这四个字有点发怵。听起来像是数学家和物理学家才能玩的东西。但干久了你会发现,它没那么玄乎。

统计套利,说白了就是利用统计规律来赚钱。它不是无风险套利——那种教科书里写的“同一资产在不同市场价差归零”的完美机会,现实中几乎不存在。统计套利赌的是:价格关系在统计上会回归均值

我个人的理解是:你找到两个或者多个资产,它们的历史价格走势有某种“默契”。一旦这种默契被打破,你就进场,赌它们会重新“和好”。

举个例子,茅台和五粮液。虽然它们不是同一个东西,但长期来看,它们的价格比值往往在一个区间内波动。如果比值突然拉大,我就做空贵的、做多便宜的。这就是统计套利的基本逻辑。

核心要点:统计套利不是无风险,而是“大概率赚钱,小概率亏钱”。关键在于你的统计模型是否靠谱。

5.2 统计套利的分类

我习惯把统计套利分成两大类:

  • 配对交易(Pair Trading):只涉及两个资产。这是最经典、最容易上手的形式。
  • 多资产套利(Multi-Asset Arbitrage):涉及三个或更多资产。比如篮子交易、因子套利等。

你想想看,配对交易就像“二人转”,简单直接。多资产套利就像“交响乐”,需要协调更多乐器,但效果可能更稳定。

我在项目中遇到过一个问题:做配对交易时,选的两个股票相关性很高,但突然有一天其中一个公司发了并购公告,相关性瞬间崩塌。那次亏了不少。所以后来我做多资产套利时,会刻意加入一些低相关性的资产来分散风险。

5.3 配对交易:最经典的统计套利

配对交易的步骤,我一般这么走:

  1. 选对:找到两个历史相关性高的资产。比如同行业的龙头和龙二。
  2. 算价差:计算它们的价格比值或价差序列。
  3. 定阈值:根据价差的历史分布,设定开仓和平仓的阈值。通常用均值±几倍标准差。
  4. 执行:价差突破阈值时开仓,回归均值时平仓。

嗯,这里要注意:阈值设得太窄,交易太频繁,手续费吃掉利润;设得太宽,机会少,资金利用率低。我个人的经验是,先用1.5倍标准差作为初始值,然后根据回测结果微调。

避坑指南:我曾经犯过一个低级错误——直接用收盘价做配对交易。后来发现,两个股票的交易时间不完全同步,导致价差信号失真。后来我改用同步的分钟级数据,效果好了很多。

5.4 协整与均值回复:统计套利的数学根基

配对交易能赚钱,背后依赖的是协整(Cointegration)均值回复(Mean Reversion)这两个概念。

协整是什么意思?简单说:两个非平稳的时间序列,它们的线性组合是平稳的。比如,两个股票价格都是随机游走的(非平稳),但它们的价差却在一个固定均值附近波动(平稳)。这就叫协整。

均值回复就更直观了:价差偏离均值后,有回归的趋势。这是统计套利能赚钱的根本原因。

我刚开始做的时候,以为只要相关性高就能做配对。后来发现相关性高不等于协整。两个完全不相关的随机游走序列,也可能算出很高的相关性(伪回归)。所以,协整检验是必须的。

警告:千万别把“相关性”和“协整”混为一谈。相关性高不代表能套利,协整才是统计套利的数学基础。

5.5 平稳性检验:ADF检验与KPSS检验

要判断一个序列是否平稳,或者两个序列是否协整,我们需要做平稳性检验。最常用的两个方法是ADF检验和KPSS检验。

5.5.1 ADF检验(Augmented Dickey-Fuller Test)

ADF检验的原假设是:序列存在单位根(即非平稳)。如果p值小于0.05,就拒绝原假设,认为序列是平稳的。

我个人的习惯是:在做配对交易前,先对价差序列做ADF检验。如果p值小于0.01,我才放心开仓。

# Python代码示例:ADF检验
from statsmodels.tsa.stattools import adfuller
import numpy as np

# 假设price_spread是价差序列
result = adfuller(price_spread)
print(f'ADF统计量: {result[0]}')
print(f'p值: {result[1]}')

if result[1] < 0.05:
    print('价差序列平稳,可以尝试配对交易')
else:
    print('价差不平稳,小心伪回归')

5.5.2 KPSS检验(Kwiatkowski-Phillips-Schmidt-Shin Test)

KPSS检验和ADF正好相反。它的原假设是:序列是平稳的。如果p值小于0.05,就拒绝原假设,认为序列非平稳。

为什么需要两个检验?因为ADF检验对某些类型的非平稳(比如趋势平稳)不敏感。我一般两个都做:ADF显著且KPSS不显著,我才认为序列是真正平稳的。

# Python代码示例:KPSS检验
from statsmodels.tsa.stattools import kpss

result_kpss = kpss(price_spread, regression='c')
print(f'KPSS统计量: {result_kpss[0]}')
print(f'p值: {result_kpss[1]}')

if result_kpss[1] > 0.05:
    print('KPSS检验支持平稳性假设')
else:
    print('KPSS检验不支持平稳性假设')
实战建议:我通常把ADF和KPSS结合起来用。如果ADF的p值<0.05且KPSS的p值>0.05,我才认为价差是平稳的。这叫“双重确认”,能有效避免伪回归。

5.6 知识体系框架图

下面这张图总结了本章的核心逻辑。你可以把它当作一个思维导图来用。

统计套利理论基础 统计套利定义与分类 配对交易(2个资产) 多资产套利(3+个资产) 核心概念:协整与均值回复 平稳性检验 ADF检验(原假设:非平稳) KPSS检验(原假设:平稳) 双重确认:ADF显著 + KPSS不显著 → 平稳

5.7 本章小结

统计套利不是玄学,它建立在扎实的统计检验之上。我个人觉得,初学者最容易犯的错误就是跳过平稳性检验,直接拿价格序列做回归。结果呢?看起来漂亮的回测曲线,实盘一跑就崩。

记住三个关键点:

  • 协整是基础:没有协整,就没有均值回复,就没有统计套利。
  • 检验要双重:ADF和KPSS一起上,别偷懒。
  • 阈值要合理:别太窄,也别太宽,回测和实盘要一致。

好了,这一章就到这里。下一章我们会深入讲如何构建一个完整的配对交易策略,包括选股、参数优化和风险管理。到时候我会分享一些我踩过的坑,保证让你少走弯路。


公众号:蓝海数据掘金营,微信deep3321