← 返回模块
1.4.1.3beta 可读 · 未来免费校验通过内容版本 2026-05-26

基差、Contango 与 Backwardation

1.4.1 · 期货与远期 · 金融与量化投资

周三盘后,一位上海私募 (private fund) 的研究员把当日中金所 IF 四个到期合约抓下来作图:当月 3,841、下月 3,838、当季 3,830、下季 3,815。曲线向右下倾斜,差距随期限拉大——这是教科书上的 backwardation,但她隔壁桌的商品组研究员当天看到的 SHFE 铜 (CU) 曲线却是反向的:当月 67,500、下月 67,800、3 个月 68,400。同一天、同一国家、相反形状的曲线。形状背后到底是什么在推?做市商 (market maker) 真的把每一条曲线都「定价正确」了吗?长头滚月时这条曲线给你贴息还是付息?本节用一条公式打通直觉——基差 (basis)、滚动收益 (roll yield)、日历价差 (calendar spread) 都从同一组数算出来。

一、基差的定义与收敛性

记现货价 StS_t、到期日 TT 的期货价 FtF_t,​​基差​ (basis) 定义为:

Bt=StFt, limtTBt=0B_t = S_t - F_t,\ \lim_{t \to T} B_t = 0

收敛性来自交割机制:到期日 TT 时若 FT>STF_T > S_T,套利者卖出期货并买入现货立即交割锁定 FTSTF_T - S_T;反之亦然。所以 TT 时刻必然 FT=STF_T = S_T,基差归零。这一条约束不依赖于任何模型——只要交割机制有效,端点就被钉住。

收敛速率不由公式决定,而由持有成本随时间的均匀释放决定。CSI 300 股指期货的基差几乎线性收敛——股息与利率都是相对平滑的连续流;商品期货因为仓储与便利收益分布不均,加上库存季节性,路径可以拐弯,但端点必然落到零。读者在第一次看曲线时要做的不是「猜形状对不对」,而是「猜到期时基差是不是真能跑回零」——这是所有基差交易策略的最底层假设。

二、Contango 与 Backwardation:曲线形状的两个标签

接上一节的 F0=S0e(r+uqy)TF_0 = S_0 \cdot e^{(r + u - q - y) T}(用统一表达式涵盖股指与商品):

  • ​Contango​​(期货升水,远期合约比现货贵):r+u>q+yr + u > q + y,曲线向右上倾。
  • ​Backwardation​​(期货贴水,远期比现货便宜):r+u<q+yr + u < q + y,曲线向右下倾。

CSI 300 (IF) 大多数时期是轻度 backwardation——指数股息率 q2%q \approx 2\% 高于 RMB 短端 r1.51.8%r \approx 1.5–1.8\% (DR007 折年),因此 rq<0r - q < 0。读者可以对照中金所每日发布的四个 IF 到期合约的结算价,看曲线斜率是不是负的。

SHFE 铜 (CU) 形状随上海期货交易所周库存波动:库存紧时便利收益 yy 上升、y>uy > u、曲线翻为 backwardation;库存松时反向。这是商品曲线最常做的「直接读出便利收益」的玩法。

三、曲线可视化

下图把两种形状放在一起:x 轴是到期月数 (1, 2, 3, 6, 9, 12),y 轴是期货价(现货归一为 100)。

Interactive Widget

该交互组件的正式实现会随课程交互层一起接入。当前 beta 先保留正文、公式和练习内容。

四、滚动收益:长头滚月的隐性账单

实战中你很少持有合约到交割——多数策略在最后交易日前把头寸从近月 (front) 滚到远月 (back)。设近月价 Ft,1F_{t,1}、远月价 Ft,2F_{t,2},滚动当天卖出近月、买入远月,得到的​​滚动收益​ (roll yield) 是:

RY=ln(Ft,1Ft,2)\text{RY} = \ln \left( \frac{F_{t,1}}{F_{t,2}} \right)
  • Contango 下 Ft,1<Ft,2F_{t,1} < F_{t,2}RY<0\text{RY} < 0——长头每滚一月失血。
  • Backwardation 下 Ft,1>Ft,2F_{t,1} > F_{t,2}RY>0\text{RY} > 0——长头每滚一月加血。

这正是长持商品 ETF 与原油 ETF 在持续 contango 下显著跑输现货指数的根源:每一次滚月都把曲线右端的「贵的远月」买回来,把左端的「便宜的近月」放掉。

五、日历价差:分离曲线形状与价格水平

如果你只想押注​​曲线形状​​而不暴露于现货方向,构造​​日历价差​ (calendar spread):多 1 手近月 + 空 1 手远月(或反向)。这一组合的 delta 大致抵消,剩余暴露主要是 Ft,1Ft,2F_{t,1} - F_{t,2}——也就是曲线斜率。

两个主要风险:(1) ​曲线水平移动​​:若两条到期都同向移动,价差还在你这边,但流动性差时可能在到期前被强平;(2) ​曲线形状变化​​:从 contango 翻 backwardation(或反向)是日历价差的真正盈亏来源。手续费、买卖价差 (bid-ask spread) 与平今仓 (close-today) 罚息均按双边计——交易成本 (transaction cost) 往往把小价差吞掉。

六、把一次基差变动归因到三个驱动力

凌晨基差从 −10 跳到 +5,你被叫起来回答「为什么」。把 Bt=StFtB_t = S_t - F_tFt=Ste(rq+uy)τF_t = S_t \cdot e^{(r-q+u-y)\tau} 联立,对参数做一阶展开:

ΔBtΔSt(1e(rq)τ)Stτe(rq)τ(ΔrΔq+ΔuΔy)\Delta B_t \approx \Delta S_t (1 - e^{(r-q)\tau}) - S_t \cdot \tau \cdot e^{(r-q)\tau} \cdot (\Delta r - \Delta q + \Delta u - \Delta y)

实操上把三类输入分别检查:(1) 现货是否过夜跳空 → 看亚洲盘 ETF / ADR;(2) 利率是否跳 → 看 DR007 / SHIBOR 隔夜;(3) 是否便利收益事件 → 看交易所周库存或宏观新闻。一次大的过夜基差跳变中,大概率有其中一项是主因,另两项贡献微小。这一步骤是基差交易员每天开盘前的标准动作。

七、练习

Exercise

近月 F1=4500F_1 = 4500、远月 F2=4520F_2 = 4520。你长持 1 单位,从 F1F_1 滚到 F2F_2。计算滚动收益 (roll yield)。判断曲线是 contango 还是 backwardation,长头滚月是赚是亏?

提示
套用 RY=ln(F1/F2)\text{RY} = \ln(F_1 / F_2)。先比较 F1F_1F2F_2F2>F1F_2 > F_1 即远月比近月贵,形状为 contango;F2<F1F_2 < F_1 即 backwardation。
提示
RY=ln(4500/4520)=ln(0.99558)0.00443\text{RY} = \ln(4500/4520) = \ln(0.99558) \approx -0.00443,即 −44 个基点 (basis point)。F2>F1F_2 > F_1 是 contango;长头滚月每月亏 44 bp。

八、通往下一节

到这里你已经能把基差 (basis) 拆成现货、利率、便利收益三个驱动,区分 contango 与 backwardation,给长头算出滚动收益 (roll yield),并用日历价差 (calendar spread) 分离曲线形状与价格水平。下一节把期货从「价格预测对象」转成「风险管理工具」:当你手里有一篮 A 股,想用 IF 期货把市场暴露关掉,最优合约张数是多少?我们会推出 h=ρσS/σFh^* = \rho \cdot \sigma_S / \sigma_F,把它落到 beta 对冲的算式,并给出一个 ¥1 亿组合的具体张数估算。