第二章 套利交易基础理论:一价定律、无风险套利与统计套利、套利交易的数学基础
各位交易员朋友,大家好。我是老张,在量化套利这个行当里摸爬滚打了十几年。今天咱们聊点硬核的——套利交易的基础理论。很多人觉得套利就是“低买高卖”,这话没错,但太粗糙了。真正的套利,背后有一套严密的逻辑和数学支撑。
我个人习惯,每次开新策略之前,都会先把这几个基础概念在脑子里过一遍。为什么?因为很多亏钱的策略,根源就是基础没打牢。你想想看,地基不稳,楼盖得再高也是白搭。
2.1 一价定律:套利的逻辑起点
一价定律,说白了就是:同一资产,在同一时间,价格应该一样。如果不一样,就存在套利机会。
举个例子。我在2015年做股指期货套利时,遇到过沪深300股指期货主力合约和次月合约价差突然拉大到50个点。正常情况下,价差应该在20个点左右。为什么会出现这种情况?因为市场情绪恐慌,有人不计成本地抛售。这时候,一价定律就被暂时打破了。
核心要点:一价定律成立的前提是:
- 资产完全相同(或可替代)
- 市场无摩擦(无交易成本、无限制)
- 信息完全对称
现实中,这些前提几乎都不成立。所以,套利机会才会存在。
嗯,这里要注意:一价定律不是自然规律,它是经济学假设。我们做套利,就是在利用这个假设被打破的瞬间。
2.2 无风险套利:教科书里的“完美”机会
无风险套利,听起来很美。理论上,你不需要承担任何风险,就能赚到钱。但我在实战中告诉你:真正的无风险套利,几乎不存在。
为什么?因为市场太聪明了。一旦出现无风险套利机会,资金会瞬间涌入,把价差抹平。你想想看,如果真有这种好事,谁还去上班?
我曾经在2018年做过一次跨市场ETF套利。当时上证50ETF在A股和港股同时上市,两边价格差了0.3%。我算了一下,扣除手续费和汇率成本,还能赚0.1%。结果呢?我下单的时候,价格已经变了。等我成交,价差已经没了。
避坑指南:我曾经以为无风险套利是“稳赚不赔”的。后来发现,它面临三大风险:
- 执行风险:你看到的价格,不一定能成交
- 流动性风险:市场深度不够,你进得去,出不来
- 模型风险:你算的价差,可能忽略了某些成本
所以,我现在的策略里,从来不说“无风险”,只说“低风险”。
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 知识体系框架
说了这么多,咱们用一张图来总结一下本章的核心逻辑。
这张图把本章的核心逻辑串起来了。从一价定律出发,衍生出无风险套利和统计套利。而数学基础,是连接理论和实战的桥梁。最后,所有理论都要落到实战应用上。
好了,第二章的内容就到这里。记住:理论是地图,实战是走路。没有地图,你会迷路;但只看地图,你永远到不了目的地。