Market Profile vs Volume Profile (MP 与 VP 的对比)
一句话定义:Market Profile 用"价格 vs. 时间"的二维分布 (TPO 字母) 来描述市场结构;Volume Profile 用"价格 vs. 真实成交量"的分布来描述同一结构。二者的输入不同,输出(VA / POC / HVN / LVN)定义同形,但解读会有可观察的偏移。
1. 算法对比
设 t \in [t_{open}, t_{close}] 是盘内时间切片,\mathcal{P}_t 是当日成交价位的全集:
| 量 | Market Profile c^{MP}_t(p) | Volume Profile c^{VP}_t(p) |
|---|---|---|
| 输入 | 价格 p 上的 TPO 字母计数 (时间片数) | 价格 p 上的真实成交量 |
| 数学定义 | c^{MP}_t(p) = \#\{\tau : \tau \in [t_0, t_N] \wedge P_\tau = p\} | c^{VP}_t(p) = \sum_{\tau : P_\tau = p} V_\tau |
| 物理含义 | 价格在 p 上停留多久 | 价格在 p 上成交多少 |
其余结构(POC / VA / HVN / LVN)定义完全平行,只是把 c_t(p) 替换即可。
flowchart LR
A[日线 tick/minute bars] --> B{选择 profile 类型}
B -->|TPO 字母计数| C[MP Profile<br/>focuses on 接受/拒绝]
B -->|真实成交量| D[VP Profile<br/>focuses on 资金分布]
C --> E[POC, VA, HVN, LVN]
D --> E
2. 何时用哪个?
| 场景 | 推荐 | 理由 |
|---|---|---|
| 高流动性期货 (CL, ES, NQ) | MP / VP 任一 | 二者输出几无差异 |
| A 股大盘指数 (SSE 50, CSI 300) | VP | 数据回放完整,TPO 信息冗余 |
| 商品期货低流动性时段 | MP | 即使成交量稀疏,TPO 字母仍连续 |
| 美股个股 | VP | 真实成交数据最全 |
| 学术研究 / 跨资产比较 | MP | 计算不依赖 tick data,公开数据足够 |
经验法则:数据越稀疏 → MP 越稳;数据越丰富 → VP 越准。
3. 关键偏移:MP 与 VP 的 POC 不重合
这是新手最容易混淆的一点。
当成交量分布不均(常见情形 = 大单集中成在少数价位附近)时:
- VP 的 POC 会严重偏向大单所在价位
- MP 的 POC 受价格停留时间主导,更接近fair-value
设某日的成交量集中度用 Herfindahl 指数衡量:
H_{volume} = \sum_{p \in \mathcal{P}_t} \left( \frac{V_p}{\sum_q V_q} \right)^2
可以经验性地观察到:
\big| POC^{MP} - POC^{VP} \big| \approx \alpha \cdot H_{volume}, \quad \alpha > 0
因此当 H_{volume} 高("被程序化大单主导"的日子)时,两个 POC 偏差最大。
4. 与 VWAP / Anchored VWAP 的关系
4.1 VWAP —— "加权平均公允价"
VWAP_t = \frac{\sum_{\tau : P_\tau \le P_t} V_\tau \cdot P_\tau}{\sum_{\tau : P_\tau \le P_t} V_\tau}
VWAP 相当于 VP 的一阶原点矩。MP 的等价物是 TWAP (Time-Weighted Average Price):
TWAP_t = \frac{1}{T} \int_{t_0}^{t} P_\tau\; d\tau
4.2 Anchored VWAP (AVWAP) —— 与 MP 的 "时间锚" 形态同构
AVWAP 是 VP 的带锚点版本(某次重要事件 = 0 时),类似 MP 中"以集合竞价起点的 TPO 累计"。
| Anchored VWAP 锚点 | MP / AMT 对应物 |
|---|---|
| Earnings announcement | 集合竞价起点 + IB 形成期 |
| FOMC announcement | 政策事件后的 TPO 单边偏移 |
| Major gap open | Open Drive / 跳空开盘型 |
| Trend 起点 (UTurn) | Trend Day 起点 |
实操含义:在 IB 突破后用 AVWAP 从 IB break-out 起算,能复现一个 MP 视角的 "TPO Pivot";两套是同一现象的不同描述。
5. 把 MP / VP 转化为 microstructure features
可以量产以下几类 microstructure feature 喂入 ML 模型:
\mathbf{f}_t = \left[\; P_t,\; VWAP_t,\; AVWAP_t,\; \frac{P_t - POC_t}{\sigma_t},\; \frac{P_t - VAH_t}{IB_{width}},\; \frac{P_t - VAL_t}{IB_{width}},\; \text{BB}_{\text{KDE}}(P_t)\; \right]
| Feature | 经济含义 |
|---|---|
P_t - VWAP_t |
价格偏离当日公允价的标准化距离 |
P_t - POC_t |
价格偏离成交最密集价位的距离 |
(P_t - VAH_t) / IB_width |
价格突破上沿的相对幅度 |
BB_KDE(P_t) |
价位是否在 Composite HVN 厚带内(厚 → 阻力位) |
| LVN depth (z-score of c_t(p) at P_t) | 价位"被绕开"的程度 |
6. 量化组合建议
flowchart TD
A[Raw ticks / minute bars] --> B[Build Composite MP + VP<br/>across 1d, 5d, 20d, 60d windows]
B --> C[Compute feature vector f_t<br/>= IB / VA / POC / VWAP / LVN z-score]
C --> D[Stacking: microstructure features<br/>+ fundamental features<br/>+ alternative-data]
D --> E[Trade signal / Strategy]
MP / VP 在量化系统中的典型位置是 "中频 microstructure feature block",与 (基本面 + 另类数据) 平行叠加,参考 Ferson-Siegel Optimal Weighting 的非线性信号映射方法,把它映射到仓位层。
Open Questions
- 不同 proxy (TWAP / VWAP / Anchored VWAP) 哪个最适合作为 alpha factor 的"公允价值基准"?是否有一个自适应选择机制(根据盘口 spread / volatility 切换锚点)?
- Volume Profile 的 extreme-volume nodes (e.g. ES 08:30 ETH 开盘、CL 14:30 跨日) 是否应该被剔除以避免污染因子?如何在使用时做"事件剥离"?
回到 Market Profile 总览 · 上接 Market Profile/Multi-Day Composite