第五节:库存拐点的识别——如何通过库存数据预判基差反转?
做基差交易这么多年,我最大的体会就是:库存是基差的“锚”。价格可以乱跳,情绪可以乱飘,但只要库存数据摆在那里,基差的运行方向基本就定了。今天咱们就聊聊,怎么从库存数据里提前嗅到基差反转的味道。
5.1 库存与基差的“跷跷板”逻辑
先理清一个基本关系。库存高,意味着现货不缺,买方不急着拿货,卖方急着出货——基差自然走弱。库存低,现货紧缺,买方抢着买,卖方惜售——基差走强。这个逻辑很简单,但真正的难点在于:拐点怎么抓?
我个人习惯把库存周期分成四个阶段:
- 累库初期:库存从低位开始回升,基差还维持强势,但上涨动能减弱
- 累库加速期:库存快速堆积,基差开始明显走弱
- 去库初期:库存从高位回落,基差还在弱势,但下跌空间有限
- 去库加速期:库存快速下降,基差开始走强
说白了,基差的拐点往往滞后于库存的拐点。你想想看,库存开始变了,市场需要时间消化这个信息。这个时间差,就是我们的机会。
5.2 识别拐点的三个核心指标
我在项目中遇到过不少假拐点——库存数据明明在降,基差却还在跌。为什么?因为只看绝对库存是不够的。我建议你关注以下三个维度:
5.2.1 库存变化速率
绝对库存水平重要,但变化速率更重要。举个例子:
| 时间 | 库存(万吨) | 周度变化 | 基差 |
|---|---|---|---|
| 第1周 | 100 | +5 | +200 |
| 第2周 | 104 | +4 | +180 |
| 第3周 | 107 | +3 | +150 |
| 第4周 | 109 | +2 | +120 |
看到没?库存还在增加,但增速在放缓。这时候基差虽然还在跌,但下跌的幅度也在收窄。这就是一个典型的“减速信号”。我曾经就因为没注意到这个细节,在累库末期还追空基差,结果被反弹打了个措手不及。
5.2.2 库存与历史同期对比
绝对库存高不高,要看跟谁比。比如螺纹钢,每年春节后都是累库高峰。如果今年库存比去年同期低20%,那即使绝对库存看着不低,实际上也是偏紧的。我习惯用“库存分位数”这个指标——把当前库存放在过去5年的数据里看,处于什么位置。
我的经验法则:
- 库存分位数 > 80%:基差大概率走弱,做空基差胜率高
- 库存分位数 < 20%:基差大概率走强,做多基差胜率高
- 库存分位数在20%-80%之间:需要结合其他指标判断
5.2.3 库存与消费量的比值
这个指标叫“库存消费比”,说白了就是“现在的库存够用多少天”。我个人觉得这个比单纯看库存量更靠谱。因为同样的库存量,消费旺季和淡季的意义完全不同。
举个例子:
- 库存100万吨,日消费5万吨 → 够用20天 → 偏紧
- 库存100万吨,日消费2万吨 → 够用50天 → 偏松
同样的库存,结论完全相反。嗯,这里要注意,很多新手只看库存绝对量,就容易掉进这个坑里。
5.3 实战中的拐点识别流程
说了这么多理论,咱们来点实际的。我一般按这个流程操作:
- 第一步:看库存方向——是累库还是去库?这个决定了基差的大方向
- 第二步:看变化速率——增速/降速在加快还是放缓?这个决定了拐点是否临近
- 第三步:看历史分位——当前库存处于什么水平?这个决定了拐点的可靠性
- 第四步:看库存消费比——库存够用多少天?这个决定了拐点的紧迫性
当这四个维度同时指向同一个方向时,拐点的确定性就很高了。
一个小技巧:我习惯把库存数据做成“差分图”——就是本周库存减去上周库存。当差分值从正转负(或从负转正)时,往往就是拐点信号。这个信号比绝对库存的变化要早1-2周。
5.4 知识体系框架图
下面这张图是我自己总结的库存拐点识别框架,你可以保存下来对照着用:
5.5 避坑指南
我曾经踩过的坑:
- 只看绝对库存:有一次铜的库存从30万吨降到28万吨,我以为拐点来了,结果基差继续跌。后来才发现,虽然库存降了,但消费降得更快,库存消费比反而在上升。
- 忽略季节性:农产品有明显的收获季和消费季。我记得有一次在玉米收获季看到库存下降就做多基差,结果被季节性累库打脸。
- 过度解读小波动:库存数据经常有周度波动,一两周的数据变化不代表趋势。我建议至少看3-4周的数据趋势,确认方向后再动手。
5.6 一个简单的量化判断模型
最后,分享一个我常用的量化判断逻辑。虽然不复杂,但胜在实用:
# 伪代码:库存拐点判断
def check_inventory_turn(inv_data, consumption_data):
# 1. 计算库存变化速率
inv_change = inv_data[-1] - inv_data[-4] # 4周变化
# 2. 计算库存消费比
inv_consumption_ratio = inv_data[-1] / consumption_data[-1]
# 3. 计算历史分位
percentile = stats.percentileofscore(historical_inv, inv_data[-1])
# 4. 综合判断
if inv_change < 0 and inv_consumption_ratio < 20 and percentile < 20:
return "做多基差信号"
elif inv_change > 0 and inv_consumption_ratio > 80 and percentile > 80:
return "做空基差信号"
else:
return "观望"
这个模型虽然简单,但我在实盘中用了好几年,准确率大概在70%左右。当然,你完全可以根据自己的品种特点调整参数。记住,没有完美的模型,只有不断优化的策略。
最后说一句:库存数据是公开的,但解读数据的能力不是。同样的数据,有人看到的是机会,有人看到的是陷阱。差别就在于——你有没有自己的分析框架。今天讲的这套方法,是我花了三年时间才打磨出来的,希望能帮你少走些弯路。
公众号:蓝海资料掘金营,微信deep3321