3. TWAP核心原理:时间加权平均价格的计算逻辑、切片策略与执行周期
TWAP,全称是Time-Weighted Average Price。说白了,就是把一个大订单,拆成很多小单,均匀地扔到市场里去。目标只有一个——让成交均价,尽量贴近这段时间的市场平均价。
我刚开始做量化交易那会儿,觉得TWAP不就是个定时器嘛,每隔几秒发个单就行了。后来被市场狠狠教育了一顿。嗯,这里面的门道,比你想的要多。
3.1 时间加权平均价格的计算逻辑
先搞清楚一个基础问题:TWAP的价格是怎么算的?
公式其实很简单:
TWAP = (P₁ + P₂ + P₃ + ... + Pₙ) / N
其中P₁到Pₙ,是每个时间点的价格。N是时间点的总数。
举个例子:
| 时间点 | 价格(元) |
|---|---|
| 09:30:00 | 100.00 |
| 09:30:05 | 100.05 |
| 09:30:10 | 100.02 |
| 09:30:15 | 100.08 |
| 09:30:20 | 100.03 |
TWAP = (100.00 + 100.05 + 100.02 + 100.08 + 100.03) / 5 = 100.036元
注意,这里用的是每个时间点的价格,不是成交量。这和VWAP(成交量加权平均价)有本质区别。VWAP看重的是「量」,TWAP看重的是「时间」。
核心区别:
- TWAP:每个时间点权重相同,适合「时间优先」的场景
- VWAP:成交量大的时间点权重更高,适合「流动性优先」的场景
我在项目中遇到过一个问题:如果直接用盘口中间价来计算TWAP,遇到快速行情时,价格会剧烈跳动。后来我改用「最近N笔成交价的均值」作为采样点,效果稳定多了。
3.2 切片策略:怎么拆单才合理?
切片策略,就是决定「每个时间点该下多少单」。这是TWAP执行的核心。
最常见的策略有两种:
3.2.1 均匀切片法
把总订单量,平均分配到每个时间切片上。
每片数量 = 总订单量 / 总切片数
举个例子:你要买1000手BTC,执行周期是10分钟,每30秒切一片。
- 总切片数 = 10分钟 / 30秒 = 20片
- 每片数量 = 1000手 / 20片 = 50手/片
这种方法的优点是简单、透明。缺点是遇到流动性不足时,50手可能直接吃掉好几个档位,造成滑点。
3.2.2 随机切片法
在均匀切片的基础上,加入随机扰动。比如每片数量在40-60手之间随机浮动。
每片数量 = 基准量 × (1 + 随机因子)
为什么要加随机?
你想想看,如果对手盘发现你每30秒固定下50手,他完全可以提前挂单等你。这就是「被狙击」。随机化之后,对手很难预测你的下单节奏。
我的经验:我个人习惯用「均匀+5%随机」的组合。既保证执行效率,又不容易被识别。曾经有一次,我用纯均匀切片做了一笔大单,结果被高频交易者盯上了,每次我下单前价格就跳一下。从那以后,我再也不敢用纯均匀了。
3.3 执行周期:多久切一片?
执行周期,就是每两笔订单之间的时间间隔。这个参数直接影响执行效果。
常见的周期设置:
| 市场类型 | 推荐周期 | 原因 |
|---|---|---|
| 高流动性(如BTC永续) | 5-15秒 | 订单簿更新快,可以高频执行 |
| 中等流动性(如主流币) | 30-60秒 | 需要给市场时间消化订单 |
| 低流动性(如小币种) | 2-5分钟 | 避免一次性冲击市场 |
为什么会这样?
周期太短,比如1秒一单,你的订单会密集出现在订单簿上,容易被识别为算法单。周期太长,比如10分钟一单,那就失去了TWAP「平滑执行」的意义。
避坑指南:我曾经在ETH上设置过3秒的执行周期,结果因为网络延迟,订单堆积在一起,变成了「瞬间大单」。嗯,那笔单子的滑点,够我吃一个月的土。后来我加了一个「防堆积」机制:如果上一单还没成交,下一单就延迟发送。
3.4 核心逻辑流程图
下面这张图,是我自己总结的TWAP执行流程。每次做新策略时,我都会对着这张图检查一遍。
3.5 实战中的几个关键点
讲完了理论,说说实战中我踩过的坑:
- 不要死板地按时间切片——如果市场突然出现大单,可以临时调整切片大小。我习惯加一个「流动性检测器」,当盘口深度变化超过20%时,自动调整下一片的大小。
- 注意交易所的限频——有些交易所每秒只能发5单。如果你的切片周期是1秒,但每片需要发3单,那就超限了。嗯,这个问题我遇到过,后来在策略里加了一个「限频适配器」。
- 考虑网络延迟——从策略发出指令到订单到达交易所,通常有50-200ms的延迟。如果你的切片周期是5秒,这点延迟无所谓。但如果周期是1秒,延迟就占了20%。这时候需要用「预发单」技术来补偿。
一个小技巧:我个人习惯在策略启动前,先发一笔「探测单」,测试当前网络延迟和交易所响应速度。然后根据这个数据,动态调整切片周期。这样能减少很多不必要的滑点。
TWAP的核心,说白了就是「用时间换空间」。把大单拆小,均匀分布,让市场慢慢消化。但要注意,TWAP不是万能的。在极端行情下(比如闪崩),TWAP反而会放大亏损。这时候需要配合止损机制一起使用。
好了,这一章的内容就到这里。记住:切片策略和执行周期,是TWAP的两条腿。一条腿粗一条腿细,走不远的。