第四节:价差计算——价差、比率、相关系数与协整关系

各位同学,今天我们来聊聊跨市场套利中最核心的数学工具。说白了,就是怎么量化两个市场之间的“关系”。

我个人习惯把价差分析分成四个层次:价差比率相关系数协整关系。它们就像四把尺子,一把比一把精密。

1. 价差:最直观的套利信号

价差就是两个价格直接相减。比如沪铜和伦铜,一个在上海期货交易所,一个在伦敦金属交易所。如果沪铜价格是50000元/吨,伦铜价格是6000美元/吨(假设汇率7.2),那价差就是:

价差 = 沪铜价格 - 伦铜价格 × 汇率
     = 50000 - 6000 × 7.2
     = 50000 - 43200
     = 6800 元/吨

嗯,这里要注意:价差必须统一计价单位。我在项目中遇到过有人直接用人民币价格减美元价格,结果算出来一个天文数字——那其实是单位没对齐。

核心要点:价差 = P1 - P2,其中P1和P2必须是同一货币、同一单位下的价格。

2. 比率:消除量纲影响

价差有个问题:它受价格绝对值影响。比如铜价从50000涨到60000,价差可能从6800变成7800,但这不代表套利机会变大了——可能只是整体价格水平上移了。

这时候就要用比率:

比率 = P1 / P2

还是刚才的例子:

比率 = 50000 / (6000 × 7.2) = 50000 / 43200 ≈ 1.157

这个1.157意味着沪铜比伦铜贵了15.7%。比率的好处是它不受价格水平影响,只看相对关系。我习惯用比率来做长期均值回归的判断——如果历史均值是1.10,现在到了1.15,那可能就偏高了。

我的经验:比率适合价格波动较大的品种,比如股指期货。价差适合价格波动较小的品种,比如国债期货。选哪个,取决于你的数据特征。

3. 相关系数:衡量线性关系

相关系数衡量两个价格序列的线性相关程度。取值范围在-1到1之间:

  • 1:完全正相关,一个涨另一个也涨
  • -1:完全负相关,一个涨另一个跌
  • 0:没有线性关系

计算公式:

ρ = Cov(P1, P2) / (σ1 × σ2)

其中Cov是协方差,σ是标准差。说白了,就是看两个价格一起波动的程度。

我见过有人只看相关系数就做套利,结果亏得很惨。为什么?因为相关系数只告诉你“它们一起动”,但没告诉你“它们会不会分开”。

避坑指南:相关系数高不代表套利机会好。两个完全正相关的品种,价差可能一直扩大,永远不会回归。相关系数只是第一步,不是终点。

4. 协整关系:套利的真正基石

这才是我们今天的主角。协整关系说的是:两个价格序列虽然各自随机游走,但它们之间存在一个长期均衡关系。一旦偏离这个均衡,就会自动回归。

用数学语言说:如果两个时间序列P1和P2都是I(1)(一阶单整),且存在一个线性组合P1 - β×P2是平稳的(I(0)),那么它们就是协整的。

检验协整的常用方法是Engle-Granger两步法

  1. 第一步:用OLS回归 P1 = α + β×P2 + ε
  2. 第二步:检验残差ε是否平稳(用ADF检验)

代码示例(Python):

import numpy as np
import pandas as pd
from statsmodels.tsa.stattools import adfuller
import statsmodels.api as sm

# 假设p1和p2是两个价格序列
def check_cointegration(p1, p2, significance=0.05):
    # 第一步:OLS回归
    X = sm.add_constant(p2)
    model = sm.OLS(p1, X).fit()
    beta = model.params[1]
    residuals = model.resid
    
    # 第二步:ADF检验残差
    adf_stat, p_value, _, _, critical_values, _ = adfuller(residuals)
    
    # 判断是否协整
    is_cointegrated = p_value < significance
    
    return {
        'beta': beta,
        'adf_statistic': adf_stat,
        'p_value': p_value,
        'is_cointegrated': is_cointegrated,
        'residuals': residuals
    }

# 使用示例
result = check_cointegration(p1, p2)
print(f"协整系数β: {result['beta']:.4f}")
print(f"ADF检验p值: {result['p_value']:.4f}")
print(f"是否协整: {result['is_cointegrated']}")

我曾经用这个方法做沪深300和中证500的配对交易。两个指数看起来相关性很高,但协整检验发现它们并不协整——也就是说,价差不会自动回归。如果当时只看相关系数就进场,后果不堪设想。

关键区别:相关系数衡量的是“一起动的程度”,协整衡量的是“会不会分开”。套利交易需要的是协整,不是高相关。

知识体系总览

下面这张图总结了四个层次的关系:

价差分析四层体系 价差 P1 - P2 比率 P1 / P2 相关系数 ρ = Cov/(σ1σ2) 协整关系 P1 - β×P2 平稳(I(0)) Engle-Granger两步法 + ADF检验 消除量纲 衡量线性关系 检验长期均衡 也可直接检验 套利核心:协整关系 → 价差均值回归 → 交易信号

实际应用中的选择

那么在实际项目中,到底用哪个?我给大家一个参考:

指标 适用场景 优点 缺点
价差 同品种、同市场 直观、计算简单 受价格水平影响
比率 跨品种、跨市场 消除量纲、适合均值回归 对极端值敏感
相关系数 初步筛选、风险对冲 快速判断线性关系 不保证价差回归
协整关系 配对交易、统计套利 保证长期均衡、可交易 计算复杂、需检验

我的建议:做套利策略,至少要用到协整检验。相关系数可以作为快速筛选工具,但最终决策一定要看协整。我见过太多人用相关系数做交易,结果价差一去不返——那叫趋势,不叫套利。

好了,这一节的内容就到这里。记住:价差是表象,协整是本质。下次当你看到两个价格在波动时,先问问自己——它们真的会回来吗?


专注资料整理