参数
由持续时间和间隔可得:
启动时立即发出一片,之后每隔一个间隔发出一片,窗口结束时再发一片。
启动前的校验
如果一笔 TWAP 按指定参数根本不可能完成,它会在一开始就被拒绝:- 每片必须大到能构成有效订单——总量按计划切分后不能低于市场最小值
- 每片不得超过市场的最大订单数量
- 全部数量必须满足起始保证金
- 若为只减仓,总量不得超过你当前的仓位
执行与追赶
每一片都作为带 3% 滑点边界的市价单提交。执行由链上驱动,不看挂钟,所以每一片落在间隔走完之后的第一个区块上。 某一片成交低于预期——订单簿薄、顶到滑点边界——缺口不会丢。计划表会对照此刻本应到达的位置: 当实际成交落后于该目标时,后续分片会被放大以追赶:成交不足
追赶补量
为什么设上限策略拿越发越大的订单去应付流动性缺失,最后会变成它本想避开的那种冲击。目标 = 已用时间 ÷ 总时长 × 总量
六片,总量 6.0 — 第 3 片在薄簿里成交不足
3× 基础数量 — 上限
随机化
打开随机化,各片就不再相同。每发一片之前,策略先算出剩余量的平均值,再在它周围一个安全区间里取一个数量。 固定间隔上的固定数量是一种模式,而订单流中的模式对任何盯着看的人都是信息。随机化去掉这种规律,同时不改变计划表的总量。 剩余数量的算术仍然是硬约束。随机化只改变每片的大小;它不会让策略超发,也不会在最后留下残量。什么时候 TWAP 是对的工具
该用:订单相对可见深度偏大,你又有时间,而且“窗口内的平均价格”是个可以接受的目标。 不该用:你现在就要这个仓位——TWAP 和紧迫性正好相反。心里有一个具体价格时也不该用:TWAP 没有价格目标,只有时间计划表。价格比即时性更重要的话,阶梯订单会在一段价格区间上挂出限价单。后续阅读
阶梯订单
拆到价格上而不是时间上。
市价单
每一片所受的滑点边界。
订单簿
判断你的订单相对深度是否偏大。
手续费
每一片都是吃单订单,都付吃单费率。