跳到主要内容

执行算法(TWAP / VWAP)与 TCA

直觉

你需要买入 10 万股,但一次性市价砸下去会把价格冲上天(上一节讲的冲击)。执行算法就是把这笔「母单」切成很多小「子单」、分散到一段时间里慢慢执行,降低冲击。两种最基础的是 TWAP(按时间均分)和 VWAP(按预期成交量分配——开盘收盘量大、午间量小,就在量大时多买)。评估执行好坏的核心指标是执行差额(Implementation Shortfall, IS):你的平均成交价相对到达价(决策那一刻的中间价)差了多少。

TWAP 与 VWAP

设日内共 MM 段,每段成交量份额 vmv_mvm=1\sum v_m=1)、价格 PmP_m,到达价 P0=ParrivalP_0=P_{\text{arrival}}

TWAP 均价=1MmPm,VWAP 均价=mvmPm\text{TWAP 均价}=\frac{1}{M}\sum_m P_m,\qquad \text{VWAP 均价}=\sum_m v_m P_m IS(买)=均价P0(越小越好;正数=成本)\text{IS(买)}=\text{均价}-P_0\quad(\text{越小越好;正数=成本})
「人话」解释:TWAP 和 VWAP 各什么时候用?

TWAP 最简单——不预测成交量,只要「时间均匀」,适合成交量模式不稳定、或你想最小化信息泄露(每段下等量单)时。VWAP 更聪明——它知道「开盘和收盘成交密集、午间清淡」,于是跟着市场的节奏下大单到量大时段、小单到量小时段,目标是匹配市场成交量加权均价。当成交量模式可预测时,VWAP 通常比 TWAP 更贴近基准、IS 更低。但若日内成交量突变(比如午间突发新闻),VWAP 的预设权重就会失灵。算法是「用对节奏换更低的冲击」。

可运行案例:TWAP vs VWAP vs 开盘一次性

模拟一条日内价格随机游走 + U 型成交量曲线,分别用三种方式执行同一笔买入,比较执行差额(IS,bps)。

import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(1); M = 78            # 78 个 5 分钟段(半天)
t = np.arange(M)
vol_prof = np.exp(-((t - M/2)/(M/4))**2)*0.5 + 0.5  # U 型: 开收盘量大, 午间小
vol_prof /= vol_prof.sum()
price = 100*np.exp(np.cumsum(rng.normal(0, 0.0008, M)))   # 日内随机游走
arrival = price[0]
impact_bps_per_share = 0.5                            # 大单一次性冲击(简化)

twap_avg = price.mean()                               # 等量切分 -> 算术均
vwap_avg = (price*vol_prof).sum()                     # 按成交量加权
naive   = arrival * (1 + impact_bps_per_share*1e-2*20)  # 开盘一次性 + 大冲击

def is_bps(fill): return (fill - arrival)/arrival*1e4
print(f"到达价 = {arrival:.2f}")
print(f"开盘一次性(含冲击) IS = {is_bps(naive):.1f} bps")
print(f"TWAP 均价 IS            = {is_bps(twap_avg):.1f} bps")
print(f"VWAP 均价 IS            = {is_bps(vwap_avg):.1f} bps  ← 最贴近成交量加权基准")

fig, ax = plt.subplots(1, 2, figsize=(11, 3.3))
ax[0].plot(t, price, color='k', lw=1); ax[0].set_title('日内价格'); ax[0].set_xlabel('5分钟段')
ax[1].bar(t, vol_prof, color='steelblue'); ax[1].set_title('U 型成交量分布'); ax[1].set_xlabel('5分钟段')
plt.tight_layout(); plt.show()
print("\n→ 拆单降低冲击; 当成交量可预测时 VWAP 通常优于 TWAP。")

小结

  • 执行算法把母单切成子单,降低价量冲击:TWAP 按时间均分、VWAP 按成交量加权;
  • **执行差额(IS)**衡量成交价相对到达价的偏离,是评估执行质量的金标准;
  • 成交量可预测时 VWAP 占优;不可预测或需隐藏意图时用 TWAP。