第二章 套利交易基础理论:一价定律、无风险套利与统计套利、套利交易的数学基础

各位交易员朋友,大家好。我是老张,在量化套利这个行当里摸爬滚打了十几年。今天咱们聊点硬核的——套利交易的基础理论。很多人觉得套利就是“低买高卖”,这话没错,但太粗糙了。真正的套利,背后有一套严密的逻辑和数学支撑。

我个人习惯,每次开新策略之前,都会先把这几个基础概念在脑子里过一遍。为什么?因为很多亏钱的策略,根源就是基础没打牢。你想想看,地基不稳,楼盖得再高也是白搭。

2.1 一价定律:套利的逻辑起点

一价定律,说白了就是:同一资产,在同一时间,价格应该一样。如果不一样,就存在套利机会。

举个例子。我在2015年做股指期货套利时,遇到过沪深300股指期货主力合约和次月合约价差突然拉大到50个点。正常情况下,价差应该在20个点左右。为什么会出现这种情况?因为市场情绪恐慌,有人不计成本地抛售。这时候,一价定律就被暂时打破了。

核心要点:一价定律成立的前提是:

  • 资产完全相同(或可替代)
  • 市场无摩擦(无交易成本、无限制)
  • 信息完全对称

现实中,这些前提几乎都不成立。所以,套利机会才会存在。

嗯,这里要注意:一价定律不是自然规律,它是经济学假设。我们做套利,就是在利用这个假设被打破的瞬间。

2.2 无风险套利:教科书里的“完美”机会

无风险套利,听起来很美。理论上,你不需要承担任何风险,就能赚到钱。但我在实战中告诉你:真正的无风险套利,几乎不存在

为什么?因为市场太聪明了。一旦出现无风险套利机会,资金会瞬间涌入,把价差抹平。你想想看,如果真有这种好事,谁还去上班?

我曾经在2018年做过一次跨市场ETF套利。当时上证50ETF在A股和港股同时上市,两边价格差了0.3%。我算了一下,扣除手续费和汇率成本,还能赚0.1%。结果呢?我下单的时候,价格已经变了。等我成交,价差已经没了。

避坑指南:我曾经以为无风险套利是“稳赚不赔”的。后来发现,它面临三大风险:

  1. 执行风险:你看到的价格,不一定能成交
  2. 流动性风险:市场深度不够,你进得去,出不来
  3. 模型风险:你算的价差,可能忽略了某些成本

所以,我现在的策略里,从来不说“无风险”,只说“低风险”。

2.3 统计套利:实战派的武器

既然无风险套利不靠谱,那我们用什么?统计套利。这是实战派最常用的工具。

统计套利的逻辑很简单:利用历史统计规律,寻找价格偏离的机会。它不要求价格完全回归,只要求大概率回归。

举个例子。我做过一个螺纹钢和热卷的跨品种套利。这两个品种都是钢材,价格走势高度相关。我计算了它们的价差历史分布,发现价差在[-50, 50]区间内波动。当价差超过80时,我就做空价差(卖螺纹买热卷);当价差低于-80时,我就做多价差(买螺纹卖热卷)。

个人经验:统计套利的关键在于:

  • 相关性要稳定:我一般用滚动窗口计算相关系数,低于0.7的品种直接放弃
  • 价差要均值回复:用ADF检验,p值小于0.05才考虑
  • 止损要严格:我习惯设2倍标准差作为止损线

你可能会问:统计套利会不会失效?会。我记得2020年3月,疫情导致市场恐慌,很多统计套利策略都爆仓了。为什么?因为价差不再均值回复,而是单边运行。所以,统计套利不是万能的,它需要配合风控。

2.4 套利交易的数学基础

做套利,不懂数学是不行的。但别怕,我们不需要搞什么高深的数学,掌握几个核心工具就够了。

2.4.1 价差计算

价差是套利的基础。最简单的价差公式:

价差 = 资产A价格 - 资产B价格 × 对冲比率

对冲比率怎么算?我习惯用线性回归。比如,我要做贵州茅台和五粮液的配对交易。我取过去60天的收盘价,做回归:

茅台价格 = α + β × 五粮液价格 + ε

这里的β就是对冲比率。我一般用最小二乘法(OLS)来估计。

代码示例:用Python计算对冲比率

import numpy as np
from sklearn.linear_model import LinearRegression

# 假设price_a和price_b是两列价格数据
X = price_b.reshape(-1, 1)
y = price_a

model = LinearRegression()
model.fit(X, y)

beta = model.coef_[0]  # 对冲比率
alpha = model.intercept_  # 截距

2.4.2 均值回复检验

统计套利的前提是价差均值回复。怎么检验?用ADF检验。

from statsmodels.tsa.stattools import adfuller

# spread是价差序列
result = adfuller(spread)
p_value = result[1]

if p_value < 0.05:
    print("价差是平稳的,适合做统计套利")
else:
    print("价差不平稳,放弃")

我个人习惯,p值小于0.01才放心。为什么?因为0.05的显著性水平,在实盘中经常失效。

2.4.3 交易信号生成

有了价差和平稳性检验,接下来就是生成交易信号。我常用的方法是:

  • Z-score法:计算价差的Z-score,当Z-score > 2时做空价差,Z-score < -2时做多价差
  • 分位数法:取价差的历史90%分位数和10%分位数作为阈值
  • 布林带法:用移动平均±2倍标准差作为上下轨

实战技巧:我一般不用固定的阈值。因为市场在变,价差的波动率也在变。我习惯用滚动窗口(比如60天)动态计算阈值。这样能适应市场的变化。

2.4.4 风险控制数学

套利交易不是稳赚的。我们需要用数学来控制风险。

风险指标 计算公式 我的经验值
最大回撤 Max(峰值 - 谷值) / 峰值 不超过5%
夏普比率 (年化收益 - 无风险利率) / 年化波动率 大于1.5
胜率 盈利交易次数 / 总交易次数 大于60%
盈亏比 平均盈利 / 平均亏损 大于1.5

嗯,这里要注意:这些指标都是事后统计。实盘中,我还会加一个“单笔最大亏损”的限制,比如不超过总资金的2%。

2.5 知识体系框架

说了这么多,咱们用一张图来总结一下本章的核心逻辑。

套利交易基础理论框架 一价定律 无风险套利 统计套利 数学基础 价差计算 均值回复检验 交易信号生成 风险控制 实战应用:跨品种、跨期、跨市场套利 核心逻辑:从理论到数学,再到实战,层层递进

这张图把本章的核心逻辑串起来了。从一价定律出发,衍生出无风险套利和统计套利。而数学基础,是连接理论和实战的桥梁。最后,所有理论都要落到实战应用上。

好了,第二章的内容就到这里。记住:理论是地图,实战是走路。没有地图,你会迷路;但只看地图,你永远到不了目的地。


专注资料整理