一、TWAP算法概述
1.1 什么是TWAP算法
TWAP,全称Time-Weighted Average Price,时间加权平均价格算法。说白了,就是把一个大订单拆成很多小单,在固定的时间间隔里均匀地执行。
我刚开始做ETF交易那会儿,有个客户要买入500万份的沪深300ETF。如果一次性砸进去,市场肯定会被冲击到。后来我用了TWAP,把订单拆成50笔,每笔10万份,每隔2分钟发一笔。结果呢?成交均价跟当天均价几乎一样,客户很满意。
TWAP的核心逻辑其实很简单:
- 时间均匀:把交易时间切成N个等长片段
- 数量均匀:每个片段分配等量的订单
- 执行均匀:在每个片段内完成指定数量
你想想看,这就像你每天吃三顿饭,每顿吃一样多。不会因为中午饿了就多吃,也不会因为晚上不饿就不吃。TWAP就是这个道理。
核心公式:
TWAP = Σ(价格_i × 数量_i) / Σ(数量_i)
其中:
价格_i = 第i个时间片段的成交价格
数量_i = 第i个时间片段的成交数量
1.2 TWAP与VWAP的区别
很多新手会搞混TWAP和VWAP。我当年也犯过这个错,有一次在路演时把两者说反了,被台下一位老交易员当场指出来...嗯,从那以后我就再也没搞混过。
它们的核心区别在于:
| 对比维度 | TWAP | VWAP |
|---|---|---|
| 权重依据 | 时间 | 成交量 |
| 目标价格 | 时间平均价 | 成交量加权平均价 |
| 适用场景 | 流动性好的ETF | 成交量波动大的品种 |
| 执行策略 | 固定时间间隔 | 跟随成交量分布 |
| 市场影响 | 较小 | 可能较大 |
为什么会这样?因为VWAP会跟着成交量走。如果某段时间成交量特别大,VWAP就会在那段时间多分配订单。而TWAP不管成交量大小,就是均匀分配。
我个人习惯是:做ETF套利时用TWAP,做股票大单交易时用VWAP。ETF流动性好,均匀执行就够了。股票流动性差,得跟着成交量走才安全。
我的经验:如果你不确定用哪个,先看标的的日均成交额。日均成交额超过10亿的,TWAP就够了。低于1亿的,建议用VWAP。
1.3 TWAP在ETF交易中的核心价值
ETF交易有个特点:流动性好,但冲击成本依然存在。尤其是大额交易时,你买100万份和买1000万份,成本完全不一样。
TWAP在ETF交易中的核心价值,我总结为三点:
- 降低冲击成本:把大单拆小,市场不会察觉你的意图
- 提高执行确定性:固定时间执行,不会错过最佳时机
- 简化操作流程:自动化执行,不用人工盯盘
我记得有一次做科创50ETF的建仓,规模大概2000万。如果用市价单直接买,估计要拉高0.3%的成本。但用了TWAP,最终成交均价只比当天均价高了0.05%。这就是TWAP的价值。
避坑指南:我曾经遇到过一个问题——TWAP在极端行情下会失效。比如2020年3月美股熔断那会儿,ETF价格波动剧烈,TWAP的均匀执行反而成了劣势。所以记住:TWAP适合正常市场,不适合极端行情。
1.4 TWAP算法的核心逻辑图
下面这张图是我自己画的,展示了TWAP算法的完整执行流程:
这张图展示了TWAP的完整执行链路。从输入总订单开始,经过三个步骤,最终输出均匀执行的结果。右侧的参数表是你在实际编码时需要设置的变量。
1.5 实战中的注意事项
最后,我想分享几个实战中的小技巧:
- 时间片段不要太多:我一般设10-20个片段。太多的话,每笔太小,手续费占比会很高。
- 避开开盘和收盘:开盘前15分钟和收盘前15分钟,市场波动大,TWAP效果不好。
- 结合盘口深度:如果盘口深度不够,可以适当调整每笔数量。
我的建议:刚开始用TWAP时,先用模拟盘跑一周。看看你的参数设置是否合理。我当年就是先在模拟盘上跑了两个月,才敢上实盘的。
好了,TWAP的基本概念就讲到这里。记住一句话:TWAP不是万能的,但没有TWAP是万万不能的。在ETF交易中,它是最基础也最实用的工具之一。