12、价差与套利信号:期现套利、跨期套利、统计套利

套利交易,说白了就是赚「定价错误」的钱。我刚开始做高频时,觉得套利很神秘,后来发现核心就一句话:同一个东西,在不同地方卖不同价,你倒一手就赚了。但高频环境里,这个「不同价」可能只存在几毫秒,抓不住就没了。

今天咱们聊聊三种最常见的套利模式:期现套利、跨期套利、统计套利。每种我都会结合实战经验,讲讲信号怎么提取、坑在哪里。

核心思想:套利不是预测涨跌,而是捕捉价差的均值回归。价差偏离到一定程度,你就反向开仓,等它回归。

12.1 期现套利:最直接的定价纠偏

期现套利,就是期货和现货之间的价差交易。理论上,期货价格 = 现货价格 + 持有成本(利息、仓储、保险等)。当这个等式被打破,机会就来了。

信号提取逻辑:

  • 计算理论基差 = 现货价格 × (1 + 无风险利率 × 剩余天数/365) - 期货价格
  • 当理论基差 > 阈值(比如0.5%),买入现货、卖出期货
  • 当理论基差 < -阈值,卖出现货、买入期货

我在项目中遇到过一个问题:现货的流动性不够。你算好了价差,结果现货一买就拉高,成本全变了。所以做期现套利,一定要选流动性好的标的,比如沪深300 ETF 和对应的股指期货。

避坑指南:我曾经在螺纹钢上吃过亏。理论基差到了1.2%,我果断开仓。结果交割月临近,基差就是不回归,最后被迫交割,仓储费吃掉了一半利润。后来我加了一条规则:临近交割日5天内,不做期现套利

12.2 跨期套利:同一品种不同月份

跨期套利,就是同一个期货品种,不同月份合约之间的价差交易。比如螺纹钢2401和2405,正常情况下远月比近月贵(因为持有成本)。但当市场情绪极端时,价差会扭曲。

常见的跨期套利策略:

  • 牛市套利:买入近月、卖出远月。预期近月涨得比远月快
  • 熊市套利:卖出近月、买入远月。预期近月跌得比远月快
  • 蝶式套利:同时操作三个合约,赚中间合约的定价偏差

我个人习惯用价差的历史分位数来判断开仓时机。比如,统计过去60天的价差分布,当当前价差处于95%分位数以上时,做空价差;处于5%分位数以下时,做多价差。

import numpy as np
import pandas as pd

def cross_month_spread_signal(price_near, price_far, lookback=60):
    """
    跨期套利信号生成
    price_near: 近月合约价格序列
    price_far: 远月合约价格序列
    """
    spread = price_far - price_near
    # 计算历史分位数
    lower = np.percentile(spread, 5)
    upper = np.percentile(spread, 95)
    
    current_spread = spread.iloc[-1]
    
    if current_spread > upper:
        return -1  # 做空价差:卖远买近
    elif current_spread < lower:
        return 1   # 做多价差:买远卖近
    else:
        return 0   # 无信号

注意:跨期套利最怕的是移仓换月。你想想看,合约快到期了,流动性会骤降,价差可能瞬间跳变。我建议在主力合约切换前3天就平仓,别贪最后那点利润。

12.3 统计套利:用数学找定价偏差

统计套利,说白了就是找相关性高的品种对,当它们的价差偏离历史均值时,做回归交易。比如,茅台和五粮液,历史上价差一直稳定在某个范围,突然有一天茅台暴涨、五粮液没动,价差拉大了——这时候就可以做空茅台、做多五粮液。

核心步骤:

  1. 选对:找到协整关系稳定的品种对。用ADF检验,p值要小于0.05
  2. 建模:用OLS回归算出对冲比例(即买1手A,卖多少手B)
  3. 设阈值:计算残差的标准差,当残差超过2倍标准差时开仓
  4. 止损:当残差超过3倍标准差时,说明模型可能失效,果断止损

嗯,这里要注意:统计套利不是无风险套利。它赌的是价差会回归,但如果基本面变了(比如茅台出了利空、五粮液出了利好),价差可能永远不回归。我见过有人死扛统计套利,结果亏了30%。

实战经验:我建议统计套利只做同行业、同板块的品种。比如银行股之间、钢铁股之间。跨行业的统计套利,相关性太脆弱,容易翻车。

12.4 三种套利的对比与选择

套利类型 风险等级 持仓周期 适合场景 最大坑点
期现套利 短(几天) 流动性好的品种 交割日风险
跨期套利 中(几周) 趋势明显的市场 移仓换月
统计套利 中高 中长(几周到几月) 高相关性品种对 基本面突变

我个人习惯是:资金量大的时候做期现套利,稳;市场波动大的时候做跨期套利,机会多;震荡市做统计套利,赚点小钱补贴家用。

12.5 套利信号的实时监控框架

做高频套利,信号必须实时更新。我一般用下面这个流程:

套利信号实时监控框架 实时行情数据 价差计算 & 标准化处理 阈值判断:是否超过开仓/止损阈值? 开仓信号 继续监控 止损信号

这个框架看着简单,但实际跑起来,延迟是关键。我见过有人用Python的for循环逐条处理数据,延迟到了50毫秒,套利机会早没了。后来我改用C++写核心计算,Python只做信号展示,延迟降到了2毫秒以内。

小技巧:套利信号的阈值不要设得太死。我一般用动态阈值——根据最近30分钟的波动率调整。波动率大的时候放宽阈值,波动率小的时候收紧阈值。这样能过滤掉很多假信号。

好了,关于价差与套利信号,今天就聊这么多。记住一句话:套利赚的是辛苦钱,拼的是速度和风控。别想着靠套利一夜暴富,它更像是量化交易里的「稳定器」——赚不多,但亏也亏不到哪去。


无相订单流研究社 微信Lucian808555