15、交易量指标(Volume Profile):Volume Profile的绘制。高成交量节点(HVN)与低成交量节点(LVN)。

各位同学,今天我们来聊聊Volume Profile。说实话,这个工具是我在实盘交易中最依赖的指标之一。它不像那些均线、MACD那样滞后,而是直接告诉你——市场在哪里真正成交了。

什么是Volume Profile?

简单说,Volume Profile就是把成交量按价格水平分布展示。你想想看,传统成交量指标只告诉你某个时间段内成交了多少,但没告诉你这些成交发生在什么价位。而Volume Profile恰恰解决了这个问题。

我个人习惯把Volume Profile看作市场的「记忆」。它记录了每个价格水平上,多空双方投入了多少真金白银。这些数据不会骗人。

核心概念:Volume Profile展示的是「价格-成交量」的二维关系,而非「时间-成交量」的一维关系。

Volume Profile的绘制方法

绘制Volume Profile其实不复杂。我来拆解一下步骤:

  1. 确定时间周期——通常取一个交易日,也可以是一周或一小时
  2. 划分价格区间——将价格范围分成等宽的「价格带」(通常每格0.5-2个tick)
  3. 统计每个价格带的成交量——把落在该价格区间内的所有成交单量累加
  4. 横向绘制柱状图——每个价格带对应的成交量用水平柱表示

嗯,这里要注意:不同交易所的数据颗粒度不一样。我在做期货交易时遇到过一个问题——有些数据源只提供分钟级成交明细,导致绘制出来的Profile失真严重。后来我改用逐笔成交数据,效果才真正出来。

代码实现:绘制Volume Profile

下面是我常用的Python实现,用到了pandas和matplotlib。代码不长,但核心逻辑都在里面了。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def plot_volume_profile(df, price_col='price', volume_col='volume', bins=50):
    """
    绘制Volume Profile
    df: DataFrame,包含价格和成交量数据
    """
    # 划分价格区间
    price_min = df[price_col].min()
    price_max = df[price_col].max()
    price_bins = np.linspace(price_min, price_max, bins)
    
    # 统计每个价格带的成交量
    df['price_bin'] = pd.cut(df[price_col], bins=price_bins)
    volume_profile = df.groupby('price_bin')[volume_col].sum()
    
    # 横向绘制
    fig, ax = plt.subplots(figsize=(8, 10))
    ax.barh(range(len(volume_profile)), volume_profile.values, height=0.8)
    ax.set_yticks(range(len(volume_profile)))
    ax.set_yticklabels([f'{b.left:.2f}-{b.right:.2f}' for b in volume_profile.index])
    ax.set_xlabel('成交量')
    ax.set_ylabel('价格区间')
    ax.set_title('Volume Profile')
    plt.tight_layout()
    return fig

避坑指南:我曾经在绘制时直接用收盘价代替成交价,结果Profile完全不对。记住,必须用每一笔成交的实际价格,而不是K线的收盘价。

高成交量节点(HVN)

HVN,全称High Volume Node。说白了,就是成交量特别大的那些价格水平。

为什么会形成HVN?通常是因为市场在这个价位上达成了共识。买方愿意在这个价格大量买入,卖方也愿意在这个价格大量卖出。双方都认为这个价格「合理」。

HVN的作用很明确:

  • 支撑/阻力位——价格回到HVN区域时,往往会获得支撑或遇到阻力
  • 价值区域——HVN密集区通常被认为是市场的「公允价值」区间
  • 交易参考——我个人习惯在HVN下沿做多,上沿做空,止损设在HVN外侧

实战经验:我在做股指期货时发现,如果价格快速突破HVN区域且成交量放大,这个突破往往是有效的。反之,如果突破时成交量萎缩,大概率是假突破。

低成交量节点(LVN)

LVN,Low Volume Node。就是成交量稀少的那些价格水平。

LVN意味着什么?市场在这个价位上几乎没有停留。要么是价格快速穿过,要么是流动性极差。

LVN的实战价值:

  • 价格「真空带」——价格在LVN区域移动时阻力最小,容易快速通过
  • 潜在突破点——如果价格在LVN区域盘整后放量突破,方向往往很猛烈
  • 止损设置参考——我经常把止损放在LVN的另一侧,因为一旦价格回到LVN,说明市场逻辑变了

注意:LVN区域不代表价格一定会快速通过。如果价格在LVN区域反复震荡并开始放量,说明市场正在这个价位重新建立共识,LVN可能转化为HVN。

HVN与LVN的配合使用

单独看HVN或LVN意义有限。真正有价值的是两者的组合。

市场状态 HVN/LVN特征 交易策略
趋势行情 价格远离HVN,在LVN区域运行 顺势交易,不逆势猜顶底
震荡行情 价格在HVN之间来回摆动 高抛低吸,HVN上下沿做边界
突破行情 价格突破HVN后进入LVN区域 突破确认后加仓,目标看下一个HVN

我记得有一次做原油期货,价格在HVN区域盘整了整整两天。我当时判断市场在蓄力,结果第三天价格放量突破HVN,直接冲到了下一个HVN,一波行情吃了将近3%的利润。这就是Volume Profile的威力。

知识体系结构图

下面我用SVG画了一张图,把Volume Profile的核心逻辑串起来。你看完应该能一目了然。

Volume Profile 核心知识体系 Volume Profile 绘制方法 价格区间划分 成交量统计 HVN(高成交量节点) 特征:成交量密集 作用:支撑/阻力位 策略:价值区域交易 LVN(低成交量节点) 特征:成交量稀少 作用:价格真空带 策略:突破交易参考 核心逻辑:HVN是价值共识区,LVN是价格真空带 两者结合使用,判断市场真实意图

个人心得:刚开始用Volume Profile时,我总想找到「完美」的HVN和LVN。后来发现市场没那么理想化。关键是看相对关系——哪个价格带的成交量明显高于或低于周围区域,那它就是有效的HVN或LVN。

好了,关于Volume Profile的绘制以及HVN、LVN的核心概念,今天就讲到这里。记住一句话:成交量是市场的语言,Volume Profile就是这本字典。你读懂了它,市场在你眼里就不再是随机的噪音。