3、TWAP计算原理:时间加权平均公式、切片逻辑、执行周期设定、与VWAP的数学差异
3.1 时间加权平均公式:说白了就是“等分时间”
TWAP,全称Time-Weighted Average Price。它的核心思想很简单:把时间切成等份,每份里都执行等量的订单。
公式长这样:
TWAP = (P₁ + P₂ + ... + Pₙ) / N
其中P₁到Pₙ是每个时间切片的价格,N是切片总数。
嗯,你可能会问:这不就是简单平均吗?对,就是简单平均。但关键在于——每个价格点的时间权重是一样的。这和VWAP完全不同,VWAP是按成交量加权,TWAP是按时间加权。
我在项目中遇到过一件事:有个同事把TWAP和VWAP混着用,结果回测数据对不上。后来一查,发现他把时间切片设成了不等长。说白了,TWAP的前提就是“时间等分”,不等分就不叫TWAP了。
核心要点:TWAP = 时间等分 + 价格等权。每个切片的时间长度必须一致,否则公式失效。
3.2 切片逻辑:怎么切?切多少?
切片逻辑是TWAP的灵魂。我个人习惯把切片分为三个层级:
- 宏观切片:整个执行周期,比如1小时、4小时、1天
- 微观切片:每个小时间片,比如1分钟、5分钟、10分钟
- 执行切片:实际下单的粒度,比如每30秒发一次单
举个例子:你要在1小时内买入100万股。如果切成60个1分钟的切片,每个切片就执行约16667股。这就是最基础的切片逻辑。
但这里有个坑——切片数量不能太少,也不能太多。太少的话,单笔订单太大,容易暴露意图;太多的话,交易成本会上升。我曾经在回测时把切片设成了600个(每秒一个),结果手续费比利润还高。嗯,这教训挺深刻的。
我的建议:对于A股市场,切片粒度建议设在1-5分钟之间。对于期货或外汇,可以缩短到30秒-2分钟。具体要看流动性和波动率。
3.3 执行周期设定:从“拍脑袋”到“有章可循”
执行周期怎么定?很多人上来就拍脑袋:就1小时吧。但我觉得,这事得看三个因素:
- 订单规模:订单越大,周期越长。我一般按“订单量/市场日均成交量”来估算,比例超过5%就考虑拉长周期
- 市场波动率:波动率越高,周期越短。为什么?因为时间越长,价格跑偏的风险越大
- 交易成本:周期越长,切片越多,手续费越高。这是个平衡问题
我曾经在回测中试过固定周期和动态周期两种方案。固定周期就是“不管行情怎么变,我就按1小时执行”。动态周期则是根据实时波动率调整。结果发现:动态周期在波动率突变时表现更好,但实现起来复杂得多。
避坑指南:我曾经在实盘中把执行周期设得太短(5分钟),结果遇到突发行情,价格瞬间打穿了我的所有切片。后来我加了一个“最小执行间隔”的保护逻辑,才避免了类似问题。
3.4 与VWAP的数学差异:不只是“加权方式不同”
很多人觉得TWAP和VWAP的区别就是“加权方式不同”。其实没那么简单。咱们用表格对比一下:
| 对比维度 | TWAP | VWAP |
|---|---|---|
| 加权方式 | 时间等权 | 成交量加权 |
| 公式 | ∑Pᵢ / N | ∑(Pᵢ × Vᵢ) / ∑Vᵢ |
| 对成交量的依赖 | 不依赖 | 高度依赖 |
| 执行均匀性 | 时间上均匀 | 成交量上均匀 |
| 适用场景 | 低流动性、大单 | 高流动性、标准单 |
你想想看,TWAP的数学本质是时间序列的算术平均,而VWAP是成交量加权的价格平均。这意味着:
- TWAP对价格突变更敏感——因为每个时间点权重一样,一个极端价格就会拉偏平均值
- VWAP对成交量大的价格更敏感——如果某个价格成交了巨量,它就会主导VWAP
我在项目中遇到过一种情况:某只股票在收盘前突然放量拉升,VWAP被拉得很高,但TWAP变化不大。结果用VWAP策略的人全在高位接盘,用TWAP的人反而躲过一劫。说白了,TWAP更适合“时间优先”的场景,VWAP更适合“成本优先”的场景。
3.5 核心逻辑流程图
下面这张图展示了TWAP的核心计算逻辑。我习惯用这种流程图来梳理思路,避免在实盘中出现逻辑漏洞。
这张图把TWAP的执行流程拆成了四个步骤。我个人习惯在实盘前先画这种图,把每个环节的输入输出理清楚。你想想看,如果连流程图都画不清楚,代码写出来大概率也是漏洞百出。
一个小技巧:在实际编码时,我会在步骤3里加一个“价格异常检测”逻辑。如果某个切片的价格偏离前几个切片超过3%,就暂停执行并报警。这个逻辑帮我避免过好几次大坑。
好了,TWAP的计算原理就讲到这里。说白了,它就是一个“时间等分、价格等权”的简单策略。但简单不代表容易用好——切片粒度、执行周期、异常处理,每个环节都有讲究。下一节我们会聊TWAP的实战应用,到时候我会分享一些实盘中的踩坑经验。
公众号:蓝海资料掘金营,微信deep3321