一、统计套利概述

大家好,我是你们的讲师。今天咱们聊聊统计套利——这个在量化圈里被说烂了、但真正吃透的人不多的概念。

先问个问题:你听到「套利」两个字,第一反应是什么?是不是想到那种「无风险、稳赚不赔」的买卖?嗯,我以前也是这么想的。直到我在实盘里栽过跟头,才明白事情没那么简单。

1.1 什么是统计套利

统计套利,说白了就是「靠概率赚钱」。它不是保证每一笔都赢,而是保证你做一百笔、一千笔之后,总体是赚钱的。

我个人的理解是:统计套利 = 统计规律 + 均值回归 + 风险管理。你找到两个或多个资产之间长期稳定的关系,当这个关系暂时偏离时,你押注它会回来。就这么简单。

举个例子:

  • 茅台和五粮液,历史上价差一直在某个范围内波动
  • 某天价差突然拉大到3倍标准差
  • 你卖空贵的、买入便宜的
  • 等价差回归后平仓,赚取差价

注意,这里的关键词是「历史上」。历史会重演吗?不一定。但统计套利赌的就是——大概率会。

1.2 统计套利 vs 无风险套利

这两个概念,我当年花了整整一个月才彻底分清。咱们直接上对比表:

对比维度 无风险套利 统计套利
风险程度 理论上为零 存在模型风险、执行风险
盈利确定性 100%确定(理论) 概率性,长期为正
典型场景 期现套利、跨市场价差锁定 配对交易、股指期货跨期套利
资金占用 通常较大 相对灵活
执行难度 拼速度、拼通道 拼模型、拼风控
失败后果 几乎不会失败 可能连续亏损,考验心理
核心区别一句话:无风险套利是「捡钱」,统计套利是「种地」——你得先播种、施肥、忍受干旱,最后才能收获。

我曾经在2015年股灾期间做过一个统计套利策略,模型显示价差已经偏离到4个标准差,我满仓杀入。结果呢?价差继续扩大到6个标准差,我爆仓了。这就是统计套利的残酷——它不保证你这次一定赢。

1.3 统计套利的数学基础

搞统计套利,绕不开两个数学概念:协整均值回归。我建议你把这俩当成你的左右手。

1.3.1 协整——找到「灵魂伴侣」

协整,说白了就是两个时间序列虽然各自乱跑,但它们之间的差距是稳定的。就像一对夫妻,各自工作生活可能乱七八糟,但两人的感情线一直很稳。

数学上,如果两个序列 X_t 和 Y_t 都是 I(1)(一阶单整),但存在一个系数 β 使得:

Z_t = Y_t - β * X_t  是平稳的(I(0))

那么我们就说 X 和 Y 是协整的。这个 β 就是你的对冲比率。

怎么检验?我一般用 Engle-Granger 两步法:

  1. 先做 OLS 回归:Y_t = α + β * X_t + ε_t
  2. 对残差 ε_t 做 ADF 单位根检验
  3. 如果残差平稳,就说明协整关系成立
实战小技巧:我习惯用 Johansen 检验替代 Engle-Granger,因为它能同时检验多个协整关系,而且对滞后阶数更鲁棒。代码里用 statsmodels 的 coint() 函数就行,但记得调一下 maxlag 参数。

1.3.2 均值回归——赌它「回来」

均值回归是统计套利的灵魂。你想想看,如果价差偏离后永远不回来,那你还套什么利?

均值回归的数学表达很简单:

dZ_t = θ * (μ - Z_t) * dt + σ * dW_t

这是 Ornstein-Uhlenbeck 过程。其中:

  • θ 是回归速度(越大越快)
  • μ 是长期均值
  • σ 是波动率

实际应用中,我一般用滚动窗口估计 μ 和 σ,然后设置 ±2σ 作为开仓阈值。但注意——市场结构会变,滚动窗口选多大?我踩过的坑是:牛市里窗口选太短,频繁开仓被止损;熊市里窗口选太长,错过机会。

避坑指南:我曾经用 60 天滚动窗口做沪深300和上证50的配对,2017年表现很好。但2018年市场风格突变,协整关系直接断裂,亏了15%。后来我加了「协整关系稳定性检验」,每20天重新跑一次,才稳住。

1.4 知识体系总览

下面这张图是我自己画的,把统计套利的核心逻辑串起来了。你看一遍,应该能有个整体印象。

统计套利知识体系 统计套利 资产选择 协整检验 均值回归模型 同行业/同板块 高相关性 ADF检验 Johansen检验 OU过程 半衰期计算 阈值设置 仓位管理 三大支柱缺一不可,任何一个环节出问题,策略都可能失效

1.5 一个简单的代码示例

光说不练假把式。我写个最简单的协整检验代码,你感受一下:

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.tsa.stattools import coint

# 模拟两个协整序列
np.random.seed(42)
n = 500
x = np.cumsum(np.random.randn(n))  # 随机游走
beta = 1.5
y = beta * x + np.random.randn(n) * 0.5  # 协整关系

# 协整检验
score, pvalue, _ = coint(y, x)
print(f"协整检验统计量: {score:.4f}")
print(f"p值: {pvalue:.4f}")

if pvalue < 0.05:
    print("✅ 存在协整关系,可以做统计套利")
else:
    print("❌ 没有协整关系,别硬做")

这段代码跑出来,p值通常远小于0.05。但注意——模拟数据和真实数据是两码事。我在实盘里遇到过协整检验p值0.001,结果进场后协整关系直接断裂的情况。为什么?因为样本外数据不满足同样的统计性质。

我的建议:协整检验只是入门。真正实战中,你还要做滚动协整检验、考虑结构突变、加入协整关系稳定性指标。别迷信p值,它只是工具,不是真理。

好了,这一章就到这里。统计套利的核心就是「找关系、测偏离、赌回归」。下一章咱们会深入讲配对交易的具体实现,包括怎么选对、怎么开仓、怎么止损。到时候我会拿我实盘踩过的坑给你当反面教材。


公众号:蓝海资料掘金营,微信deep3321