15、交易量指标(Volume Profile):Volume Profile的绘制。高成交量节点(HVN)与低成交量节点(LVN)。
各位同学,今天我们来聊聊Volume Profile。说实话,这个工具是我在实盘交易中最依赖的指标之一。它不像那些均线、MACD那样滞后,而是直接告诉你——市场在哪里真正成交了。
什么是Volume Profile?
简单说,Volume Profile就是把成交量按价格水平分布展示。你想想看,传统成交量指标只告诉你某个时间段内成交了多少,但没告诉你这些成交发生在什么价位。而Volume Profile恰恰解决了这个问题。
我个人习惯把Volume Profile看作市场的「记忆」。它记录了每个价格水平上,多空双方投入了多少真金白银。这些数据不会骗人。
核心概念:Volume Profile展示的是「价格-成交量」的二维关系,而非「时间-成交量」的一维关系。
Volume Profile的绘制方法
绘制Volume Profile其实不复杂。我来拆解一下步骤:
- 确定时间周期——通常取一个交易日,也可以是一周或一小时
- 划分价格区间——将价格范围分成等宽的「价格带」(通常每格0.5-2个tick)
- 统计每个价格带的成交量——把落在该价格区间内的所有成交单量累加
- 横向绘制柱状图——每个价格带对应的成交量用水平柱表示
嗯,这里要注意:不同交易所的数据颗粒度不一样。我在做期货交易时遇到过一个问题——有些数据源只提供分钟级成交明细,导致绘制出来的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时,我总想找到「完美」的HVN和LVN。后来发现市场没那么理想化。关键是看相对关系——哪个价格带的成交量明显高于或低于周围区域,那它就是有效的HVN或LVN。
好了,关于Volume Profile的绘制以及HVN、LVN的核心概念,今天就讲到这里。记住一句话:成交量是市场的语言,Volume Profile就是这本字典。你读懂了它,市场在你眼里就不再是随机的噪音。