第1章:价差计算与统计
各位同学,今天咱们来聊聊价差计算与统计。这玩意儿说白了就是套利策略的「眼睛」——你看不清价差,就别谈什么套利了。我个人习惯把这一章当作整个套利策略的基石,地基不稳,楼盖得再高也得塌。
1.1 价差序列计算
价差,就是两个相关资产价格之间的差值。比如你在A交易所买BTC,在B交易所卖BTC,赚的就是这个差价。但实际操作中,价差不是简单的「价格A减价格B」这么粗暴。
标准价差公式:
价差 = P1 - P2 × (合约乘数比)
嗯,这里要注意一个坑:合约乘数。我在项目中遇到过,有人拿永续合约和交割合约做套利,结果发现价差序列忽大忽小,查了半天才发现是合约乘数没对齐。永续合约是1倍,交割合约可能是0.001倍,你不调整直接减,数据全废了。
核心要点:价差计算前,必须做三件事——
- 对齐时间戳(毫秒级精度)
- 统一合约乘数
- 处理缺失值(我习惯用前向填充)
举个例子,假设你有两个交易所的ETH/USDT数据:
| 时间 | 交易所A价格 | 交易所B价格 | 价差 |
|---|---|---|---|
| 10:00:00.000 | 3200.50 | 3201.20 | -0.70 |
| 10:00:00.100 | 3200.80 | 3200.90 | -0.10 |
| 10:00:00.200 | 3201.00 | 3200.60 | 0.40 |
你看,价差在正负之间来回跳,这就是套利机会的信号。但光看原始价差还不够,我们需要做统计检验来判断这些波动是不是「真机会」。
1.2 均值回归检验
均值回归,说白了就是「涨多了会跌,跌多了会涨」。套利策略的核心假设就是价差会回归均值。怎么检验?我一般用两种方法:
方法一:自相关函数(ACF)检验
如果价差序列的自相关系数在滞后1阶后迅速衰减到0附近,说明有均值回归特性。我曾经用Python跑过一个BTC跨交易所价差,ACF图显示滞后5阶还有显著相关性——嗯,那说明这个价差有趋势性,不适合做均值回归套利。
import statsmodels.api as sm
# 计算价差序列的自相关
acf_values = sm.tsa.acf(spread_series, nlags=20)
# 如果前几阶显著,后面快速衰减,说明均值回归
方法二:半衰期(Half-Life)计算
半衰期衡量的是价差偏离均值后,回到均值一半所需的时间。我个人习惯用这个指标来筛选策略——半衰期太短(<5分钟)说明噪音太多,太长(>2小时)说明回归太慢,都不适合做高频套利。
我的经验:半衰期在15-60分钟之间的价差序列,做中频套利效果最好。低于5分钟的基本是市场噪音,高于2小时的你不如去做趋势策略。
1.3 协整关系检验
协整检验,这是套利策略的「灵魂拷问」——两个资产的价格走势,到底是不是「一家人」?如果是,它们即使短期走散,长期也会重聚。
Engle-Granger两步法:
- 第一步:用OLS回归估计协整系数
- 第二步:对残差进行单位根检验
from statsmodels.tsa.stattools import coint
# 直接调用协整检验
score, pvalue, _ = coint(price_A, price_B)
if pvalue < 0.05:
print("存在协整关系,可以做套利")
else:
print("别想了,这俩没戏")
我在项目中遇到过最坑的事:用日线数据跑协整检验,p值0.01,信心满满上了实盘。结果一周亏了8%。后来换成5分钟数据重新跑,p值0.35——原来日线数据把日内波动全平滑掉了,协整关系是假的。所以,数据频率要和交易频率匹配,这是血的教训。
警告:协整检验对数据频率极其敏感。做高频套利就用分钟级数据,做日频套利就用日线数据。混着用,必死。
1.4 平稳性检验
平稳性检验,说白了就是看价差序列的「脾气」稳不稳定。如果价差的均值和方差随时间变化,那你的套利策略就是「刻舟求剑」。
ADF检验(Augmented Dickey-Fuller):
from statsmodels.tsa.stattools import adfuller
result = adfuller(spread_series)
if result[1] < 0.05:
print("价差序列平稳,可以做套利")
else:
print("不平稳,需要差分或放弃")
为什么会这样?你想想看,如果价差的均值从0漂移到10,你还在0附近开仓,那不是等着爆仓吗?我见过有人用不平稳的价差序列跑回测,夏普比率3.5,实盘直接亏到怀疑人生——因为回测时价差均值没变,实盘时均值漂移了。
平稳性检验的三种情况:
| 检验结果 | 含义 | 操作建议 |
|---|---|---|
| p < 0.01 | 高度平稳 | 直接做均值回归套利 |
| 0.01 < p < 0.05 | 弱平稳 | 需要滚动窗口重新检验 |
| p > 0.05 | 不平稳 | 放弃或做差分处理 |
我的建议:别只看p值。把价差序列画出来,肉眼扫一遍。如果看到明显的趋势或季节性波动,即使p值通过,也要谨慎。统计检验是工具,不是真理。
知识体系总览
下面这张图,是我自己总结的价差分析流程。每次做新策略前,我都会按这个流程走一遍,省得漏掉关键步骤。
这张图把整个流程串起来了。你从原始数据出发,先算价差,然后做三个检验。只有三个检验都通过,才考虑上策略。少一个,都可能翻车。
好了,这一章的内容就到这儿。价差计算与统计是套利策略的「体检报告」,报告不合格,就别硬上手术台。下一章咱们聊聊具体的套利策略设计,到时候会用到今天讲的这些检验方法。