4. Tick级别成交量特征:累计成交量、VWAP、成交量分布与大单识别
Tick级别的成交量是高频交易中最原始、最核心的数据维度之一。与分钟或日线级别的成交量不同,Tick成交量直接反映了每一笔撮合交易的资金博弈痕迹。本章将系统讲解如何从Tick数据中提取四类关键成交量特征:累计成交量、成交量加权平均价格(VWAP)、成交量分布(Volume Profile)以及大单识别。
4.1 累计成交量(Cumulative Volume)
累计成交量是最基础的成交量特征,它通过对指定时间窗口内的Tick成交量进行累加,反映资金流入流出的总量。在实际应用中,累计成交量通常与价格走势结合,形成“量价关系”分析的基础。
核心公式:
其中 Vol(i) 为第 i 笔Tick的成交量(单位:手或股)。
CumVol(t) = Σ Vol(i) , i = 1 to t其中 Vol(i) 为第 i 笔Tick的成交量(单位:手或股)。
常见应用场景:
- 量能突破确认:当价格突破关键价位时,若累计成交量同步放大,则突破有效性更高。
- 量价背离检测:价格创新高但累计成交量递减,预示上涨动能衰竭。
- 分时累计对比:将当日累计成交量与历史同期均值对比,判断当日活跃度。
| 特征名称 | 计算方式 | 典型窗口 | 信号含义 |
|---|---|---|---|
| 滚动累计成交量 | 过去N笔Tick成交量之和 | 50 / 100 / 200 Tick | 短期资金集中度 |
| 日内累计成交量 | 从开盘到当前Tick的累加 | 全交易日 | 当日整体活跃度 |
| 相对累计成交量 | 当前累计 / 历史同期均值 | 5日同期窗口 | 异常放量/缩量 |
实战提示:在Tick级别计算累计成交量时,务必注意除权除息和股本变动对成交量绝对值的影响。建议使用“复权成交量”或“换手率”替代原始成交量进行跨日期对比。
4.2 成交量加权平均价格(VWAP)
VWAP(Volume Weighted Average Price)是机构交易者最常用的基准价格之一。它通过将价格与成交量加权,反映一段时间内的平均成交成本。在Tick级别,VWAP可以实时更新,为算法交易提供动态锚点。
Tick级别VWAP计算公式:
VWAP(t) = Σ(Price(i) × Vol(i)) / Σ Vol(i) , i = 1 to t
其中:
- Price(i) = 第i笔Tick的成交价格
- Vol(i) = 第i笔Tick的成交量
- t = 当前Tick序号(从当日开盘算起)
VWAP的三种典型用法:
- 执行成本评估:将实际成交价格与VWAP对比,衡量交易执行质量(Slippage)。
- 动态支撑/阻力:价格在VWAP上方运行时偏强,下方运行时偏弱,VWAP本身常成为日内多空分水岭。
- VWAP偏离策略:当价格大幅偏离VWAP(如超过2个标准差)时,存在均值回归交易机会。
注意事项:Tick级别的VWAP对数据质量高度敏感。如果Tick数据中存在错误价格(如极端异常值),会导致VWAP瞬间失真。建议在计算前对Tick价格进行3σ去噪或中位数滤波。
4.3 成交量分布(Volume Profile)
成交量分布(Volume Profile)将成交量按价格水平进行分配,揭示在特定价格区间内成交的密集程度。与传统的“时间-成交量”视角不同,Volume Profile提供的是“价格-成交量”视角,能够清晰识别市场中的价值区域(VA)和控制点(POC)。
核心概念:
| 术语 | 定义 | 交易含义 |
|---|---|---|
| POC(Point of Control) | 成交量最大的价格水平 | 市场最认可的价值中枢 |
| VA(Value Area) | 包含70%成交量的价格区间 | 主要交易活动发生的区域 |
| VAH / VAL | 价值区域上沿 / 下沿 | 动态支撑与阻力位 |
| 低成交量节点(LVN) | 成交量显著偏小的价格水平 | 价格容易快速穿越的区域 |
构建Volume Profile的步骤:
- 价格分桶:将价格区间划分为等宽的“价格桶”(如每0.01元或每1个tick size为一个桶)。
- 成交量累加:将每笔Tick的成交量累加到对应的价格桶中。
- 计算POC:找出累计成交量最大的价格桶。
- 计算VA:从POC向两侧扩展,直到累计成交量达到总成交量的70%。
- 识别LVN:标记成交量显著低于相邻桶的价格水平(通常使用Z-score或百分位法)。
代码示例:计算Volume Profile(Python伪代码)
import numpy as np
def compute_volume_profile(tick_prices, tick_volumes, num_bins=100):
# 1. 确定价格范围
price_min, price_max = tick_prices.min(), tick_prices.max()
bins = np.linspace(price_min, price_max, num_bins + 1)
# 2. 价格分桶并累加成交量
volume_profile = np.zeros(num_bins)
for price, vol in zip(tick_prices, tick_volumes):
idx = np.digitize(price, bins) - 1
idx = min(idx, num_bins - 1)
volume_profile[idx] += vol
# 3. 找到POC
poc_idx = np.argmax(volume_profile)
poc_price = (bins[poc_idx] + bins[poc_idx + 1]) / 2
# 4. 计算价值区域(70%)
total_vol = volume_profile.sum()
target_vol = total_vol * 0.7
cum_vol = volume_profile[poc_idx]
left, right = poc_idx, poc_idx
while cum_vol < target_vol:
if left > 0 and (right >= num_bins - 1 or
volume_profile[left - 1] >= volume_profile[right + 1]):
left -= 1
cum_vol += volume_profile[left]
elif right < num_bins - 1:
right += 1
cum_vol += volume_profile[right]
else:
break
vah = (bins[right] + bins[right + 1]) / 2
val = (bins[left] + bins[left + 1]) / 2
return {
'poc': poc_price,
'vah': vah,
'val': val,
'profile': volume_profile,
'bins': bins
}
4.4 大单识别(Large Order Detection)
大单识别旨在从Tick数据流中快速筛选出可能由机构或大户发起的、具有市场影响力的订单。大单通常伴随着显著的资金冲击成本,是高频交易策略中重要的“信号源”。
大单识别的核心维度:
- 成交量阈值法:单笔Tick成交量超过某个固定阈值(如500手)或动态阈值(如过去N笔均值的3倍)。
- 资金金额法:单笔成交金额超过设定值(如100万元),适用于不同价格水平的股票。
- 时间切片法:在极短时间窗口(如100ms)内,累计成交量超过阈值,识别“拆分大单”。
- 价格冲击法:单笔Tick导致价格变动超过N个tick size,且成交量异常,识别“激进大单”。
| 识别方法 | 参数示例 | 优点 | 缺点 |
|---|---|---|---|
| 固定阈值 | 单笔 > 1000手 | 简单直观,计算快 | 不适应不同流动性股票 |
| 动态阈值(Z-score) | Vol > mean + 3σ | 自适应市场状态 | 对异常值敏感 |
| 时间切片累计 | 100ms内累计 > 2000手 | 捕捉拆分大单 | 需要高精度时间戳 |
| 价格冲击比 | ΔPrice / Vol > 阈值 | 直接衡量冲击成本 | 易受买卖价差干扰 |
实战技巧:在实际高频系统中,建议将成交量阈值法与价格冲击法结合使用。例如,定义“大单”为:单笔成交量超过过去100笔均值的5倍,且同时导致价格变动超过2个tick size。这种复合条件能有效过滤掉“大额对倒”等虚假信号。
4.5 特征组合与实战案例
将上述四个维度的成交量特征进行组合,可以构建出强大的高频交易信号。以下是一个典型的日内交易案例:
案例:基于Volume Profile的VWAP回归策略
策略逻辑:
1. 每5分钟重新计算一次Volume Profile,获取当前VAH和VAL。
2. 实时计算Tick级别的VWAP。
3. 当价格突破VAH且VWAP仍在VAH下方时,识别为“假突破”,做空。
4. 当价格跌破VAL且VWAP仍在VAL上方时,识别为“假跌破”,做多。
5. 止盈目标:回归至VWAP;止损:突破VAH/VAL后继续运行0.5%。
特征组合:
- Volume Profile → 确定价值区间边界
- VWAP → 确定动态均衡点
- 累计成交量 → 确认突破时的量能配合
- 大单识别 → 过滤散户噪音,关注机构行为
特征工程总结:
- 累计成交量提供量能背景,是其他特征的基础。
- VWAP提供动态成本基准,适合执行分析和均值回归策略。
- Volume Profile提供价格-成交量结构,识别关键支撑阻力位。
- 大单识别提供资金行为信号,捕捉机构动向。
数据质量警告:Tick级别的成交量特征对数据质量要求极高。常见问题包括:
1. 重复Tick(同一笔交易被记录多次)→ 导致成交量虚增。
2. 延迟Tick(时间戳滞后)→ 导致VWAP和Volume Profile错位。
3. 盘口数据与成交数据不匹配 → 导致大单识别误判。
建议在特征计算前,先进行去重、时间戳对齐和盘口校验等数据清洗步骤。
1. 重复Tick(同一笔交易被记录多次)→ 导致成交量虚增。
2. 延迟Tick(时间戳滞后)→ 导致VWAP和Volume Profile错位。
3. 盘口数据与成交数据不匹配 → 导致大单识别误判。
建议在特征计算前,先进行去重、时间戳对齐和盘口校验等数据清洗步骤。