一、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 策略类型 被动型 按历史成交量分布下单 不看价格,只看时间 适合大单拆单、指数跟踪 主动型 加入价格偏离度判断 便宜多买,贵了少买 适合日内回转、机构调仓 适用场景 适合 大单拆单、指数跟踪 日内回转、机构调仓 流动性好的标的 不适合 流动性差的股票 重大消息发布前后 核心要点 VWAP是基准,不是信号。被动型保底,主动型优化。选对场景,事半功倍。

这张图把VWAP策略的三个核心维度串起来了。左边是核心逻辑,中间是两种策略类型,右边是适用场景。你把它存下来,以后做策略设计时可以参考。

最后说一句:VWAP策略看起来简单,但真正跑起来坑不少。我建议你先用模拟盘跑一个月,把各种边界情况都踩一遍,再上实盘。别问我为什么知道——都是血泪教训。


公众号:蓝海资料掘金营,微信deep3321