一、写在前面:一个每天都在发生的对撞
最近这一年,"反内卷"这条线上有一组话天天在盘面上正面相撞。
一边是政策口径:要控产能、要减供给。另一边是产业口径:库存还在高位,谁减了谁吃亏。
于是很多人去找证据。找证据的第一站,通常是行情软件里那个叫"库存"或者"仓单"的标签页——一条曲线,每天更新,免费,看起来非常像一个客观事实。
这篇不讨论那条线现在是高是低,也不讨论它意味着什么。 我想先回答一个更前面的问题——它到底是什么。
它不是量出来的,是登记出来的。
"量"是有人去仓库里把货点一遍;"登记"是有人拿着一批货去办手续,办完了才算数。这两件事的差别,比它们听起来大得多——因为办不办手续是个经济决定,而仓库里有多少货不是。
二、"库存"至少是三个不同的数
日常说"这个品种的库存",可能指的是下面三样里的任何一样:
① 注册仓单 —— 已经运进交易所指定的交割仓库、通过检验、并且在交易所完成注册的那批货。日频,各家商品交易所每天公布,免费可得(中金所是金融期货,没有这个数)。⚠️ 但"每天都公布"不等于"公布的是同一个东西"——第七节⑥ 会讲这件事把我坑得有多惨。
② 交割库库存 —— 指定仓库里实际存放的量。它比 ① 大:有些货进了库但还没注册,有些注册过又注销了却还没提走。部分交易所公布,频率和口径各不相同。
③ 社会库存 —— 全社会范围内的港口库存、厂库库存、贸易商库存、在途量。这是产业真正关心的那个数,但它没有公开可得的版本——它由咨询机构调研统计,是商业数据,各家口径不同,而且要花钱买。
你打开软件免费看到的那条日频曲线,几乎一定是 ①。
而 ① 是这三个数里最小的那一个,也是唯一一个被规则筛过的那一个。
前两个数是"有多少货",第一个数是"有多少货办完了手续"。
这里有一条我在写《基差与升贴水》时立过的规矩,正好要用第二遍:引用一个产业数字之前,先问它是怎么造出来的。 那一篇讲的是"一个报价减一个成交价"——两边来源不同。本篇讲的是另一种病:这个数每天公布、格式规整、看起来像一次测量,但它其实是一份登记。
我也刻意没有去跑③。理由和那篇拒绝用现货报价跑统计一模一样:不公开可得的数据,不进这个号的实测。
三、那道"手续"具体是什么
一批货要变成一张标准仓单,至少要过四关。
第一关:品级。 检验、开单、注册,交割转移的是纸不是货——这一关那篇已经讲透,这里不重复。
第二关:品牌。 有些品种在品级之外还加一层:交割品必须是交易所注册品牌的商品。多晶硅那篇写过这层,名录会新增,也会被暂停。同样一批合格的货,牌子不在名录上,就进不了这个数。
第三关:地点。 必须在交易所指定的那些仓库里。堆在别处的货,哪怕品级完全一样,也不在这条曲线上。
第四关:有效期。 标准仓单不是永远有效的,到期强制注销——这一条同样在《交割制度》里写过。但那一篇写的是"有这么回事",本篇要写的是"它长什么样",而它的样子超出我的预期。 这是第五节的内容。
四关过完,剩下的那部分才进这个数。
顺带说清一件很多人踩过的事:这个数的单位
仓单的计量单位和你下单时的"一手",是两个数,而且倍数各品种自己定。
一手沪铜是 5 吨,一张铜的标准仓单是 25 吨——一张仓单等于五手。一手螺纹钢 10 吨,一张仓单 300 吨——一张等于三十手。黄金一张等于三手,棉花一张大约等于八手,而焦炭调整之后是一比一。
交易所日报公布这个数时用的计量口径也不统一:有的按吨,有的按张,有的按桶。
所以拿两个品种的仓单数字直接比大小,是没有意义的。 这不是"精度不够",是量的压根不是同一样东西。
这也是《沪镍》那条"量级是稳的,排名是脆的"的又一个场景,只不过这次连量级都不可比。
⚠️ 还有一条更硬的:做交割月前后的统计时,各交易所的上报口径本身就不可比。 这条规矩是《交割制度》那篇实测时撞出来的,凡是做仓单、持仓、交割相关统计的人都会正面踩到,这里只挂链,不重述。
正因为单位不可比,下面所有的实测量都是品种内部的相对量——今天动没动、动了百分之几、一年里动几次。换个单位,下面每一个数都不变。
四、实测一:这条线一年动几次
样本:30 个品种(沿用本号涨跌停实测那批按成交额事前定死的排名,一个不增一个不减)、2021-01-04 至 2026-08-05、38636 个品种日。
先看最直观的一张表——这条线一共动了几次。拿它去比的就是同一段日子里的交易日数,国内一年大约 243 个交易日:
| 品种 | 动了几次 / 共几个交易日 | 折合一年 |
|---|---|---|
| 原油 | 118 / 1257 | 23 |
| 沪金 | 267 / 1354 | 48 |
| 燃料油 | 271 / 1257 | 52 |
| 焦煤 | 303 / 1323 | 56 |
| 菜油 | 410 / 1354 | 74 |
| 螺纹钢 | 764 / 1354 | 137 |
| 乙二醇 | 776 / 1354 | 139 |
| 纯碱 | 999 / 1354 | 179 |
| 沪铜 | 1316 / 1354 | 236 |
| 棉花 | 1349 / 1354 | 242 |
| 沪银 | 1352 / 1354 | 243 |
右边那一列可以直接当占比读:沪银那条线几乎每个交易日都在动——1354 个交易日里动了 1352 次;原油那条线十个交易日里动不到一次。
从 23 到 243,差了十一倍。而它们面对的是同一批交易日。
我先怀疑过这是数字精度造成的:会不会是沪银的数字位数多、随便一笔小交收都会改变末位,而原油的计量单位太粗、小的进出根本体现不出来?
不是。 原油的仓单基数是千万量级,比沪银的百万量级还大,五年多却只动了 118 次。这不是精度问题,是"注册和注销"这个动作本身的频率不同。
再换个角度数。把 27 个窗口完整的品种合起来,在仓单大于零的那 32758 个品种日里,36.7% 与前一日一个数字都没变——三个交易日里有一个,这个数原地不动。
真动的时候呢?中位数变动 2.01%,但 P90 是 26.8%——尾巴是中位数的十三倍。
也就是说:它不是一条曲线,是一串台阶。 大部分日子平着,动的时候一次动一大块。
一年 243 个交易日,原油的仓单只动 23 次。你每天打开它,十次里有九次它和昨天一模一样。
这件事的直接后果是:你看到的"库存没变",大多数时候不是"库存没变",是今天没有人去办这道手续。
⚠️ 我不解释这个差异是怎么来的。 数据能证明的是"频率差十一倍",证明不了原因。原油和黄金的仓单一放几个月、白银和棉花的交割库天天进出货,这是观察,不是解释——真正的原因要问那些每天在办这道手续的人,不在日线里。
五、实测二:它归零的时候,是什么在归零
30 个品种里,20 个在这 5 年半中至少归零过一次。
从来没有归零过的那 10 个是:沪银、沪金、原油、天然橡胶、沪铜、锡、镍、棉花、沥青、铝。
而另一头有多极端?焦煤 67.4%、鸡蛋 64.7% 的交易日,注册仓单是零。 焦煤最长的一段零,连续 77 个交易日。
对这两个品种,"看仓单判断库存"这句话在物理上就不成立——你盯着的那条线,三分之二的时间是一条贴着零的直线。
每年同一个月,一次清零,几天后又回来
我原本猜的是"农产品每年固定月份归零"。跑完之后,猜对了一半,而错的那一半更有意思。
先说方法上的一个坑,因为它决定了这个结论能不能成立。
我的第一版判据只要求"仓单从大于零掉到不足前一日的 5%,且在三个以上不同年份的同一个月发生"。结果棕榈油、鸡蛋、焦煤、苯乙烯十二个月里每个月都命中——因为它们常年贴着零,随便哪个月都会归零一次。那不是"日历性归零",那是"这个品种压根没多少仓单",两件不同的事被同一个判据算成了一件。
第二版我加了一道限制:"清零前一天必须有相当规模"。结果闸开反了:塑料、PVC、聚丙烯、乙二醇、豆粕、PTA 全被滤掉了,而它们恰恰是最干净的那一批。原因很朴素——注销日之前,仓单本来就已经被提前减到低位了,"清零前一天很高"这个假设从头就不对。
第三版才对,办法是把要论证的那件事直接写进判据里:我想说的是"这不是货被消费掉了",那就要求它几天之后又回来。
于是判据变成:① 从大于零掉到不足前一日的 5%;② 之后 20 个交易日内回升到清零前一日的一半以上;③ 至少三个不同年份的同一自然月;④ 命中的月份不超过三个(否则那是"常年贴零",另一回事)。
30 个品种里 9 个命中。换阈值(1%/5%/10%)、换回升幅度(30%/50%/80%)、换观察窗口(10 日/20 日),六组参数命中的都是同一批 9 个。(⚠️ 我还试了把观察窗口放宽到 40 个交易日,那一档会多出菜油一个——放不放得进来,取决于你允许它"多久之后回来",所以正文只报那六组一致的。)
| 品种 | 交易所 | 月份 | 命中年份 | 清零→回到清零前一半 |
|---|---|---|---|---|
| 塑料 | 大商所 | 3 月 | 2021–2026,连续六年 | 中位 5 个交易日 |
| PVC | 大商所 | 3 月 | 2021–2026,连续六年 | 中位 3 个交易日 |
| 聚丙烯 | 大商所 | 3 月 | 2021–2026,连续六年 | 中位 3 个交易日 |
| 乙二醇 | 大商所 | 3 月 | 2021–2026,连续六年 | 中位 2 个交易日 |
| 豆粕 | 大商所 | 3 / 7 / 11 月 | 各 4–6 年 | 中位 2–4 个交易日 |
| PTA | 郑商所 | 9 月 | 2021–2025 | 中位 2 个交易日 |
| 甲醇 | 郑商所 | 5 / 11 月 | 各 4–5 年 | 中位 3–4 个交易日 |
| 菜粕 | 郑商所 | 3 / 7 月 | 各 3–5 年 | 中位 9–19 个交易日 |
| 烧碱 | 郑商所 | 5 月 | 2024–2026(样本仅两年半) | 中位 4 个交易日 |
举一个具体的:PVC,2026 年 3 月 30 日仓单 21975,3 月 31 日归零,4 月 1 日回到 3314。
"3 月底"到底有多准,这里给个准数:这四个品种六年一共 24 个"品种×年",其中 19 个正好落在 3 月的最后一个交易日,4 个差一个交易日,还有 1 个差得多(塑料 2023 年是 3 月 23 日,早了六个交易日)。所以别把它记成"3 月 31 日",记成"3 月底那几天"。
那一天没有一斤货离开仓库。走掉的是那张纸的有效期。
旁证基本对得上,但不是九个全对:9 个里有 7 个,"年内最低点落在哪个月"逐年是同一个月——塑料、PVC、聚丙烯、乙二醇、豆粕五年全是 3 月,PTA 五年全是 9 月。另外两个(菜粕、烧碱)各有一年落在别的月份,照实记在这儿。
猜错的那一半
我猜"尤其是农产品"。《交割制度》那篇当时也是这么写的。
实测的结果是:命中的 9 个里,农产品只有豆粕和菜粕两个,其余七个全是化工品——塑料、PVC、聚丙烯、乙二醇、甲醇、PTA、烧碱。
这不推翻那句话("尤其农产品"本来就不是"只有农产品"),但它把那句话的边界画清楚了:在能化板块,这件事同样普遍,而且更整齐。
这是本号第三次撞上"日历",三次说的不是同一件事
这个词在这个号里出现过三次,我把它们摆在一起,免得混着读:
- 《持仓量变化四象限》说的是减仓最密集的地方不是恐慌,是日历——那讲的是持仓量,驱动它的是交割制度在把人往外请;
- 《套利者》说的是跨期月差的兜底写在日历上——那讲的是价差该回哪儿去,驱动它的是季节性与仓储;
- 本篇说的是仓单在注销日历上清零——驱动它的是那张纸自己的有效期。
三件事共用一个词,但走的是三条不同的机制。引用的时候别把它们合并成一句"期货里什么都跟着日历走"。
六、那这个数该怎么读
按价值排序。注意这一节讲的全是"怎么读这个数",不是"读完之后该做什么"——后者是方向性判断,这个号不做。
① 先确认你看的是哪一个数。 是注册仓单,还是含有效预报?是哪个交易所的口径?单位是吨还是张?这三个问题答不上来,后面的解读全是空的。
② 只在同一个品种内部纵向比,绝不跨品种横向比。 理由在第三节:单位不同,比不了。
③ 读之前先查这个品种的注销时点在哪儿。 一年里有那么几天,这条线的跳动和产业没有任何关系。第五节那张表列了 9 个品种,但那只是我这批样本里的,你关心的品种要自己回合约文本和交易所细则去查。
④ 看到一次大跳,第一件事是查日期,不是查新闻。 如果那天正好是月末、正好是那个品种的注销时点,那这一跳大概率什么都没说。
⑤ 对常年贴零的品种,这个数没有信息量。 焦煤三分之二的交易日是零,你在一条几乎是常量的线上找不出信号来。
⑥ 它的变化是台阶式的,不要拿它做日频的分析。 一条一年动 23 次的线,配一个日频的横轴,中间那些平着的日子不是信息,是没有事情发生。
七、失效场景:它在什么时候会骗人
这一节比上一节更重要。
① 日历性清零,会伪装成一次暴跌。 第五节整节都在讲这个。连续六年、同一个月底、几天后就回来——如果只看那一天的百分比变动,你会读到一次"库存归零"。
② 常年贴零,会伪装成"库存极低"。 焦煤的仓单常年是零,但焦煤这个东西在中国的实际库存显然不是零。零的是"办了手续的那一部分"。
③ 一年只动 23 次的线,会伪装成"库存稳定"。 这是最隐蔽的一种。画图软件会忠实地把那些没有变化的日子连成一条平线,你看到的是"库存平稳",实际发生的是"这段时间没有人去办这道手续"。
④ 它是被人主动办出来的,不是被动测出来的。 注册要花钱、要排队、要占用资金;注销也是一个主动动作。一个需要有人专门去办、并且办起来有成本的数,天生就带着办这件事的人的算计。 至于那个算计具体是什么,不在日线里,我不猜。
⑤ 跨品种比较,会伪装成"哪个品种货更多"。 单位不同,前面说过了。
⑥ 最后这条最实用,也是我这次跑数据才发现的:不同交易所的日报口径不一样,而画出来的图一模一样。
实测里撞到的:郑商所那批品种,仓单为零的日子照样出一行零;大商所那批品种,仓单归零之后这一行就没了,直到有人重新注册。
后果有多大?焦煤在这 5 年半里有 1323 个交易日,而数据源只给了 491 行。如果直接拿"数据源给了多少行"当底数,焦煤的"活跃度"会从 22.9% 变成 61.7%——虚高 2.7 倍。 鸡蛋虚高 2.3 倍,苯乙烯 1.3 倍。
我的处理是把归零之后的缺口按零补齐(266 段),补不了的判为数据源缺失、不进底数(18 段 117 天,占全部品种日的 0.30%)。
这是这个号第八次撞上同一种病:《手续费》那篇讲的是"你拿它除以什么",讲的是除数选得对不对;本篇这一次是除数里少了一半的日子,而你根本不知道它们被抽掉了。两件事形状相似,但不是同一件——27 那一篇是选错,这一篇是没看见。
⚠️ 顺带说明:我这批数据本身也是二手的,从一个行情工具取得,不是从各家交易所官网逐日抓的。上面那条口径差异正是它的已知问题之一。所以本篇每一个数都该被理解成"在这个数据源上的观察",而不是交易所口径的权威复述。要下判断,回官网。
八、这篇管不到的地方,谁来管
"那我到底该看哪个库存数据?"
看你要回答什么问题。如果你要回答的是"能交割的资源有多少",注册仓单就是那个数,而且是唯一一个免费、逐日、还能拿到长历史的。如果你要回答的是"这个品种整体供需松不松",注册仓单答不了——你需要的是社会库存,而那个数不公开可得,这个号不会给你一个免费的版本,因为没有。
"库存高了是不是就该看空?"
这个问题这个号不回答,而且不是因为怕。是因为它需要的证据比这篇拿得出的多一个数量级:你得先有一个能代表整体供需的库存口径(第二节说了,没有),还得处理"库存和价格互为因果"这件事。本篇从头到尾没有把仓单和价格放在因果的位置上过一次,那是刻意的。
"仓单和持仓量是什么关系?"
是两个不同的东西,而且《成交量与持仓量》那篇已经讲清了持仓量是什么。简单说:持仓量数的是还没和解的合约,仓单数的是已经办完手续的货。同一批人在同一个市场里,但这两个数没有任何恒等关系。真要说它们怎么互相牵制,那是交割那一段的事,制度怎么把个人请出场写在那一篇的第三节。
"官方的数在哪儿看?"
各家商品交易所每天都在自己的官网公布仓单日报,这是公开数据,不要钱,从官网首页点进去就能找到。
本篇用的是一个行情工具取来的二手数据——方便,但隔了一层,第七节⑥ 那个口径差异正是这一层带来的。要下判断,回官网自己看。
看的时候先确认两件事,它们决定你读到的是不是你以为的那个数:
一是它公布的到底是"注册仓单",还是"注册仓单 + 有效预报"。 有效预报是已经报进来、但还没完成注册的那部分货。两个口径都合理,但它们不是同一个数——你拿含预报的口径和不含预报的历史数去比,会比出一个不存在的变化。
二是它用的计量单位。 第三节说过,各家不一样,而且和你下单的"一手"不是一回事。
你可以自己跑的三个实验
- 拉一个你熟悉的品种的仓单日报,数一数它一年有多少天变动为零。这个数会决定你还要不要天天看它。
- 把最近三年每年的仓单最低点标出来,看看它们是不是落在同一个月。落在同一个月,就去合约文本里找那个月发生了什么。
- 用同一个脚本拉两个不同交易所的品种,对一下行数和那段时间的交易日数。对不上,你就亲手撞到了第七节⑥。
九、三句话
第一句:你看到的那条"库存"是注册仓单,它是被品级、品牌、地点、有效期四道手续筛过之后的一个子集,不是仓库里有多少货。
第二句:它不是一条曲线,是一串台阶——一年 243 个交易日,原油的仓单动 23 次,沪银动 243 次。平着的那些日子不是信息。
第三句:一年里有那么几天,它的暴跌和产业没有关系。塑料、PVC、聚丙烯、乙二醇连续六年在 3 月底清零,几天后又回来了。
下一篇预告
下一篇还在《米粒指标》栏目,写布林带 BOLL:为什么"碰上轨=超买"是把它用错了地方,以及那条带子的宽窄——而不是价格在带子里的位置——才是它真正在说的那句话。
⚠️ 风险提示 本文仅为期货知识分享与研究交流,不构成任何投资建议。文中对库存与仓单数据的说明只做口径梳理与统计观察,不含任何库存与价格之间的方向性判断,也不构成对任何品种供需状况的评价或预测;文中实测基于公开日报数据,历史数据不代表未来。期货交易具有高杠杆特性,可能导致本金全部损失甚至产生穿仓负债。文中涉及的仓单注册与注销规则、交割单位、有效期、各交易所公布口径等信息以各期货交易所官方最新公告与合约文本为准。请通过正规期货公司开户,理性参与、独立决策、风险自担。
