TWAP/VWAP 执行模块
大单拆分的执行基础设施:时间加权与成交量加权两大基线,参与率上限与执行质量报告,纯 Python 通过 QMT 下单接口逐笔执行。
策略目标
大单拆分是实盘从"纸面策略"到"真实成交"的最后一公里:一次市价单吃穿盘口,冲击成本直接吞噬回测里不存在的损耗。执行算法的两大基线:TWAP(时间加权,均匀切片)与 VWAP(成交量加权,按历史分时成交量分布切片),学术脉络由执行成本的最优控制研究奠定 [1][2]。站点多个条目都有"冲击成本需评估"的提醒,本模块把提醒变成工程:把母单按时间或量分布切片、限制单笔参与率、输出执行质量报告。QMT 环境说明:拆单逻辑是纯 Python 的时间与量分布计算,通过 QMT 下单接口逐笔执行,无需任何外部依赖——这是站点所有策略在实盘落地的公共基础设施。
数据需求(母单 + 行情)
| 数据 | 字段 | 来源 | 用途 |
|---|---|---|---|
| 母单 | 方向、总量、时限、参与率上限 | 策略层路由 | 拆单输入 |
| 行情 | 分钟行情与历史分时成交量分布 | 行情 | VWAP 切片权重 |
| 参数 | 切片数、缓冲、异常挂起规则 | 配置 | 执行纪律 |
历史分时成交量分布建议用近 20 个交易日的同时段均值;涨跌停、停牌、流动性枯竭的异常处理规则必须在母单接入前登记。
切片规则与执行质量
TWAP:每片数量 = 总量 / 切片数,均匀下发。
VWAP:每片数量 历史同时段成交量占比,总时间跨度与母单时限对齐。
参与率约束:单片数量不超过当期成交量的 %(默认 10%,参数化)。执行质量:实施差额 ,分解为延迟、冲击与未完成机会成本。
执行规则
母单接入:站点各策略的调仓单可路由至本模块(策略层只产生目标持仓,执行细节统一处理)。执行质量台账:每笔母单的 IS 及其分解,按标的流动性分层。异常处理:标的进入涨跌停、停牌或流动性低于门槛时挂起剩余量并告警,收盘前强制收尾规则参数化。
风险与失效场景
- VWAP 基准失真:历史分时分布遇到放量日或缩量日,切片节奏与真实流动性错配;
- 趋势中的 TWAP 逆行:均匀拆单在单边行情里越买越贵,延迟成本是 TWAP 的固有代价;
- 冲击的自我实现:参与率过高时自己的单子推高后续切片的成本;
- 涨跌停挂起:极端日剩余量无法完成,收盘强制收尾可能制造额外冲击;
- 碎单佣金:切片过细时佣金占比反噬执行收益;
- 回测与实盘差:回测的成交假设天然乐观,执行质量台账必须以实盘为准。
验证状态
待验证。需要完成:TWAP、VWAP 与一次性市价单的 IS 对照;参与率上限敏感性;分时分布窗口敏感性;涨跌停挂起规则的触发频率统计;实盘执行与回测假设的差异量化。本文不提供任何未实测的收益或回撤数字。
参考文献与延伸
[1] Bertsimas, D., & Lo, A. W. (1998). Optimal Control of Execution Costs. Journal of Financial Markets, 1(1).(执行成本最优控制的奠基工作)
[2] Almgren, R., & Chriss, N. (2000). Optimal Execution of Portfolio Transactions. The Journal of Risk, 3(2).(执行算法的经典框架)
[3] Q-Code 量化策略工作台
策略逻辑结构
- 母单与行情数据 — 方向、总量、分时分布
- 切片计算 — TWAP 均匀 / VWAP 量分布
- 参与率约束 — 单片成交占比上限
- 异常挂起 — 涨跌停、停牌、枯竭处理
- 逐笔执行 — QMT 下单接口路由
- 执行质量台账 — IS 分解与分层报告
