← 返回目录
p2.4动手⏱ 约 15 分钟

量价指标:OBV 与「资金流向」

成交量告诉你「要动了」,但不告诉你「往哪动」

🔎 最后验证 2026-07📚 来源:OBV 背离、量价口诀与换手预测力于 2026-07-31 在 ECS 实测(50 只沪深300 成分股,193927 个观测),输出见 code/outputs/stdout.txt🧰 pandas 3.0.5、scipy 1.18.0、numpy 2.5.1
为什么学这个

先说一个容易被忽略的事实:

每一笔成交都同时有一个买方和一个卖方。成交量本身没有方向。

所以"今天资金流入 3 个亿"这句话,严格说是不成立的——有人买必有人卖,钱是从一个人的账户转到另一个人的账户,没有"流进"这只股票。所谓"资金流向",是把成交量按当日涨跌人为贴上正负号之后的定义。

那 OBV 这类指标到底有没有信息?这一节给出一个相当干净的答案:

成交量对未来「波动」有显著预测力,对未来「方向」几乎没有。它告诉你要动了,但不告诉你往哪动。

💡 打个比方

机场安检口排起长队,你能推断"接下来会很挤"。

但你推断不出"航班会延误还是提前"——队伍长度里没有这个信息。

成交量就是那条队伍。它反映的是关注度与分歧程度,不是方向。

一、OBV 顶背离:教科书说该跌

OBV(能量潮)的定义:收涨记 +成交量,收跌记 -成交量,累加。注意方向完全来自价格,不来自成交量本身

最流行的用法是"顶背离":价格创 60 日新高,而 OBV 没有创新高 → 教科书说这是量能跟不上,应当下跌。

实测(3099 次信号):

持有期信号后均值基准均值差值t 值p 值
1 日+0.282%+0.055%+0.227pp4.360.0000 *
5 日+0.670%+0.280%+0.389pp3.140.0017 *
10 日+1.333%+0.558%+0.776pp4.450.0000 *
20 日+2.005%+1.128%+0.876pp3.450.0006 *

又反了。教科书说该跌,数据说显著上涨,四个持有期全部显著。

原因其实不难理解:"价格创 60 日新高"这个条件本身就是一个强动量信号。而"OBV 未创新高"这个附加条件,并没有抵消掉它——背离筛掉的是量能,留下的还是强势股

二、「量价齐升」:放量上涨 vs 缩量上涨

口诀说:上涨要有量配合,缩量上涨是"虚涨"。实测:

放量上涨(涨幅>1%量能>1.5 倍均量,15074 次):

持有期差值t 值p 值
1 日+0.101pp4.050.0001 *
5 日+0.253pp4.520.0000 *
10 日+0.448pp5.730.0000 *
20 日+0.690pp5.940.0000 *

缩量上涨(涨幅>1%量能<0.8 倍均量,10561 次):

持有期差值t 值p 值
1 日+0.143pp5.410.0000 *
5 日+0.142pp2.220.0267 *
10 日+0.013pp0.140.8873
20 日-0.064pp-0.490.6215

这一条口诀方向是对的:

  • 短期(1 日)两者都有效,缩量甚至略强
  • 但随着持有期拉长,放量上涨的优势持续扩大(20 日 +0.690pp),而缩量上涨衰减到零甚至转负

所以"缩量上涨不持久"这个说法,在中长期上得到了数据支持。这是本章目前为止,少数几条被验证为的口诀之一。

🔧 动手做:成交量能告诉你"往哪动"吗?(5 分钟)

python volume_indicators.py,看 OBV 顶背离(价格创新高但 OBV 没创)之后的收益。

你会看到(实测):3099 次顶背离信号后,未来 1/5/10/20 日的差值是 +0.227/+0.389/+0.776/+0.876pp——注意是正的。也就是说,这个"看跌背离"之后,价格平均反而继续涨

想明白:成交量告诉你"要动了"(波动要放大),但不告诉你往哪动。人们把"量价背离"当方向信号用,方向却常常反着来。量价指标的真本事在预测波动、不在预测方向——把它当择时信号,大概率被反向收割。

三、本节真正的结论:方向 vs 波动

前面都是在问"能不能预测涨跌"。换个问法:成交量到底预测了什么?

用相对成交量(当日量 / 20 日均量)与三个目标做秩相关,193927 个观测:

相对成交量 vs秩相关p 值
未来 5 日方向(带符号收益)+0.00010.958
未来 5 日幅度(收益绝对值)+0.03768.95e-62
未来 5 日波动率+0.07091.31e-214

对波动的相关系数是对方向的 700 倍。

分组看更直观(按相对成交量五等分):

分组未来 5 日方向未来 5 日幅度未来 5 日波动
最低 20%0.230%3.671%1.908%
20–40%0.190%3.698%1.919%
40–60%0.228%3.759%1.966%
60–80%0.314%3.882%2.046%
最高 20%0.483%4.224%2.234%
⚠️ 避坑

这张表里有一个需要诚实处理的矛盾。

分组均值显示方向从 0.230% 单调上升到 0.483%——看起来成交量对方向也有预测力。但秩相关只有 +0.0001,p 值 0.958,等于完全无关。

两者都对,不矛盾:

  • 秩相关衡量的是逐点的单调一致性——在 19 万个观测上,高换手日的收益并不系统性地高于低换手日
  • 分组均值容易被尾部驱动——最高 20% 那组里,少数暴涨样本把均值拉了上去

诚实的结论是:方向上的信息即使存在,也远弱于波动上的信息(相关系数差 700 倍),且极不稳定。

这类"分组看有效、相关系数看无效"的情况非常常见。遇到时不要挑对自己有利的那个报,要两个都报,然后老实说"这个效应主要由尾部驱动"。

所以

成交量能告诉你「要动了」,但不告诉你「往哪动」。

这也解释了一个长期存在的困惑:为什么"放量"既能出现在见顶,也能出现在启动?

因为它本来就没有方向信息。它只是告诉你分歧变大了、关注度上来了——接下来幅度会更大,至于往哪边,量能不知道。

这个结论有直接的实用价值:成交量应该进入你的风险模型(仓位、止损宽度),而不是你的方向模型(买卖信号)。这与上一节 ATR 的定位完全一致——它们都是尺子,不是指南针。

❓ 测验
某因子在五等分分组上均值单调上升,但与目标的秩相关只有 0.0001(p=0.958)。最恰当的处理是?
✏️ 填空
本节结论:成交量对未来 ___ 有显著预测力,对未来方向几乎没有。

📌 免责:本课为技术教学,所有统计为历史模拟,不构成投资建议;标的为沪深300 成分股按代码序取样,非精选。

✅ 小结

四个结论:

  1. 成交量本身没有方向——每笔成交都有买卖双方,"资金流入"是贴符号后的人为定义
  2. OBV 顶背离又反了:教科书说该跌,实测 4/4 显著上涨(10 日 +0.776pp)。因为"创 60 日新高"本身就是强动量信号,背离筛掉的是量能、留下的还是强势股
  3. "缩量上涨不持久"是对的:放量 20 日 +0.690pp 且持续扩大,缩量衰减到 -0.064pp。这是本章少数被验证为对的口诀
  4. 方向 vs 波动:相关系数差 700 倍——成交量该进风险模型,不该进方向模型

外加一条方法论:遇到"分组有效、相关无效"的矛盾,两个都报,并说明是不是尾部驱动。

下一节是这一章的收束,也是对方完全没有的一节:把这四节讲过的所有指标放进同一个相关矩阵和 PCA 里,回答一个问题——你以为的"多指标共振",到底是几条独立证据?

下一节 → 指标同源性:20 个指标里有几个是独立的
🔎 来源与核验· 4 条,点开核对
本节每个关键论断都对应一个可追溯的来源 —— 这是本课程"靠谱、不过时"的底线。
「OBV 顶背离(价格创 60 日新高而 OBV 未创新高,3099 次信号)后 1/5/10/20 日差值 +0.227/+0.389/+0.776/+0.876pp,p 值 0.0000/0.0017/0.0000/0.0006,全部显著为正」
📚 本节 code/volume_indicators.py,2026-07-31 于 ECS 实测(50 只沪深300 成分股),输出见 code/outputs/stdout.txt✓ 已核验 2026-07
「放量上涨(涨幅>1% 且量能>1.5 倍均量,15074 次)1/5/10/20 日差值 +0.101/+0.253/+0.448/+0.690pp 全显著;缩量上涨(量能<0.8 倍,10561 次)1/5 日显著(+0.143/+0.142pp),10 日 +0.013pp、20 日 -0.064pp 不显著」
📚 同上实测✓ 已核验 2026-07
「相对成交量(当日量/20 日均量)与未来 5 日方向的秩相关 +0.0001(p=0.958)、与幅度 +0.0376(p=8.95e-62)、与波动率 +0.0709(p=1.31e-214),193927 个观测」
📚 同上实测(Spearman 秩相关)✓ 已核验 2026-07
「按相对成交量五等分,未来 5 日波动率从最低组 1.908% 单调升至最高组 2.234%;方向均值从 0.230% 升至 0.483% 但秩相关近零,提示由尾部驱动」
📚 同上实测✓ 已核验 2026-07
智图软件的赞赏码
都看到这了,打个赏呗!
接下来 · p2.5
指标同源性:20 个指标里有几个是独立的
继续读下一节 →