8. 基差与期货期限结构:Backwardation与Contango的库存解释
好,咱们今天聊一个特别经典的话题——期货的期限结构。
说白了,就是期货价格在不同月份合约上的排列形态。你打开行情软件,看到近月合约贵、远月合约便宜,这叫Backwardation(现货溢价)。反过来,近月便宜、远月贵,这叫Contango(期货溢价)。
这两种形态背后,库存是核心驱动力。我做了这么多年交易,可以负责任地告诉你——理解了库存,你就理解了期限结构的一半。
8.1 两种期限结构的定义与特征
先明确一下基本概念。
| 特征 | Backwardation(现货溢价) | Contango(期货溢价) |
|---|---|---|
| 价格形态 | 近高远低,向下倾斜 | 近低远高,向上倾斜 |
| 基差 | 现货 > 期货,基差为正 | 现货 < 期货,基差为负 |
| 库存状态 | 库存紧张,供不应求 | 库存充裕,供过于求 |
| 市场情绪 | 看涨,担心当下买不到货 | 看跌,预期未来供应宽松 |
| 典型品种 | 原油(地缘冲突时)、铜(罢工时) | 玉米(丰收季)、铁矿石(港口库存高) |
你想想看,为什么会出现这种差异?
核心就一句话:库存决定了持有现货的便利收益(Convenience Yield)。
核心公式:
期货价格 = 现货价格 + 仓储成本 + 资金成本 - 便利收益
当库存极低时,便利收益飙升,期货价格甚至低于现货——这就是Backwardation。
当库存极高时,便利收益趋近于零,期货价格主要反映仓储和资金成本——这就是Contango。
8.2 库存如何驱动期限结构:一个直观的框架
我习惯用一张图来理解这个逻辑。下面是我自己画的框架图,你一看就明白。
这个框架我用了很多年。每次分析一个品种,我第一件事就是看它的库存数据——交易所库存、港口库存、社会库存,能拿到的都要看。
8.3 实战案例:铜的Backwardation与库存的关系
我记得2021年有个经典案例。当时铜的全球显性库存跌到了历史低位,LME铜库存不到10万吨。
结果呢?铜的期限结构从Contango直接翻转为Backwardation,而且近月合约比远月合约贵了将近200美元/吨。
我的经验:
当库存低于「安全阈值」时,Backwardation会急剧加深。这个阈值因品种而异——铜大概是15天的消费量,原油大概是30天的消费量。
低于这个水平,市场就会开始恐慌性抢购现货,基差会像脱缰的野马一样往上冲。
为什么会这样?
因为铜的冶炼厂不能随便停产。一旦库存见底,下游加工企业为了维持生产,愿意支付任何溢价来拿到现货。这时候,持有现货的便利收益极高,远月合约自然就折价了。
8.4 实战案例:原油的Contango与库存堆积
反过来,2020年4月那次原油期货跌到负值,就是Contango的极端案例。
当时全球原油库存爆满,库欣地区的储油罐都快装不下了。我记得当时看数据,库欣库存利用率超过了80%。
结果呢?近月合约暴跌,远月合约虽然也跌,但跌幅小得多。期限结构变成了陡峭的Contango。
避坑指南:
我曾经犯过一个错误——看到Contango很深,就盲目做多近月、做空远月,以为能赚展期收益。
结果库存继续堆积,近月合约被逼仓,我差点爆仓。
教训是:Contango的深度不代表它一定会回归。只要库存还在增加,Contango可以持续很久。
8.5 如何用库存数据预判期限结构转换
做交易不能只看当前形态,你得预判它什么时候会变。
我个人习惯用以下几个指标:
- 库存变化率:连续3周库存下降,Backwardation大概率会加深。
- 库存绝对水平:低于5年同期最低值,警惕Backwardation。
- 库存与消费比:这个比库存绝对值更可靠。比如铜的库存/消费比低于0.5周,就是极度紧张。
- 远期曲线斜率:斜率越陡,说明市场对未来的预期越极端,反转的可能性越大。
举个例子。2022年镍的逼仓事件之前,LME镍库存从25万吨一路跌到8万吨,库存/消费比降到了0.3周。当时Backwardation已经非常深了,近月比远月贵了1000美元/吨。
嗯,后来的事情大家都知道了——3月8日那天,镍价一天涨了250%。
8.6 量化视角:用库存数据建模期限结构
如果你做量化,可以尝试用库存数据来预测期限结构。
我写过这样一个简单的回归模型:
# 伪代码示例:用库存预测基差
import pandas as pd
import statsmodels.api as sm
# 数据:库存水平、库存变化率、基差
df = pd.read_csv('inventory_basis_data.csv')
X = df[['inventory_level', 'inventory_change_3w']]
y = df['basis'] # 基差 = 近月 - 远月
X = sm.add_constant(X)
model = sm.OLS(y, X).fit()
print(model.summary())
这个模型虽然简单,但在铜、铝、原油这些品种上,R方通常能达到0.6以上。说白了,库存能解释基差变动的60%以上。
核心结论:
Backwardation = 低库存 + 高便利收益
Contango = 高库存 + 低便利收益
交易的关键不是看当前形态,而是判断库存的拐点。
最后说一句。期限结构不是一成不变的,它会随着库存的增减而动态变化。你盯住库存数据,就能比别人早一步看到拐点。
嗯,今天就聊到这儿。记住一句话:库存是期限结构的锚。
公众号:蓝海资料掘金营,微信deep3321