3、POC与价值区域:控制点的识别与价值区域的构建
大家好,我是你们的订单流讲师。今天我们来聊聊市场微观结构里最核心的两个概念——POC和价值区域。说实话,这两个东西是我在实盘交易中使用频率最高的工具,没有之一。
很多新手看订单流图,第一眼就被那些花花绿绿的柱子搞晕了。其实你只要抓住两个关键点:哪里成交最多,以及大部分成交集中在什么价格区间。这就是POC和价值区域要解决的问题。
3.1 什么是POC(控制点)?
POC,全称Point of Control,翻译过来就是「控制点」。说白了,它就是在某个时间段内,成交量最大的那个价格。
我举个例子你就明白了。假设某只股票今天在10块钱成交了1000手,在10.01成交了2000手,在10.02成交了5000手。那么10.02就是今天的POC。就这么简单。
但为什么叫「控制点」?因为在这个价格上,买卖双方达成了最大共识。你可以想象一下,5000手都在这个价格成交,说明这个价格被市场反复测试并接受了。
核心逻辑: POC是市场多空双方博弈后形成的「价格锚点」。价格离开POC越远,回归的驱动力就越强。
3.2 如何识别POC?
识别POC其实就三步,我习惯用Python来处理,因为手动看太累了。
第一步,获取逐笔成交数据。你需要知道每一笔交易的价格和成交量。
第二步,按价格聚合。把同一个价格的成交量加起来。
第三步,找到最大值。成交量最大的那个价格就是POC。
来看代码:
import pandas as pd
import numpy as np
def find_poc(trade_data):
"""
识别控制点(POC)
trade_data: DataFrame, 包含'price'和'volume'两列
"""
# 按价格聚合成交量
volume_profile = trade_data.groupby('price')['volume'].sum()
# 找到成交量最大的价格
poc_price = volume_profile.idxmax()
poc_volume = volume_profile.max()
return poc_price, poc_volume
# 示例用法
# df = pd.read_csv('trade_data.csv')
# poc_price, poc_volume = find_poc(df)
# print(f"POC价格: {poc_price}, 成交量: {poc_volume}")
我的经验: 在实际项目中,我遇到过数据量特别大的情况,比如股指期货的逐笔数据一天就有几十万条。这时候用pandas的groupby效率很高,但要注意内存占用。我一般会先按日期分片处理。
3.3 价值区域(VA)的构建
POC只是一个点,但市场的大部分成交其实分布在一个区间内。这个区间就是价值区域(Value Area, VA)。
价值区域的定义是:包含总成交量70%的价格区间。为什么是70%?这是市场微观结构理论里的经验值,我个人觉得这个比例在大多数市场都适用。
构建价值区域的步骤:
- 先找到POC
- 从POC开始,向两边扩展
- 每次加入一个价格,累加成交量
- 直到累加成交量达到总成交量的70%
来看代码实现:
def build_value_area(volume_profile, poc_price, total_volume, threshold=0.7):
"""
构建价值区域
volume_profile: Series, 价格->成交量
poc_price: POC价格
total_volume: 总成交量
threshold: 阈值,默认70%
"""
# 按价格排序
prices = sorted(volume_profile.index)
poc_idx = prices.index(poc_price)
# 从POC向两边扩展
left_idx = poc_idx
right_idx = poc_idx
cum_volume = volume_profile[poc_price]
while cum_volume / total_volume < threshold:
# 向左扩展
if left_idx > 0:
left_idx -= 1
cum_volume += volume_profile[prices[left_idx]]
# 如果已经达到阈值,停止
if cum_volume / total_volume >= threshold:
break
# 向右扩展
if right_idx < len(prices) - 1:
right_idx += 1
cum_volume += volume_profile[prices[right_idx]]
va_high = prices[right_idx]
va_low = prices[left_idx]
return va_low, va_high
# 示例
# va_low, va_high = build_value_area(volume_profile, poc_price, total_volume)
# print(f"价值区域: {va_low} - {va_high}")
注意: 我曾经犯过一个错误,就是直接用POC向两边平均扩展。但实际市场是不对称的,有时候POC偏左,有时候偏右。所以一定要用累加成交量的方式,而不是简单取对称区间。
3.4 价值区域的交易应用
好了,现在我们有POC和价值区域了。怎么用?我总结了几种常见的交易场景。
3.4.1 价格回归策略
当价格远离价值区域时,市场有回归的倾向。为什么会这样?因为大部分成交都在价值区域内,说明这个区间被市场广泛接受。价格跑远了,就像被拉长的橡皮筋,迟早要弹回来。
具体操作:
- 价格在VA上方:考虑做空,目标回到VA内部
- 价格在VA下方:考虑做多,目标回到VA内部
- 止损设在VA外侧一定距离
3.4.2 POC支撑阻力
POC本身就是一个重要的支撑阻力位。我见过很多次,价格碰到POC就反弹。这其实很好理解——POC是成交最密集的地方,说明这里有大量的「记忆」。
你想想看,如果有人在POC买了1000手,价格跌下去他会不会想补仓?如果有人在POC卖了1000手,价格涨上来他会不会想止损?这些行为都会强化POC的支撑阻力作用。
3.4.3 价值区域突破
如果价格强势突破价值区域的上沿或下沿,并且伴随着成交量放大,这往往意味着趋势的开始。
我记得有一次做螺纹钢期货,价格在价值区域内震荡了整整两天。第三天突然放量突破VA上沿,我果断追了进去,那一波赚了不少。嗯,这里要注意的是,突破一定要有成交量配合,否则可能是假突破。
3.5 多周期共振
单周期的POC和VA已经很有用了,但如果你能结合多周期来看,效果会更好。
我个人习惯看三个周期:
- 大周期(日线): 确定主要的价值区域,这是市场的「大本营」
- 中周期(小时线): 确定当前的价值区域,这是市场的「前线」
- 小周期(15分钟): 确定精确的入场点,这是你的「狙击镜」
当三个周期的POC和VA指向同一个方向时,胜率会大幅提升。比如日线POC在下方支撑,小时线POC也在下方,15分钟POC也在下方——这就是共振,做多的胜率很高。
核心要点: 多周期共振不是简单的叠加,而是要看不同周期的价值区域是否「嵌套」在一起。大周期的VA包含中周期的VA,中周期的VA包含小周期的VA,这才是健康的共振结构。
3.6 本章知识体系
下面这张图展示了POC和价值区域的完整知识结构:
3.7 避坑指南
最后,分享几个我踩过的坑:
- 不要只看单周期: 我曾经只盯着15分钟图的POC做单,结果被日线级别的趋势碾压了。多周期共振不是锦上添花,而是必须的。
- 注意数据质量: 有些交易所的逐笔数据会有延迟或缺失,这会影响POC的准确性。我一般会用多个数据源交叉验证。
- 价值区域不是铁律: 价格突破价值区域后,有时候会快速回来,有时候不会。关键看突破时的成交量。放量突破,大概率是真突破;缩量突破,大概率是假突破。
- POC会移动: 随着新的成交数据进来,POC和价值区域都会变化。我习惯每根K线收盘后重新计算一次,而不是用固定的值。
我的建议: 刚开始学的时候,先用手工在图上画出POC和VA,感受一下市场的节奏。等熟练了再用代码自动化。手工画图的过程,其实就是在训练你的「盘感」。
好了,这一章的内容就到这里。POC和价值区域是订单流分析的基础,也是最重要的工具。下一章我们会讲成交量分布(Volume Profile)的进阶用法,到时候会结合更多的实战案例。
公众号:蓝海资料掘金营,微信deep3321