第十四章:跨期基差套利:近月与远月合约基差、展期收益(Roll Yield)、日历价差策略

跨期基差套利,说白了就是吃「时间差」这碗饭。我做了这么多年量化,发现很多新手一上来就盯着单边行情猛干,结果被波动率打得鼻青脸肿。而真正稳定的收益,往往藏在近月与远月合约之间的价差里。

这一章,我们聊聊三个核心概念:近远月基差、展期收益,以及日历价差策略。嗯,这三个东西其实是同一件事的不同切面。

14.1 近月与远月合约的基差结构

先看一个最简单的场景。你打开行情软件,看到螺纹钢期货:

  • 近月合约(比如RB2401):价格3800元/吨
  • 远月合约(比如RB2405):价格3750元/吨

近月比远月贵50块。这就是「反向市场」,也叫Backwardation。反过来,如果远月比近月贵,那就是「正向市场」,Contango。

我个人习惯把基差结构画成一条曲线。你想想看,这条曲线反映了市场对未来的预期。比如:

  • Contango(升水):远月贵,说明市场预期未来供应宽松或需求走弱。常见于库存高企的品种。
  • Backwardation(贴水):近月贵,说明现货紧缺,市场急着要货。比如某些农产品收获季前。

我在项目中遇到过最极端的例子是2021年的动力煤。近月合约比远月贵了将近20%,那段时间做空近月、做多远月的套利策略,简直是捡钱。但要注意,这种极端结构往往伴随着强监管风险——嗯,后来确实被窗口指导了。

核心要点:基差结构不是静止的,它会随着时间、库存、政策、情绪等因素动态变化。我们的任务就是捕捉这种变化中的套利机会。

14.2 展期收益(Roll Yield)—— 时间的朋友还是敌人?

展期收益,英文叫Roll Yield。这个词听起来高大上,其实意思很简单:当你持有期货头寸,需要把快到期的合约「滚」到下一个合约时,你赚或亏的那部分价差。

举个例子:

  • 你在Contango市场做多。近月合约到期时,你要平掉它,同时买入更贵的远月合约。每次展期,你都在「高买低卖」,亏掉展期成本。这就是负的Roll Yield。
  • 反过来,在Backwardation市场做多。近月到期时,你平掉它,买入更便宜的远月合约。每次展期,你都在「低买高卖」,赚到展期收益。这就是正的Roll Yield。

为什么会这样?说白了,期货价格最终要向现货价格收敛。Contango结构下,远月价格会慢慢「跌」向现货,所以做多的人天然吃亏。Backwardation则相反。

我记得有一次做原油ETF的展期研究。WTI原油长期处于Contango,那些被动做多的ETF,每年光展期成本就要吃掉3%-5%的收益。很多散户根本不知道这回事,还以为自己买的是「原油价格」——其实买的是「展期损耗」。

实战技巧:如果你做趋势跟踪策略,尽量选择Backwardation结构的品种开多单。这样你不仅赚趋势的钱,还能赚展期的钱。双重收益,它不香吗?

14.3 日历价差策略 —— 把基差变成交易信号

日历价差策略,就是同时买入一个合约、卖出另一个合约,赌它们之间的价差会扩大或缩小。这是跨期套利最经典的做法。

策略逻辑其实很简单:

  1. 做多价差:买入近月,卖出远月。赌近月比远月涨得多(或跌得少)。适合Backwardation加深时。
  2. 做空价差:卖出近月,买入远月。赌近月比远月涨得少(或跌得多)。适合Contango加深时。

我一般用「价差比率」而不是「价差绝对值」来做信号。因为不同品种、不同合约的绝对价差差异太大,没法统一比较。

下面是我常用的一个简单策略框架:

# 伪代码示例:日历价差策略信号生成
def calendar_spread_signal(near_price, far_price, lookback=20):
    spread = near_price - far_price
    zscore = (spread - spread.rolling(lookback).mean()) / spread.rolling(lookback).std()
    
    if zscore > 2.0:
        return '做空价差'  # 价差过高,预期回归
    elif zscore < -2.0:
        return '做多价差'  # 价差过低,预期回归
    else:
        return '观望'

嗯,这里要注意:Z-score阈值设多少,取决于品种的波动特性。我习惯先用历史数据回测,找到最优参数。别一上来就用2.0,有些品种波动小,1.5就够了;有些波动大,2.5才合适。

避坑指南:我曾经在螺纹钢上吃过亏。当时价差Z-score到了-3.0,我以为稳了,重仓做多价差。结果交割月临近,近月合约被逼仓,价差继续扩大到了-5.0。嗯,那次回撤让我记住了:日历价差策略一定要考虑交割月效应。临近交割前两周,最好别碰。

14.4 展期收益的量化计算

展期收益不是拍脑袋算的。我一般用下面这个公式:

Roll Yield = (F_t - F_{t-1}) / F_{t-1} - (S_t - S_{t-1}) / S_{t-1}

其中F是期货价格,S是现货价格。但实际交易中,我们很难拿到准确的现货数据。所以我更常用一个简化版本:

Roll Yield ≈ (近月价格 - 远月价格) / 近月价格 * (365 / 剩余天数)

这个年化后的展期收益率,可以直接跟无风险利率对比。如果年化展期收益超过5%,那这个品种的套利空间就相当可观了。

举个例子:

品种 近月价格 远月价格 剩余天数 年化Roll Yield
螺纹钢 3800 3750 90 5.26%
原油 75.0 76.5 60 -12.0%
玉米 2400 2380 120 2.53%

你看,原油的负展期收益高达-12%,这意味着如果你做多原油并持有,每年光展期就要亏掉12%。这还没算手续费和滑点。所以做多原油的散户,其实是在跟时间赛跑——而且大概率跑不赢。

14.5 知识体系与核心逻辑

下面这张图,是我自己整理的本章节知识结构。它把近远月基差、展期收益、日历价差策略串在了一起。你仔细看,其实核心就一个逻辑:基差结构决定展期收益方向,展期收益驱动日历价差策略

跨期基差套利知识体系 基差结构 Contango(升水) Backwardation(贴水) 展期收益:负(做多亏) 展期收益:正(做多赚) 策略:做空价差(卖近买远) 策略:做多价差(买近卖远) 核心逻辑:基差 → 展期收益 → 价差策略

这张图你看懂了吗?从左到右,其实就是从「市场结构」到「收益来源」再到「具体策略」的推导过程。我个人觉得,做量化交易最重要的就是这种逻辑链条——别只看表面价格,要理解背后的驱动力。

14.6 实战中的几个要点

最后,分享几个我在实战中总结的要点:

  • 流动性是第一位的:别碰那些成交量稀薄的合约。你进去了出不来,再好的策略也是白搭。我一般只选主力合约和次主力合约。
  • 关注交割规则:不同交易所、不同品种的交割规则差异很大。比如有些品种允许滚动交割,有些只能一次性交割。这些细节会影响价差的收敛方式。
  • 别忽视手续费:日历价差策略是双边交易,手续费成本比单边高不少。如果你的策略胜率只有60%,但手续费吃掉了一半利润,那还不如不做。
  • 用统计套利的思维做价差:别只看一两个数据点。把价差序列的历史分布画出来,看看它是不是均值回归的。如果是,那就用Z-score或者分位数来做信号。

一句话总结:跨期基差套利不是赚快钱的,它是赚「结构回归」的钱。你不需要预测价格涨跌,只需要判断价差是否偏离了合理区间。这种策略的夏普比率通常比单边策略高,但需要耐心等待机会。

嗯,这一章的内容就到这里。记住,基差结构每天都在变,但背后的逻辑是不变的。你只要把近远月价差、展期收益、日历价差这三个工具用好,就能在大多数商品期货上找到稳定的套利机会。

公众号:蓝海资料掘金营,微信deep3321