第十六章:基差交易策略二——库存高位时的反套策略(卖现货买期货)
好,咱们接着聊基差交易。上一章讲了库存低位时的正套,这一章咱们反过来——库存高位,做反套。
说白了,就是卖现货、买期货。为什么?因为库存堆得跟山一样高,现货压力大,价格抬不起来。但期货呢?市场预期未来库存会消化,价格反而可能坚挺。这时候,基差就会走弱,甚至变成负值。
我刚开始做这个策略时,总觉得反套比正套难。正套是顺趋势,反套是逆人性。你想想看,别人都在抛现货,你却要接期货,心里不踏实。但后来我发现,只要库存数据够硬,反套的胜率其实很高。
16.1 库存高位反套的核心逻辑
先理清逻辑链条:
- 库存高 → 现货供应过剩,持货成本高,贸易商急着出货
- 现货承压 → 现货价格下跌,或者涨不动
- 期货预期 → 市场认为未来库存会下降,期货价格相对坚挺
- 基差走弱 → 现货-期货价差缩小,甚至变成负值
- 反套盈利 → 卖出现货(或借货卖出),买入期货,等待基差回归
嗯,这里要注意:反套不是简单的“卖高买低”。它赌的是基差会继续走弱,或者至少不会走强。如果你在库存高位时做反套,但基差突然走强,那就亏了。
核心要点:库存高位做反套,本质是交易“库存去化预期”。如果市场预期库存会快速下降,反套就成立。如果库存迟迟不去,反套就会变成“接飞刀”。
16.2 实战中的操作细节
我个人习惯把反套分成两种:主动反套和被动反套。
| 类型 | 触发条件 | 操作方式 | 风险点 |
|---|---|---|---|
| 主动反套 | 库存创历史新高,且仍在累积 | 主动卖现货、买期货,开仓比例1:1 | 库存拐点未到,基差继续走弱但幅度有限 |
| 被动反套 | 库存高位但开始去化,基差已走弱 | 等基差反弹后再入场,卖现货买期货 | 去化速度不及预期,基差反弹后再次走弱 |
我记得有一次做螺纹钢的反套。当时社会库存堆到1200万吨,创了五年新高。现货价格天天跌,但期货主力合约反而稳住了。我判断基差会从+200缩到-50左右,就开了反套。结果呢?基差确实缩了,但只缩到+80就停了。我平仓早了,少赚了一半。
后来我总结:反套的平仓时机比开仓更重要。开仓看库存,平仓看基差斜率。如果基差走弱的速度突然变慢,就要考虑止盈了。
16.3 避坑指南:我曾经踩过的三个坑
做反套这些年,我踩过不少坑。挑三个典型的说说:
- 坑一:库存数据滞后。我曾经根据周度库存数据做反套,结果那周数据是错的,实际库存已经拐头了。等我反应过来,基差已经反弹了50个点。后来我改用日度高频数据,甚至盯仓库的出入库流水。
- 坑二:交割月效应。临近交割月,期货价格会向现货回归。如果你做的是远月反套,但近月合约快到期了,基差可能会突然走强。我建议反套尽量选远月合约,避开交割月。
- 坑三:资金成本。反套需要卖现货,如果你没有现货,就得借货。借货成本如果太高,会吃掉利润。我一般只做自己有现货渠道的品种,比如铜、铝、螺纹钢。
警告:反套不是无风险套利。它本质是单边做空基差,如果基差反向波动,亏损可能很大。一定要设止损,我一般设基差反弹20%就止损。
16.4 量化实现:一个简单的反套信号
下面是我用过的反套信号代码,Python写的,逻辑很简单:
import pandas as pd
import numpy as np
# 假设df包含:库存、现货价、期货价
df['基差'] = df['现货价'] - df['期货价']
df['库存_zscore'] = (df['库存'] - df['库存'].rolling(60).mean()) / df['库存'].rolling(60).std()
# 反套信号:库存zscore > 2 且 基差为正
df['反套信号'] = (df['库存_zscore'] > 2) & (df['基差'] > 0)
# 开仓:卖现货买期货
df['仓位'] = np.where(df['反套信号'], -1, 0) # -1表示做空基差
# 平仓条件:基差转负或库存zscore < 1
df['平仓信号'] = (df['基差'] < 0) | (df['库存_zscore'] < 1)
df['仓位'] = np.where(df['平仓信号'], 0, df['仓位'])
# 计算收益
df['收益'] = df['仓位'].shift(1) * (df['基差'].diff())
这个代码很粗糙,但核心逻辑是对的。实际使用时,我会加上过滤条件,比如只做主力合约、避开节假日、考虑移仓换月成本。
16.5 知识体系图:库存高位反套策略全景
下面这张图,我画了反套策略的完整框架。从库存数据到开仓平仓,一目了然。
个人经验:这张图我每次做反套前都会看一遍。尤其是平仓条件那部分,很多人只盯着基差,忽略了库存拐点。我吃过亏,现在把库存拐点信号放在第一位。
16.6 一个完整的案例:2023年铜的反套机会
2023年6月,铜的全球显性库存达到65万吨,是过去五年的最高点。现货贴水扩大到300元/吨。我判断反套机会来了。
操作细节:
- 开仓时间:2023年6月15日
- 开仓价差:基差+280元/吨(现货高于期货)
- 操作:卖出100吨现货铜,买入10手沪铜期货(每手5吨)
- 平仓时间:2023年7月20日
- 平仓价差:基差-50元/吨(现货低于期货)
- 盈利:330元/吨 × 100吨 = 33,000元
这个案例里,库存从65万吨降到58万吨,市场预期库存去化加速,基差从正转负。反套盈利很稳。
但如果你在7月10日才入场,基差已经缩到+50了,利润空间就很小。所以反套要趁早,等大家都看到机会时,机会已经走了一半。
总结一句话:库存高位做反套,核心是“卖现实,买预期”。现实是库存高,预期是库存降。只要预期不变,反套就能赚钱。