8、成交量分布(VP):成交量分布图的绘制逻辑,高量区域与低量区域,价值区域(VA)的确定

成交量分布,英文叫 Volume Profile,简称 VP。这东西在订单流交易里,可以说是最核心的工具之一。我刚开始接触它的时候,觉得不就是个柱状图嘛,有啥稀奇的?后来在实盘里吃过几次亏,才真正明白——它画出来的不是成交量,而是市场参与者的「共识边界」。

说白了,VP 就是告诉你:在某个价格水平上,到底有多少人愿意成交。价格涨上去又跌回来,哪个位置换手最充分?哪个位置几乎没人碰?这些信息,K线图不会直接告诉你,但 VP 会。

8.1 成交量分布图的绘制逻辑

先讲绘制逻辑。VP 的横轴是成交量,纵轴是价格。它不像传统成交量那样按时间画竖线,而是把每个价格水平上的成交量累加起来,横着画。

具体怎么算?我举个例子。假设某只股票在 10:00 到 10:01 这一分钟内,成交了 1000 股。其中:

  • 在 50.00 元成交了 200 股
  • 在 50.01 元成交了 300 股
  • 在 50.02 元成交了 500 股

那么 VP 就会在 50.00 这个价格上累加 200,在 50.01 上累加 300,在 50.02 上累加 500。然后继续处理下一分钟的数据,把所有相同价格的成交量加起来。最终,每个价格水平上都有一个总成交量,画出来就是一根横着的柱子。

这里有个关键参数——「行距」或叫「价格精度」。我习惯用 1 个 tick 作为行距,比如股票用 0.01 元,期货用 1 个最小变动价位。行距越小,图越精细,但噪音也越大。行距太大,又会丢失细节。嗯,这个需要根据品种自己调。

核心要点:VP 的横轴长度代表该价格水平上的总成交量。柱子越长,说明这个价格上成交越活跃,多空博弈越激烈。

你可能会问:为什么不直接用传统成交量?传统成交量是按时间切的,比如每分钟一根柱子。但 VP 是按价格切的。两者的视角完全不同。传统成交量告诉你「什么时候有人在交易」,VP 告诉你「什么价格上有人在交易」。后者对判断支撑阻力,更有直接意义。

8.2 高量区域与低量区域

画完 VP 之后,你会看到一些价格水平上柱子特别长,有些地方特别短。这就是高量区域和低量区域。

高量区域,就是成交量特别大的价格区间。这说明市场在这个价格上达成了大量交易,多空双方都认可这个价格。我个人的经验是,高量区域一旦形成,往往会成为后续行情的「价值中枢」。价格离开这个区域后,迟早会回来「确认」一下。

我在项目中遇到过一件事:某期货品种在 5000 点附近连续三天成交量巨大,VP 显示那里是绝对的高量区。后来价格涨到 5200,很多人觉得要突破了,但我看到 VP 上 5000 附近还有大量未平仓的筹码,就判断价格一定会回踩。果然,两天后价格跌回 5000 附近,然后才重新上涨。

低量区域,就是成交量稀少的区间。说白了,就是「没人愿意在这个价格成交」。低量区域通常出现在快速上涨或下跌的过程中,价格像穿过真空一样「嗖」地就过去了。

低量区域有什么意义?它往往是潜在的「价格跳跃区」。价格一旦进入低量区,因为没有足够的对手盘,很容易快速穿过。反过来,如果价格在低量区停留,说明市场可能在这里形成了新的共识,低量区可能会变成高量区。

实战技巧:我一般把高量区域的上沿和下沿作为重要的支撑阻力位。低量区域则用来判断趋势的延续性——如果价格在低量区上方运行,说明上涨阻力小,趋势可能延续。

8.3 价值区域(VA)的确定

价值区域,Value Area,简称 VA。这是 VP 里最重要的概念之一。VA 指的是「大部分成交量发生的价格区间」。通常我们取总成交量的 70% 作为 VA 的覆盖范围。

具体怎么算?步骤是这样的:

  1. 先找到成交量最大的那个价格水平,这叫「控制点」POC。
  2. 从 POC 开始,向上下两个方向累加成交量。
  3. 每次累加时,选择累加后总成交量增加最多的那个方向。
  4. 直到累加的总成交量达到全部成交量的 70%。
  5. 此时覆盖的价格区间,就是价值区域 VA。

听起来有点绕?我写个简单的 Python 代码演示一下:

def calculate_va(volume_by_price, total_volume, threshold=0.7):
    # volume_by_price: dict, key=价格, value=成交量
    # 找到 POC
    poc = max(volume_by_price, key=volume_by_price.get)
    
    # 按价格排序
    sorted_prices = sorted(volume_by_price.keys())
    poc_idx = sorted_prices.index(poc)
    
    # 从 POC 向两边扩展
    cum_vol = volume_by_price[poc]
    low_idx = poc_idx
    high_idx = poc_idx
    
    while cum_vol < total_volume * threshold:
        # 看向上加还是向下加能增加更多成交量
        if low_idx > 0 and high_idx < len(sorted_prices) - 1:
            up_vol = volume_by_price[sorted_prices[high_idx + 1]]
            down_vol = volume_by_price[sorted_prices[low_idx - 1]]
            if up_vol >= down_vol:
                high_idx += 1
                cum_vol += up_vol
            else:
                low_idx -= 1
                cum_vol += down_vol
        elif low_idx > 0:
            low_idx -= 1
            cum_vol += volume_by_price[sorted_prices[low_idx]]
        elif high_idx < len(sorted_prices) - 1:
            high_idx += 1
            cum_vol += volume_by_price[sorted_prices[high_idx]]
        else:
            break
    
    va_low = sorted_prices[low_idx]
    va_high = sorted_prices[high_idx]
    return va_low, va_high, poc

这段代码的逻辑就是:从 POC 出发,每次选择能带来更多成交量的方向扩展,直到覆盖 70% 的总成交量。你想想看,这其实就是在找「市场最认可的价格区间」。

注意:70% 是默认值,但不是铁律。有些交易者用 68%,有些用 72%。我个人习惯在波动大的品种上用 68%,波动小的用 72%。具体多少,建议你回测一下自己的品种。

VA 的上下边界,就是价值区域的高点和低点。POC 是价值区域内成交量最大的那个价格。这三个数据,构成了 VP 分析的核心框架。

我曾经犯过一个错误:只看 POC 不看 VA 的宽度。有一次 POC 非常明显,但 VA 的宽度特别大,说明市场分歧严重。我当时没注意,直接按 POC 做多,结果价格在 VA 内部反复震荡,最后止损出局。后来我养成了习惯:VA 宽度大时,说明市场还没达成一致,最好等 VA 收窄再动手。

8.4 知识体系结构图

下面这张图,把 VP 的核心逻辑串起来了。你可以看到,从原始数据到最终决策,每一步都有明确的逻辑关系。

成交量分布(VP)知识体系 原始数据 逐笔成交数据(时间、价格、成交量) 绘制逻辑 按价格水平累加成交量 → 横轴为成交量,纵轴为价格 关键参数:行距(价格精度) 核心概念 高量区域(成交密集区) 低量区域(成交真空区) 价值区域 VA(70%成交量) 实战应用 • 高量区域 → 支撑/阻力位 • 低量区域 → 趋势延续判断 • VA 边界 → 交易区间 • POC → 价值中枢

从这张图可以看得很清楚:原始数据经过绘制逻辑的处理,得到高量区、低量区和 VA 三个核心概念,最后落地到实战应用。每一步都有明确的输入和输出。

8.5 小结

成交量分布 VP,本质上是在回答一个问题:市场在什么价格上达成了共识?高量区域是共识区,低量区域是分歧区,VA 是共识的核心区间。POC 是共识最强的那个点。

我个人觉得,VP 最大的价值在于它让你从「时间视角」切换到「价格视角」。传统 K 线图告诉你什么时候发生了什么,VP 告诉你什么价格上发生了什么。两者结合,才能看到更完整的市场图景。

嗯,这一章的内容就到这里。记住:VP 不是预测工具,它是描述工具。它告诉你过去发生了什么,至于未来怎么走,还需要结合其他工具一起判断。


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