第四章:核心数学基础——均值回归与协整、相关性分析、标准差与Z-Score、正态分布与尾部风险

各位同学,欢迎来到第四章。这一章,咱们要啃点硬骨头——数学基础。

别急着关页面。我知道很多人一听到「数学」两个字就头疼。但套利策略这东西,说白了就是数学游戏。你数学功底越扎实,策略的护城河就越深。我做了这么多年量化,见过太多人因为数学不过关,回测时风光无限,实盘时亏得底裤都不剩。

今天这章,我会把四个核心概念讲透:均值回归、协整、相关性分析、以及正态分布与尾部风险。每个概念我都会结合实战经验来讲,保证你听完就能用。

套利策略数学基础 均值回归 协整关系 相关性分析 正态分布与尾部风险 Z-Score 计算 标准差 皮尔逊/斯皮尔曼 尾部风险

4.1 均值回归:套利策略的基石

先聊聊均值回归。这个概念,我愿称之为套利策略的「灵魂」。什么意思呢?就是资产价格在偏离均值后,有回归均值的趋势。涨多了会跌,跌多了会涨——听起来像废话,但背后有数学逻辑支撑。

我个人习惯把均值回归想象成一根橡皮筋。价格被拉得越远,回弹的力道就越强。套利策略的核心,就是捕捉这种「回弹」的利润。

核心公式:

均值回归的核心假设:价格序列是平稳的,即均值、方差在时间上保持稳定。

检验方法:ADF检验(Augmented Dickey-Fuller Test)

举个例子。假设某只股票的历史均价是100元,现在跌到了90元。如果它存在均值回归特性,那么未来大概率会涨回100元附近。你就在90元买入,等它涨到100元卖出,赚这10块钱的差价。

听起来简单?嗯,这里要注意——不是所有资产都适合均值回归策略。我刚开始做套利时,踩过一个坑:拿趋势性很强的资产做均值回归,结果越跌越买,越买越亏,最后仓位爆了。

避坑指南:我曾经在2018年用均值回归策略做比特币,结果比特币从6000美元一路跌到3000美元,我一路加仓,最后亏了40%。后来我才明白——趋势行情里做均值回归,等于接飞刀。

4.2 协整:比相关性更高级的关系

说到协整,很多人会把它和相关性搞混。我明确告诉你——这是两码事。

相关性衡量的是两个变量「同涨同跌」的程度。而协整衡量的是两个变量之间是否存在长期稳定的线性关系。即使两个资产的相关性很低,它们也可能存在协整关系。

举个例子。股票A和股票B,短期看它们涨跌不同步,相关性只有0.3。但长期看,它们的价差始终围绕一个固定值波动。这就是协整。

实战技巧:我个人习惯用「价差序列」来判断协整。如果价差序列是平稳的(通过ADF检验),那么这两个资产就存在协整关系。这时候就可以做配对交易——价差扩大时做空价差,价差缩小时做多价差。

协整检验的步骤很简单:

  1. 选取两个资产的价格序列
  2. 做线性回归,得到残差序列
  3. 对残差序列做ADF检验
  4. 如果残差平稳,则存在协整关系
# Python 协整检验示例
import statsmodels.api as sm
from statsmodels.tsa.stattools import adfuller

# 假设 price_a 和 price_b 是两个价格序列
# 第一步:线性回归
price_a = sm.add_constant(price_a)
model = sm.OLS(price_b, price_a).fit()
residuals = model.resid

# 第二步:对残差做ADF检验
adf_result = adfuller(residuals)
print(f'ADF统计量: {adf_result[0]}')
print(f'p值: {adf_result[1]}')
# p值小于0.05,说明残差平稳,存在协整关系

4.3 相关性分析:皮尔逊 vs 斯皮尔曼

相关性分析,是套利策略的「体检报告」。它告诉你两个资产之间到底有没有关系,关系有多强。

常用的有两种:皮尔逊相关系数和斯皮尔曼秩相关系数。

指标 皮尔逊相关系数 斯皮尔曼秩相关系数
适用场景 线性关系 单调关系(包括非线性)
对异常值敏感度
数据要求 正态分布 无分布要求
取值范围 -1 到 1 -1 到 1

我一般怎么用?如果数据看起来比较「干净」,没有太多异常值,我会用皮尔逊。但如果数据里有明显的异常点——比如某天突然暴涨暴跌——我会改用斯皮尔曼,因为它对异常值不敏感。

个人经验:我在做加密货币套利时,经常遇到极端行情。这时候皮尔逊相关系数会变得很不稳定,今天0.8,明天0.2。换成斯皮尔曼后,结果稳定多了。说白了,斯皮尔曼更适合「脏数据」场景。

4.4 标准差与Z-Score:量化偏离程度

标准差衡量的是数据的离散程度。Z-Score衡量的是某个数据点偏离均值的程度,单位是标准差。

公式很简单:

Z = (X - μ) / σ

其中X是当前值,μ是均值,σ是标准差。

在套利策略里,Z-Score就是你的「入场信号」。当Z-Score的绝对值大于某个阈值(比如2),就说明价格偏离均值太远了,大概率会回归。

# Z-Score 计算示例
import numpy as np

# 假设 prices 是价格序列
mean = np.mean(prices)
std = np.std(prices)
current_price = prices[-1]

z_score = (current_price - mean) / std
print(f'当前Z-Score: {z_score:.2f}')

# 交易信号
if z_score > 2:
    print('做空信号:价格过高,预期回归')
elif z_score < -2:
    print('做多信号:价格过低,预期回归')
else:
    print('观望:价格在合理范围内')

注意:Z-Score的阈值不是固定的。我见过有人用1.5,有人用2.5,还有人用3。这取决于资产的波动特性。我个人习惯先用历史数据回测,找到最优阈值。别拍脑袋定阈值,那是赌博。

4.5 正态分布与尾部风险

正态分布,就是那个钟形曲线。很多金融模型都假设收益率服从正态分布。但现实呢?

现实是——金融数据的尾部比正态分布要「厚」得多。什么意思?就是极端行情发生的概率,比正态分布预测的要高得多。

举个例子。按照正态分布,3倍标准差以外的事件,发生的概率只有0.3%。但在真实市场里,这种「黑天鹅」事件隔几年就来一次。2008年金融危机、2020年疫情暴跌、2022年Luna崩盘——这些都是尾部事件。

核心观点:如果你完全依赖正态分布来设计套利策略,你可能会在尾部事件中爆仓。我见过太多人,回测时年化30%,实盘时遇到一次尾部事件就亏光。

怎么应对尾部风险?我的做法是:

  1. 用历史数据计算实际分布的尾部厚度(峰度)
  2. 在策略中加入止损和仓位管理
  3. 永远不要满仓,留足安全边际

避坑指南:我曾经设计过一个套利策略,回测了5年数据,夏普比率高达3.0。结果实盘第3个月就遇到一次「闪崩」,策略直接亏了15%。后来我复盘发现,那5年回测数据里没有包含任何尾部事件。从那以后,我每次回测都会刻意加入「压力测试」——模拟极端行情下的表现。

好了,这一章的内容就到这里。数学基础打牢了,后面的策略搭建才能稳。下一章我们会进入实战环节,开始搭建第一个完整的套利策略。


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