5、交易量分析:成交量与信息流的关系、成交量分布(VPIN)、成交量加权平均价格(VWAP)、成交量突变检测

各位同学,咱们今天聊成交量。很多人做交易,眼睛只盯着价格K线,觉得成交量就是个辅助指标。我刚开始做量化那会儿也这么想,直到有一次在股指期货上栽了个大跟头——价格明明突破了,我追进去,结果瞬间被打回来。后来复盘才发现,那根突破K线的成交量,比前一根少了将近一半。说白了,那就是个假突破。

从那以后,我对成交量就格外上心。今天这章,咱们就把成交量掰开揉碎了讲清楚。

5.1 成交量与信息流的关系

成交量是什么?它不只是「今天成交了多少手」。在我看来,成交量是信息流在价格上的投影。你想想看,每一笔成交的背后,都是一个买方和一个卖方在博弈。当大量信息涌入市场时,成交量必然会放大。

我习惯把成交量分为两类:

  • 信息驱动型成交量:比如财报发布、政策出台、突发事件。这类成交量通常伴随着价格跳空,而且持续性很强。
  • 噪音驱动型成交量:比如高频对倒、程序化刷单。这类成交量往往在短时间内爆发,但很快会回归均值。

怎么区分?我个人有个小技巧:看成交量的「自相关性」。信息驱动的成交量,往往在后续几个周期内仍有延续;而噪音驱动的,基本就是一锤子买卖。

我的经验: 如果你看到成交量突然放大,但价格没怎么动,那大概率是噪音。真正有信息含量的成交量,一定会伴随价格的显著波动。

5.2 成交量分布(VPIN)

VPIN,全称是Volume-Synchronized Probability of Informed Trading。翻译过来就是「成交量同步知情交易概率」。这名字听着挺唬人,其实核心思想很简单:把成交量分成若干等份,然后看每一份里,买卖方向的不平衡程度。

为什么要这么做?因为传统的成交量分析是按时间切片,比如每分钟、每小时。但信息流不是按时间均匀到达的。有时候一分钟内成交了10万手,有时候一小时才成交1万手。按时间切片,你会错过很多细节。

VPIN的做法是:把成交量切成等份,比如每份1000手。然后看这1000手里,主动买和主动卖的差值有多大。差值越大,说明知情交易的概率越高。

我给大家画个流程图,方便理解:

VPIN 计算流程 原始逐笔成交数据 时间、价格、成交量、方向 成交量等份切割 每份固定成交量(如1000手) 计算买卖不平衡 |买量 - 卖量| 计算VPIN值 VPIN = 平均不平衡量 / 等份成交量 判断:VPIN > 阈值 → 知情交易概率高 VPIN 越高,越可能发生价格反转

嗯,这里要注意:VPIN的阈值不是固定的。不同的品种、不同的市场微观结构,阈值差异很大。我建议你至少回测3个月的数据,找到适合自己品种的阈值。

核心要点: VPIN 越高,说明当前成交量中知情交易的比例越大。当 VPIN 达到极端值时,往往预示着价格即将反转。我在做期货高频策略时,就经常用 VPIN 作为出场信号。

5.3 成交量加权平均价格(VWAP)

VWAP,全称Volume-Weighted Average Price。这玩意儿机构用得特别多,尤其是大资金交易员。为什么?因为大单子不能按市价直接砸,那样会把价格打飞。他们需要知道:在当前这个时间段内,市场的平均成交成本是多少。

VWAP的计算公式很简单:

VWAP = Σ(价格 × 成交量) / Σ(成交量)

举个例子:假设某股票在10元成交了100股,在11元成交了200股。那么VWAP = (10×100 + 11×200) / (100 + 200) = 3200 / 300 ≈ 10.67元。

我个人习惯把VWAP当作「市场公允价格」来看。当价格在VWAP上方运行时,说明买方力量占优;当价格在VWAP下方运行时,说明卖方力量占优。

我曾经做过一个统计:在A股市场,如果开盘后30分钟内价格始终在VWAP上方,那么当天收阳线的概率超过70%。当然,这个数据只是经验之谈,大家不要盲目套用。

实战技巧: 我建议你把VWAP和布林带结合使用。当价格突破VWAP上轨(VWAP + 2倍标准差)时,往往是超买信号;跌破下轨时,是超卖信号。这个组合在震荡市中特别好用。

5.4 成交量突变检测

成交量突变,说白了就是「量能异动」。正常情况下,成交量应该在一个相对稳定的范围内波动。但如果某根K线的成交量突然放大到前几根K线的3倍以上,那就值得警惕了。

我常用的检测方法有两种:

  • Z-Score 方法:计算过去N根K线成交量的均值和标准差,然后看当前成交量偏离了多少个标准差。一般超过2个标准差就算突变。
  • 百分比法:当前成交量相对于过去N根K线的中位数,如果超过某个百分比(比如200%),就算突变。

这里给出一段简单的Python代码,用于检测成交量突变:

import numpy as np

def detect_volume_spike(volume_series, window=20, threshold=2):
    """
    检测成交量突变
    volume_series: 成交量序列
    window: 滚动窗口大小
    threshold: Z-Score 阈值
    """
    rolling_mean = volume_series.rolling(window).mean()
    rolling_std = volume_series.rolling(window).std()
    z_scores = (volume_series - rolling_mean) / rolling_std
    spikes = z_scores > threshold
    return spikes

嗯,这里有个坑要提醒大家:成交量突变检测不能只看绝对值。比如某只股票平时每天成交100万股,突然有一天成交了300万股,这算突变。但如果这只股票平时每天成交1亿股,突然有一天成交了1.5亿股,虽然绝对值增加了5000万股,但相对变化只有50%,可能不算突变。

我曾经踩过的坑: 有一次我检测到某只股票的成交量突然放大了5倍,以为是主力进场,果断跟了进去。结果第二天就出了利空公告,股价直接跌停。后来复盘才发现,那天的成交量放大是因为大股东在减持。所以,成交量突变只是一个信号,一定要结合其他信息综合判断,千万别盲目跟风。

最后,我给大家整理了一个表格,总结一下今天讲的内容:

指标 核心思想 适用场景 注意事项
成交量与信息流 成交量是信息流的投影 判断真假突破、识别主力意图 区分信息驱动和噪音驱动
VPIN 成交量等份切割,计算买卖不平衡 知情交易概率、价格反转预警 阈值需根据品种调整
VWAP 成交量加权平均价格 大资金交易、日内趋势判断 结合布林带使用效果更佳
成交量突变检测 检测成交量异常放大 事件驱动策略、风险预警 需结合相对变化和绝对变化

好了,这一章的内容就到这里。成交量分析是个细活,需要你在实战中慢慢积累感觉。别指望看一遍就能掌握,多复盘、多总结,慢慢就会有自己的心得了。

交易系统化学习资料 微信Strategy888888