4、冲击成本计算:瞬时冲击成本、永久冲击成本、时间加权平均价格(TWAP)

冲击成本这东西,说白了就是「你下单时,市场给你的惩罚」。我刚开始做高频交易那会儿,总觉得自己的订单能悄无声息地成交,结果一跑回测,滑点吃掉了我一半利润。嗯,从那以后,我再也不敢小看冲击成本了。

今天咱们把冲击成本拆成三块来讲:瞬时冲击永久冲击,以及一个经典算法——TWAP。这三者其实是同一个问题的不同侧面。

4.1 瞬时冲击成本:你推了市场一把

瞬时冲击,也叫「临时冲击」。它指的是你的订单进入市场后,短时间内造成的价格偏离。

举个例子:

  • 当前买一价 10.00,卖一价 10.01
  • 你想买入 1000 股,但卖一只有 200 股
  • 你的订单会吃掉卖一到卖五的所有挂单
  • 成交均价可能变成 10.05

这 0.04 的差价,就是瞬时冲击成本。

核心公式(简化版):
瞬时冲击成本 = 成交均价 - 下单前基准价

我在项目中遇到过一种情况:某个小市值股票,流动性极差。我挂了一笔 5000 股的买单,结果直接把价格从 15.20 推到了 15.80。那 0.60 的冲击,比我预期的交易成本还高。后来我学乖了,对这种票,要么拆单,要么放弃。

4.2 永久冲击成本:市场记住了你

永久冲击,指的是你的订单对市场造成的长期影响。即使你的订单已经成交完毕,价格也没有回到原来的位置。

为什么会这样?

  • 你的大单被市场解读为「有内幕消息」
  • 做市商调整了报价,认为新的均衡价格更高
  • 其他算法交易者跟风买入,推高了价格
我的经验: 永久冲击通常占整个冲击成本的 30%~50%。如果你做的是大单交易,一定要把永久冲击算进去,否则你的策略在实盘里会亏得很惨。

永久冲击的估算方法:

永久冲击 = (成交后 30 分钟的价格 - 下单前基准价) × 方向因子

方向因子:买入为 +1,卖出为 -1。如果买入后价格涨了,说明有永久冲击;如果价格跌回去了,那只是瞬时冲击。

4.3 时间加权平均价格(TWAP)

TWAP 是一种经典的拆单算法。它的目标很简单:让成交均价尽量接近这段时间内的平均价格

怎么做?

  1. 把总订单量均匀分配到每个时间切片
  2. 每个切片内,用市价单或限价单执行
  3. 不关心成交量分布,只关心时间均匀
TWAP 的核心思想:
时间均匀 = 价格均匀?
不一定,但在流动性好的市场里,这个假设基本成立。

我举个例子:

总订单:12000 股
执行时间:12:00 - 12:10(10 分钟)
切片:每 1 分钟一个切片
每个切片:1200 股

每个切片执行时,你直接按当时的市价买入。10 分钟后,你的成交均价应该接近这 10 分钟内的 VWAP(成交量加权均价)。

4.4 三种冲击成本的对比

类型 时间尺度 是否可逆 典型场景
瞬时冲击 秒级 是(价格会恢复) 小单、流动性好的品种
永久冲击 分钟~小时级 否(价格不会恢复) 大单、信息敏感品种
TWAP 成本 整个执行周期 部分可逆 大单拆单、被动执行
注意: TWAP 并不直接「消除」冲击成本,它只是把冲击分散到多个时间点。如果你在流动性极差的市场里用 TWAP,每个切片都可能产生新的冲击,总成本反而更高。

4.5 知识体系图:冲击成本的核心逻辑

下面这张图,帮你理清三者之间的关系:

冲击成本计算核心逻辑 订单簿冲击成本 瞬时冲击成本 永久冲击成本 TWAP 算法 时间短,价格可恢复 适合小单、流动性好 时间长,价格不回弹 适合大单、信息敏感 时间均匀拆单 降低单点冲击 三者关系:瞬时 + 永久 = 总冲击成本 TWAP 是管理瞬时冲击的常用工具

4.6 实战中的避坑指南

我曾经踩过一个坑:用 TWAP 执行一笔 50 万股的订单,切片设成了 1 分钟。结果每个切片都吃掉了一整档深度,累计冲击成本比一次性吃掉还高。后来我改成 5 分钟切片,配合限价单,成本才降下来。

给你几个建议:

  • 先算流动性:用订单簿深度估算你的订单占市场总深度的比例
  • 区分瞬时和永久:如果价格 5 分钟后还没回来,那就是永久冲击
  • TWAP 不是万能药:流动性差时,用 VWAP 或 POV(成交量百分比)更合适
一个小技巧: 我习惯在实盘前跑一次「冲击成本模拟」。用历史订单簿数据回放你的订单,看看实际滑点是多少。这个步骤能帮你省下不少真金白银。

好了,冲击成本这块就聊到这儿。你想想看,如果你现在要执行一笔大单,你会先算瞬时冲击还是永久冲击?我个人建议,先看流动性,再选算法。别一上来就上 TWAP,有时候慢一点反而更省钱。


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