一、价差交易基础:什么是价差交易、统计套利的核心思想、价差回归的数学原理
1.1 价差交易:不只是「买低卖高」那么简单
先说说价差交易是什么。说白了,就是同时做多一个品种、做空另一个品种,赚它们之间价差波动的钱。
举个例子。我早年做螺纹钢和热卷的配对交易。螺纹钢和热卷都是钢材,但用途不同。正常情况下,热卷比螺纹钢贵个200-300块。有一回,热卷突然跌得比螺纹钢还便宜了。这时候我就买热卷、卖螺纹钢,等它们价差恢复正常。这就是最朴素的价差交易。
价差交易的核心,不是预测价格涨跌,而是预测「相对关系」的变化。你不需要知道大盘明天是涨是跌,你只需要知道A和B之间的价差会不会回归。
1.2 统计套利:用数学找「定价错误」
统计套利,听起来高大上,其实核心就一句话:找到历史上稳定的价差关系,当价差偏离时,赌它会回来。
我刚开始做统计套利时,犯过一个低级错误。我拿了两只银行股,发现它们价差很稳定,就开干了。结果价差越拉越大,亏得我头皮发麻。后来才发现,这两只银行的基本面已经变了——一个在转型零售,一个还在吃对公。历史关系已经失效了。
统计套利有几个前提条件,你得心里有数:
- 协整性:两个品种的价差必须是平稳的,不能越走越远
- 均值回归:价差偏离后,有回归均值的倾向
- 交易成本:你得算清楚,价差波动能不能覆盖手续费和滑点
1.3 价差回归的数学原理:别怕,就几个公式
数学原理其实不复杂。我们一步步来。
第一步:定义价差
假设有两个品种A和B,价格分别是P_A和P_B。最简单的价差就是:
Spread = P_A - P_B
但现实中,两个品种的波动幅度往往不一样。所以更常用的是「对冲后的价差」:
Spread = P_A - β × P_B
这个β,就是对冲比率。怎么算?用线性回归,把P_A对P_B做回归,斜率就是β。
第二步:检验平稳性
价差序列必须是平稳的,才能做均值回归。平稳性检验用ADF检验。我一般这么写:
from statsmodels.tsa.stattools import adfuller
# 假设 spread 是价差序列
result = adfuller(spread)
if result[1] < 0.05:
print("价差平稳,可以做统计套利")
else:
print("价差不平稳,换个配对试试")
第三步:计算回归阈值
价差平稳了,接下来就是找「什么时候进场」。我习惯用均值±N倍标准差作为阈值:
mean = np.mean(spread)
std = np.std(spread)
upper = mean + 2 * std # 上轨
lower = mean - 2 * std # 下轨
当价差突破上轨,我就做空价差(卖A买B)。跌破下轨,就做多价差(买A卖B)。
1.4 一张图看懂价差回归交易
下面这张图,是我自己画的核心逻辑框架。你看一遍就能明白整个流程:
1.5 几个必须知道的坑
做价差交易这些年,我踩过的坑不少。挑几个典型的说说:
- 历史关系会变:我曾经用2018年的数据回测,效果完美。结果2019年一实盘,亏成狗。为什么?因为市场结构变了。记得定期重新计算β和阈值。
- 别忽略交易成本:价差交易是高频还是低频?如果是高频,手续费和滑点能吃掉你大部分利润。我一般要求预期收益至少是成本的3倍才出手。
- 小心「假回归」:价差偏离后,不一定马上回归。它可能继续偏离,甚至永远不回来。所以止损一定要设。我习惯用「阈值+时间止损」——价差偏离超过阈值后,如果N个周期还没回归,就认赔出场。
1.6 总结一下
价差交易的核心,就是找到两个「会一起走」的品种,在它们走散时下注,等它们重新走在一起。统计套利用数学帮你找到这种「会一起走」的关系,而价差回归的数学原理——协整检验、均值回归、阈值设定——就是你的工具箱。
嗯,这一章就到这里。记住:别贪心,别扛单,别迷信历史。市场永远在变,你的策略也得跟着变。