VWAP算法原理:时间加权与成交量加权的区别

说到VWAP,很多人第一反应就是「成交量加权平均价」。但说实话,这个定义只说对了一半。我刚开始做算法交易时,也以为VWAP就是个简单的平均价计算。直到有一次回测结果跟实盘差了十万八千里,我才意识到——时间加权和成交量加权,完全是两码事

时间加权 vs 成交量加权:核心差异

先看一个最简单的例子。假设某股票在一天内只有两笔交易:

时间 价格 成交量
10:00 100元 100股
14:00 102元 1000股

时间加权平均价 = (100 + 102) / 2 = 101元
成交量加权平均价 = (100×100 + 102×1000) / (100+1000) ≈ 101.82元

看到了吗?差了将近1块钱。为什么?因为时间加权把两笔交易看得一样重要,而成交量加权更看重「大单」的贡献。

核心区别一句话总结:

  • 时间加权:假设成交量均匀分布,每个时间切片权重相同
  • 成交量加权:按实际成交量分配权重,大单影响更大

我个人习惯用成交量加权,因为这才是市场真实的交易成本。但要注意——VWAP的基准逻辑,其实默认用的是成交量加权。时间加权更多用在TWAP策略里,那是另一个故事了。

VWAP的滑点模型:为什么实盘总比回测差?

嗯,这里要重点讲一下。很多新手做VWAP回测时,直接用「成交价 - VWAP」算滑点,结果回测曲线漂亮得不行,一上实盘就崩。为什么?因为你忽略了市场冲击成本

我曾在一次高频交易项目中踩过这个坑。回测时滑点设了0.5个tick,实盘跑起来直接亏了2个tick。后来复盘才发现,我的订单量太大,直接把价格推高了。

VWAP的滑点模型,一般包含三个层次:

  1. 固定滑点模型:假设每次成交都有固定偏移,比如0.1个tick。简单但不准。
  2. 比例滑点模型:滑点与订单量成正比。比如每成交1000股,滑点增加0.01%。
  3. 动态滑点模型:考虑当前市场深度、波动率、订单簿状态。最准,但也最复杂。

我的建议:初期回测用比例滑点模型就够了。公式很简单:

滑点 = 基准滑点 × (订单量 / 平均成交量)

基准滑点可以从历史数据中统计出来,一般取0.5~1个tick。

VWAP的基准逻辑:你到底在跟谁比?

VWAP的基准逻辑,说白了就是「你的成交价 vs 市场平均价」。但这里有个细节——市场平均价怎么算?

通常有两种基准:

  • 全市场VWAP:用全市场所有成交计算。这是最标准的基准。
  • 局部VWAP:只取你交易时段内的成交数据。比如你只在10:00-11:00交易,那就只算这个时间段的VWAP。

我个人更推荐用全市场VWAP。为什么?因为局部VWAP容易被操纵。你想想看,如果你只在流动性差的时段交易,那局部VWAP可能跟全市场差很多,回测结果会失真。

避坑指南:我曾经见过一个团队,用局部VWAP做回测,结果实盘时全市场VWAP跟局部差了0.3%。那点利润全被吃掉了。所以——基准一定要选全市场VWAP,除非你有特殊理由。

知识体系结构图

下面这张图,把VWAP的核心逻辑串起来了。你看一遍就能明白整个框架:

VWAP算法核心逻辑 时间加权 (TWAP) 每个时间切片权重相同 成交量加权 (VWAP) 按实际成交量分配权重 核心区别 滑点模型 固定滑点 每次偏移0.1 tick 比例滑点 与订单量成正比 动态滑点 考虑市场深度 基准逻辑 全市场VWAP(推荐) 局部VWAP(慎用) VWAP = 成交量加权平均价,是算法交易中最常用的基准之一

实战中的选择建议

说了这么多理论,到底怎么选?我直接给结论:

  • 做日内交易:用成交量加权VWAP,配合比例滑点模型
  • 做中低频策略:时间加权TWAP就够了,滑点用固定模型
  • 做高频交易:必须用动态滑点模型,否则实盘必亏

一个小技巧:回测时把滑点设得比实际大20%。这样实盘跑起来,至少不会太难看。我吃过亏,所以现在都这么干。

好了,VWAP的原理就讲到这里。记住一句话:成交量加权是灵魂,滑点模型是血肉,基准逻辑是骨架。三者缺一不可。