📊 Volume Profile(成交量轮廓):基于价格区间的量能分布图完全解读
在传统K线图中,时间序列的成交量柱只能反映每根K线的成交量,但无法解答一个关键问题:
在哪些价格区间,成交量最为集中?
这正是 Volume Profile(成交量轮廓) 登场的意义——它不是时间序列指标,而是价格维度的成交量分布快照。
一、Volume Profile 是什么?
Volume Profile(成交量轮廓),又称价格-成交量分布图,是一种将成交量按不同价格区间进行聚合统计的工具,用于识别:
- 主力建仓/换手的价位区间;
- 高成交密集区(支撑/压力带);
- 市场对某一价格段的偏好程度。
与按时间维度绘制的柱状成交量图不同,Volume Profile 是按价格聚合的横向量图。
二、pandas_ta 的 Volume Profile 函数详解
import pandas_ta as ta
vp = ta.vp(
close=df["close"],
volume=df["volume"],
width=10,
sort=False # 是否先对收盘价排序
)
参数说明:
参数名 | 类型 | 含义 | 默认值 |
---|---|---|---|
close | Series | 收盘价序列 | 必填 |
volume | Series | 成交量序列 | 必填 |
width | int | 分箱数量(即将价格分成多少个区段) | 10 |
sort | bool | 是否先排序后再分箱(非按原始顺序) | False |
三、返回结果:7列结构解读
Volume Profile 返回的是一个非时间序列的 DataFrame
,每一行代表一个价格区段:
列名 | 含义 |
---|---|
low_收盘 |
该区段最低价 |
mean_收盘 |
该区段平均价 |
high_收盘 |
该区段最高价 |
pos_成交量 |
收盘价上涨的成交量总和 |
neg_成交量 |
收盘价下跌的成交量总和 |
neut_成交量 |
收盘价无变动的成交量总和 |
total_成交量 |
总成交量(正 + 负 + 中性) |
🔔 注意:
- 该结果是价格分布快照,不能直接拼接回原始时间序列DataFrame;
- 并未包含“价值区域 Value Area”计算(例如70%累积量区间)。
四、使用场景与价值
✅ 1. 寻找“筹码密集区”与“主力活动区”
vp.sort_values("total_成交量", ascending=False).head(3)
- 这些区间通常为支撑/压力所在;
- 波段交易者可据此构建“入场-止盈”通道;
- 主力建仓迹象通常伴随大宗成交量集中。
✅ 2. 捕捉“低成交量真空区”
- 分布稀疏的价格带,价格容易快速穿越;
- 做趋势突破策略时,这些区域可能带来快速拉升/跳水机会。
✅ 3. 跨品种比较结构
- 相同成交总量下,不同价格区的聚合程度可反映市场共识稳定度;
- 对比不同股票、指数期货、加密货币等品种,观察筹码分布形态差异。
五、Volume Profile 可视化(matplotlib横条图)
import matplotlib.pyplot as plt
plt.barh(vp["mean_收盘"], vp["total_成交量"], height=vp["high_收盘"] - vp["low_收盘"], color="skyblue")
plt.xlabel("成交量")
plt.ylabel("价格区间")
plt.title("Volume Profile - 价格成交量分布图")
plt.grid(True)
plt.show()
barh
横向柱状图模拟交易软件中 Volume Profile 侧边图;- 清晰展示各价位的交易密度。
六、结合策略建议:Volume Profile 与价格行为
搭配信号 | 策略方向 |
---|---|
价格突破高密集区 | 强趋势确认,快速放量拉升可能 |
价格跌入真空区 | 风险提示,止损应设更紧 |
价格回踩高密集区 | 低吸买入参考点 |
七、总结:Volume Profile 是量价结构的黄金透镜
在交易中,仅仅看K线走势是不够的。Volume Profile 帮助我们站在价格维度看待**“量从何来,量向何去”**,从而:
- ✅ 精准识别重要价位;
- ✅ 捕捉资金活跃区;
- ✅ 警惕“空量区”风险;
- ✅ 提升入场出场胜率。