一、VWAP策略的核心逻辑
VWAP,全称是Volume-Weighted Average Price。
翻译过来就是「成交量加权平均价格」。
说白了,它不是一个交易信号,而是一个基准。
我刚开始做算法交易时,总觉得VWAP很神秘。后来发现,它的核心逻辑其实特别简单:
VWAP = 累计成交金额 ÷ 累计成交量
从开盘到当前时刻,每一笔成交的价格,按成交量加权求平均。
举个例子你就明白了:
| 时间 | 价格 | 成交量 | 成交金额 |
|---|---|---|---|
| 09:30 | 10.00 | 1000 | 10000 |
| 09:31 | 10.05 | 2000 | 20100 |
| 09:32 | 9.98 | 1500 | 14970 |
| 累计 | 4500 | 45070 |
VWAP = 45070 ÷ 4500 = 10.0156
嗯,就这么简单。但它的意义可不简单。
VWAP策略的目标,就是让我们的成交价格尽量接近这个基准。如果买入价低于VWAP,说明我们执行得好。如果高于VWAP,说明我们买贵了。
我个人习惯把VWAP策略分成两种:被动型和主动型。下面我们一个一个聊。
二、被动型VWAP vs 主动型VWAP
1. 被动型VWAP
被动型VWAP,说白了就是「跟着成交量走」。
它的逻辑是:市场什么时候成交量最大,我就什么时候多下单。市场冷清时,我就少下甚至不下。
具体做法是这样的:
- 先拿到历史成交量分布数据(比如过去20天的平均)
- 把一天分成N个时间片(比如每5分钟一个片)
- 每个时间片分配对应的成交量比例
- 到时间了就按比例下单,不管价格
我举个例子:
# 伪代码示例
total_shares = 100000 # 总委托量
time_slices = 48 # 一天48个5分钟片
for each slice:
volume_ratio = historical_volume[slice] / total_historical_volume
order_qty = total_shares * volume_ratio
place_market_order(order_qty)
sleep(5分钟)
我在项目中遇到过一个问题:如果某天开盘后成交量突然异常放大,被动型策略就会在那个时间片下很多单,结果买在了高点。嗯,这就是被动型的缺点——它不看价格,只看时间。
避坑指南:我曾经因为没处理节假日效应,导致策略在节后第一天大幅跑输VWAP。因为节后第一天的成交量分布和平时完全不同。后来我加了一个「特殊日期检测」模块,才解决这个问题。
2. 主动型VWAP
主动型VWAP就不一样了。它会在被动分配的基础上,加入价格判断。
核心逻辑是:
- 如果当前价格低于VWAP,说明便宜了,可以多买点
- 如果当前价格高于VWAP,说明贵了,就少买点或者等等
- 如果价格偏离太大,甚至可以暂停交易
你想想看,这就像你去菜市场买菜。西红柿便宜时多买两斤,贵了就少买点。道理是一样的。
主动型VWAP的代码大概长这样:
# 主动型VWAP伪代码
total_shares = 100000
current_vwap = calculate_vwap()
for each slice:
base_qty = total_shares * volume_ratio
# 价格偏离度
deviation = (current_price - current_vwap) / current_vwap
if deviation < -0.001: # 价格低于VWAP 0.1%
order_qty = base_qty * 1.2 # 多买20%
elif deviation > 0.001: # 价格高于VWAP 0.1%
order_qty = base_qty * 0.8 # 少买20%
else:
order_qty = base_qty
place_limit_order(price=current_price, qty=order_qty)
个人经验:主动型VWAP的偏离阈值不能设得太小。我刚开始设了0.01%,结果频繁触发调整,反而增加了交易成本。后来调到0.1%左右,效果好了很多。
三、VWAP策略的适用场景
不是所有场景都适合用VWAP。我总结了几种典型情况:
适合的场景
| 场景 | 说明 | 推荐策略 |
|---|---|---|
| 大单拆单 | 需要买入/卖出大量股票,怕冲击市场 | 被动型VWAP |
| 指数跟踪 | 需要按指数权重建仓 | 被动型VWAP |
| 日内回转交易 | 当天买当天卖,追求低延迟 | 主动型VWAP |
| 机构调仓 | 基金调仓,需要降低冲击成本 | 被动型+主动型混合 |
不适合的场景
- 流动性极差的股票:一天成交不了几笔,VWAP算出来也没意义
- 重大消息发布前后:价格会剧烈波动,VWAP基准失效
- 开盘和收盘瞬间:这两个时间点的成交量分布极不稳定
我记得有一次,一个朋友让我帮他跑VWAP策略,标的是一只日成交额不到100万的仙股。我直接拒绝了。为什么?因为这种股票你下个单,价格就跳好几个档位,VWAP策略根本跑不起来。
四、核心知识体系图
下面这张图,是我自己整理的VWAP策略知识体系。你可以把它当作一个快速索引:
这张图把VWAP策略的三个核心维度串起来了。左边是核心逻辑,中间是两种策略类型,右边是适用场景。你把它存下来,以后做策略设计时可以参考。
最后说一句:VWAP策略看起来简单,但真正跑起来坑不少。我建议你先用模拟盘跑一个月,把各种边界情况都踩一遍,再上实盘。别问我为什么知道——都是血泪教训。
公众号:蓝海资料掘金营,微信deep3321