第十一章:基差与库存关系
库存这东西,说白了就是商品市场的「蓄水池」。我做交易这些年,最深的体会就是——库存是基差变动的底层驱动力。你想想看,当仓库里堆满了货,现货商急着出货,基差能强吗?反过来,库存见底了,买方抢着要货,基差自然就坚挺。
这一章,我就把库存与基差的底层逻辑拆开来讲。包括库存周期怎么识别、数据从哪里拿、怎么建模型,以及最重要的——如何通过库存拐点提前捕捉基差机会。
一、库存周期的底层逻辑
库存周期,业内也叫「基钦周期」。一般持续3-4年。我习惯把它分成四个阶段:
| 阶段 | 特征 | 基差表现 |
|---|---|---|
| 主动去库 | 价格跌,库存降 | 基差走弱,近月贴水 |
| 被动去库 | 价格涨,库存降 | 基差走强,近月升水 |
| 主动补库 | 价格涨,库存增 | 基差高位震荡 |
| 被动补库 | 价格跌,库存增 | 基差快速走弱 |
我在2020年做铜的时候,就踩过这个坑。当时库存一直在降,我以为基差会持续走强,结果价格涨到高位后,库存反而开始回升——典型的被动补库阶段。基差从+500直接砸到-200。嗯,那次教训挺深刻的。
二、库存数据怎么拿
数据源这块,我给大家梳理一下。国内商品市场,库存数据主要分三类:
- 交易所库存(仓单):上期所、大商所、郑商所官网,每天更新。这是最权威的数据,但只覆盖交割库。
- 行业机构数据:比如钢联的钢材库存、隆众的化工库存、SMM的有色库存。频率高,覆盖面广。
- 第三方平台:万得、彭博、卓创。数据全,但需要付费。
我个人习惯用Python写个爬虫,每天自动拉取交易所的仓单数据。代码很简单,给大家参考:
import requests
import pandas as pd
# 以上期所铜仓单为例
url = "http://www.shfe.com.cn/data/dailydata/kx/kx20250104.dat"
response = requests.get(url)
data = response.json()
# 提取仓单数据
warehouse_data = []
for item in data['o_cursor']:
if item['PRODUCTNAME'] == '铜':
warehouse_data.append({
'date': item['DATA_DATE'],
'warehouse': item['WHNAME'],
'weight': item['WRTINGWT']
})
df = pd.DataFrame(warehouse_data)
print(df.head())
三、库存-基差模型怎么建
模型这块,我试过很多方法。最简单的就是线性回归,但效果一般。为什么?因为库存和基差的关系不是线性的——库存低到一定程度,基差会加速走强;库存高到一定程度,基差会加速走弱。
我目前在用的模型,核心思路是:
- 计算库存分位数:把当前库存放在历史区间里看位置
- 计算库存变化率:5日、20日、60日的变化斜率
- 构建复合指标:库存分位数 × 变化方向系数
举个例子,螺纹钢的库存-基差模型:
import numpy as np
def inventory_basis_model(inv_series, basis_series):
# 计算库存分位数
inv_percentile = (inv_series - inv_series.min()) / (inv_series.max() - inv_series.min())
# 计算库存变化率(20日)
inv_change = inv_series.pct_change(20)
# 构建信号
signal = np.where(
(inv_percentile < 0.2) & (inv_change < -0.05), # 低库存且加速下降
1, # 做多基差
np.where(
(inv_percentile > 0.8) & (inv_change > 0.05), # 高库存且加速上升
-1, # 做空基差
0 # 观望
)
)
return signal
四、库存拐点识别——这才是核心
说实话,库存的绝对值不重要,拐点才是利润来源。我总结了几种识别拐点的方法:
- 斜率法:库存变化率从正转负,或从负转正,就是拐点信号
- 动量法:库存变化率的加速度(二阶导)出现反转
- 背离法:价格创新高但库存不再下降,或者价格创新低但库存不再上升
我曾经在2021年做PTA,就是靠背离法抓到了一波大行情。当时PTA价格从4000涨到5500,但库存从300万吨降到280万吨后就不再降了。我意识到库存拐点到了,果断平掉多单反手做空基差。后面价格跌回4500,基差从+200跌到-150。
下面这张图,是我自己总结的库存-基差分析框架:
五、实战中的几个要点
最后,分享几个我在实战中总结的经验:
- 不要只看绝对库存:同样的库存水平,在牛市和熊市里意义完全不同
- 关注库存的边际变化:库存下降速度加快,比库存本身低更重要
- 结合季节性:农产品有收获季,黑色有冬储,化工有检修季——这些都会影响库存的正常波动
- 警惕隐性库存:交易所仓单只是冰山一角,社会库存、在途库存、厂库都要关注
嗯,这一章的内容就到这里。库存与基差的关系,说白了就是供需博弈在时间维度上的投影。你只要把数据拿准了、模型建对了、拐点认清了,剩下的就是执行的问题。