第二章:成交量分布——Volume Profile基础、POC、VA、高成交量节点

各位同学,咱们今天聊点硬核的。成交量分布,英文叫Volume Profile,简称VP。这东西在订单流交易里,可以说是地基一样的存在。

我刚开始做量化那会儿,用的还是传统的成交量柱状图。一根根柱子竖在那里,看着挺热闹,但你仔细想想——它只告诉你在某个时间单位里成交了多少,却没说这些成交量是在什么价位上发生的。说白了,它丢掉了价格这个维度。

而Volume Profile,就是把成交量按价格水平重新排列。它回答了一个更本质的问题:市场在哪个价位上最活跃?

2.1 Volume Profile的核心逻辑

咱们先看一个简单的例子。假设某只股票在一天内,价格在10元到15元之间波动。传统成交量图会告诉你:9:30到10:00成交了100万股,10:00到10:30成交了80万股……但你看不出10.5元这个价位到底成交了多少。

Volume Profile的做法是:把一天拆成若干个价格区间(通常叫“价格格子”,每个格子0.1元或0.5元),然后统计每个价格格子上总共成交了多少股。

嗯,这里要注意:Volume Profile不关心时间顺序,只关心价格与成交量的对应关系。

核心公式:

每个价格格子的成交量 = 在该价格水平上所有成交的总和

说白了,就是把时间轴压扁,只看价格轴上的成交量分布。

2.2 POC——控制点

POC,全称Point of Control,翻译过来就是“控制点”。它指的是在Volume Profile中,成交量最大的那个价格水平。

我个人习惯把POC看作市场的“重心”。为什么?因为在这个价位上,买卖双方达成了最多的共识。你想想看,如果大部分交易都发生在12.5元这个位置,那说明什么?说明多空双方都认为12.5元是一个合理的价格。

我在项目中遇到过这样一个案例:某期货合约在POC上方运行了整整三天,突然有一天价格跌破了POC,随后两天内暴跌了5%。为什么?因为POC一旦被跌破,之前在这个价位买入的多头全部被套牢,他们会成为后续的抛压来源。

实战技巧:

POC是动态的。我建议你至少观察三个时间维度的POC:

  • 日线POC:判断当天的主要价值区间
  • 周线POC:判断中期趋势的支撑/阻力
  • 月线POC:判断长期的价值中枢

当多个周期的POC重合时,这个位置的支撑或阻力会非常强。

2.3 VA——价值区域

价值区域,Value Area,简称VA。它指的是成交量最集中的那个价格区间,通常包含整个Volume Profile中70%的成交量。

怎么算?很简单:

  1. 找到POC
  2. 从POC开始,向上下两个方向累加成交量
  3. 直到累加的成交量达到总成交量的70%
  4. 这个范围就是价值区域

价值区域的上边界叫VAH(Value Area High),下边界叫VAL(Value Area Low)。

我曾经犯过一个错误:只看POC,忽略了VA的宽度。有一次POC在100元,但VA的宽度只有0.5元,说明市场在这个极窄的区间内达成了高度一致。结果第二天价格直接跳空突破,我因为没有提前准备,错过了最佳入场点。

避坑指南:

VA的宽度很重要。宽度越窄,说明市场分歧越小,一旦突破,力度往往很大。宽度越宽,说明多空博弈激烈,突破后容易反复。

2.4 高成交量节点

高成交量节点,High Volume Node,简称HVN。它指的是成交量显著高于平均水平的那些价格格子。

注意,HVN和POC的区别:POC只有一个,是成交量最大的那个点。而HVN可以有多个,只要成交量超过某个阈值(比如平均成交量的1.5倍或2倍),都可以算作HVN。

高成交量节点在实战中非常有用:

  • 作为支撑/阻力:价格回到HVN附近时,往往会有反应
  • 作为突破确认:价格放量突破HVN,说明趋势可能延续
  • 作为止损参考:如果价格跌破HVN后无法收回,说明多头已经放弃抵抗

我记得有一次做螺纹钢的日内交易,价格在3800元附近形成了一个HVN,成交量是平均水平的2.3倍。我当时判断这个位置有强支撑,就在3805元挂了多单。结果价格最低打到3801元,然后反弹到3850元。那一单赚了45个点。

关键区别总结:

概念 定义 实战用途
POC 成交量最大的价格 价值中枢、多空平衡点
VA 70%成交量所在的价格区间 判断市场是否“合理”
HVN 成交量显著偏高的价格 支撑/阻力、突破确认

2.5 用Python计算Volume Profile

光说不练假把式。咱们用Python来实现一个简单的Volume Profile计算。

import pandas as pd
import numpy as np

def calculate_volume_profile(df, price_step=0.5):
    """
    计算Volume Profile
    
    参数:
    df: DataFrame,必须包含'price'和'volume'两列
    price_step: 价格格子的步长
    
    返回:
    vp_df: Volume Profile数据
    poc: 控制点价格
    va_high: 价值区域上边界
    va_low: 价值区域下边界
    """
    # 将价格离散化为格子
    df['price_bin'] = np.floor(df['price'] / price_step) * price_step
    
    # 按价格格子汇总成交量
    vp = df.groupby('price_bin')['volume'].sum().reset_index()
    vp.columns = ['price', 'volume']
    vp = vp.sort_values('price').reset_index(drop=True)
    
    # 找到POC
    poc_idx = vp['volume'].idxmax()
    poc = vp.loc[poc_idx, 'price']
    
    # 计算价值区域(70%成交量)
    total_volume = vp['volume'].sum()
    target_volume = total_volume * 0.7
    
    # 从POC向上下累加
    cum_volume = vp.loc[poc_idx, 'volume']
    upper_idx = poc_idx
    lower_idx = poc_idx
    
    while cum_volume < target_volume:
        # 向上扩展
        if upper_idx + 1 < len(vp):
            upper_idx += 1
            cum_volume += vp.loc[upper_idx, 'volume']
        
        # 向下扩展
        if cum_volume < target_volume and lower_idx - 1 >= 0:
            lower_idx -= 1
            cum_volume += vp.loc[lower_idx, 'volume']
        
        # 如果已经到边界,退出
        if upper_idx == len(vp) - 1 and lower_idx == 0:
            break
    
    va_high = vp.loc[upper_idx, 'price'] + price_step
    va_low = vp.loc[lower_idx, 'price']
    
    # 标记高成交量节点(成交量 > 平均值的1.5倍)
    avg_volume = vp['volume'].mean()
    vp['is_hvn'] = vp['volume'] > avg_volume * 1.5
    
    return vp, poc, va_high, va_low

# 使用示例
# 假设df是包含price和volume的DataFrame
# vp_df, poc, vah, val = calculate_volume_profile(df, price_step=0.5)
# print(f"POC: {poc}, VAH: {vah}, VAL: {val}")

这段代码的核心逻辑其实就三步:离散化价格、按价格汇总成交量、从POC向上下扩展找价值区域。你想想看,是不是很简单?

个人建议:

price_step的选择很关键。步长太小,数据会稀疏,POC不明显;步长太大,会丢失细节。我一般用ATR(平均真实波幅)的1/10作为步长,效果不错。

2.6 知识体系结构图

下面这张图,把本章的核心概念串起来了。你可以把它当作一个思维导图来看。

成交量分布(Volume Profile)知识体系 Volume Profile POC(控制点) 成交量最大的价格 VA(价值区域) 70%成交量所在区间 HVN(高成交量节点) 成交量显著偏高 实战应用 支撑/阻力、突破确认、止损参考 多空平衡点 动态变化 VAH / VAL 宽度分析 支撑/阻力 突破确认 核心思想:成交量按价格分布,而非按时间分布 POC + VA + HVN 三者结合,构建完整的价值分析框架

嗯,这张图把POC、VA、HVN以及它们之间的关联都画出来了。你保存下来,以后做分析时可以参考。

好了,这一章的内容就到这里。成交量分布是订单流分析的基础,理解了它,后面的订单流失衡、Delta分析等内容才能学得扎实。记住一句话:价格是表象,成交量是本质。


公众号:蓝海数据掘金营,微信deep3321