跨期套利:价差回归模型、持仓成本模型与日历价差策略

聊到碳排放权期货的套利,我个人觉得跨期套利是最容易上手、也最容易踩坑的一块。说白了,就是利用同一品种、不同到期月份的合约之间的价差来做文章。你想想看,同一个商品,只是交割时间不同,价格按理说应该有个合理的关系。但市场有时候会抽风,让这个关系偏离,这时候就是我们出手的机会。

一、价差回归模型——均值回归的信仰

这个模型的核心思想很简单:价差会围绕一个均值上下波动。就像钟摆,摆到左边太远了,迟早要摆回来。我在做螺纹钢期货的时候就用过这个思路,效果还不错。

具体逻辑是这样的:

  • 计算近月合约与远月合约的价差:Spread = P_near - P_far
  • 用历史数据算出价差的均值 μ 和标准差 σ
  • 当价差偏离均值超过 2 倍标准差时,认为出现了套利机会
  • 价差过大(高于 μ+2σ):做空价差,即卖出近月、买入远月
  • 价差过小(低于 μ-2σ):做多价差,即买入近月、卖出远月

关键参数设置:

  • 回看窗口:我一般用 20 个交易日或 60 个交易日
  • 入场阈值:2 倍标准差(可调,1.5 倍更激进,2.5 倍更保守)
  • 止损设置:价差继续扩大 0.5 倍标准差时止损

我的经验:碳排放权期货的价差波动比商品期货更「黏」。我曾经用 2 倍标准差做螺纹钢,效果很好。但换到碳配额上,价差经常在 1.5 倍标准差附近晃悠很久。后来我把阈值调到了 1.8 倍,交易频率和胜率才平衡下来。

二、持仓成本模型——从理论到实战

这个模型更「硬核」一些。它从持有成本的角度,算出远月合约的「合理价格」应该是多少。

理论公式:

F = S × e^(r + c - y) × T

其中:

  • F:远月合约理论价格
  • S:近月合约价格
  • r:无风险利率(用国债收益率或 SHIBOR)
  • c:仓储成本(碳排放权没有实物仓储,但需要考虑配额冻结的资金成本)
  • y:便利收益(碳排放权的便利收益比较特殊,跟企业的减排压力有关)
  • T:两个合约到期日的时间差(年化)

嗯,这里要注意。碳排放权期货跟大豆、铜那些实物商品不一样。它没有仓储费、运输费这些。那持仓成本体现在哪?

碳排放权的特殊成本构成:

成本项 说明 估算方法
资金成本 买入配额占用的资金利息 配额价格 × 利率 × 时间
政策风险溢价 碳配额政策变动带来的不确定性 历史波动率调整 + 政策事件因子
流动性折价 远月合约流动性差,买卖价差大 用近月与远月的买卖价差差值估算

避坑指南:我曾经在计算持仓成本时,直接把商品期货的公式套用到碳配额上,结果回测曲线惨不忍睹。后来才发现,碳排放权的「便利收益」是负的——企业更愿意持有近月合约来履约,远月合约反而有折价。这个跟原油的 contango 结构正好相反。

三、日历价差策略逻辑——把理论变成代码

好了,理论说完了,咱们看看怎么落地。日历价差策略,说白了就是把上面两个模型结合起来,形成一个可执行的交易逻辑。

策略流程:

  1. 数据准备:获取近月合约(如 CEA2406)和远月合约(如 CEA2412)的日线数据
  2. 价差计算:实时计算 Spread = P_near - P_far
  3. 信号生成:
    • 用价差回归模型判断是否偏离均值
    • 用持仓成本模型验证偏离是否合理
    • 两个模型同时发出信号,才执行交易
  4. 仓位管理:根据价差偏离程度动态调整仓位
  5. 风险控制:设置止损、止盈、最大持仓时间

核心代码片段(Python 伪代码):

def calendar_spread_strategy(near_price, far_price):
    # 计算价差
    spread = near_price - far_price
    
    # 价差回归模型
    mean = spread.rolling(20).mean()
    std = spread.rolling(20).std()
    z_score = (spread - mean) / std
    
    # 持仓成本模型
    r = 0.025  # 无风险利率 2.5%
    T = 0.5    # 半年到期
    fair_spread = near_price * (1 - np.exp(-r * T))
    
    # 信号融合
    if z_score > 2 and spread > fair_spread * 1.1:
        return 'SHORT_SPREAD'  # 卖近买远
    elif z_score < -2 and spread < fair_spread * 0.9:
        return 'LONG_SPREAD'   # 买近卖远
    else:
        return 'NO_TRADE'

四、知识体系总览

为了让你看得更清楚,我画了一张图,把这三个模型的关系串起来:

跨期套利策略知识体系 跨期套利 价差回归模型 持仓成本模型 日历价差策略 核心逻辑 • 价差围绕均值波动 • 偏离2σ时入场 • 回看窗口:20/60日 • 止损:继续扩大0.5σ 适用:趋势不明显时 核心逻辑 • F = S × e^(r+c-y)T • 资金成本 + 政策溢价 • 便利收益为负 • 流动性折价调整 适用:市场结构清晰时 核心逻辑 • 双模型信号融合 • 动态仓位管理 • 止损 + 止盈 + 时限 • 回测验证参数 适用:稳健套利场景

你看这张图,三个模型不是孤立的。价差回归模型负责「找机会」,持仓成本模型负责「验证机会是否合理」,日历价差策略负责「怎么干」。我个人习惯把这三个模型做成一个 pipeline,每天跑一遍,有信号就挂单,没信号就等着。

一个小技巧:刚开始做的时候,别急着上实盘。先用历史数据回测 3 个月,看看你的参数在碳配额期货上表现如何。我记得我第一次回测时,发现 20 日均线在碳配额上太敏感了,后来改成了 30 日均线,效果好了很多。

好了,跨期套利的三个核心模型就聊到这儿。说白了,价差回归模型是「赌均值回归」,持仓成本模型是「算合理价格」,日历价差策略是「把两者拧在一起干活」。你想想看,这三个模型配合好了,是不是比单打独斗强多了?

专注资料整理