TCA(Transaction Cost Analysis)是执行质量的「审计闭环」:**Pre-trade 回答「这单预计花多少、值不值」,Post-trade 回答「实际花了多少、花在哪」。**没有 TCA 的执行是盲飞——你可能年复一年地为某个固定的执行坏习惯付 2% 的年化。
成本基准:先定义「应该是多少」
评价执行必须先选参照价,不同基准回答不同问题:
| 基准 | 定义 | 回答的问题 |
|---|---|---|
| 决策价(Arrival) | 信号生成时的价格 | 信号到成交损失了多少 alpha(策略视角最重要) |
| 当日 VWAP | 当日成交量加权均价 | 相对市场的执行水平(执行算法的 KPI) |
| 开盘价 / 前收 | 时点价 | 特定执行窗口的表现 |
| Implementation Shortfall | 决策价 → 成交均价全差额 | 总执行成本(含价差+冲击+延时) |
**Implementation Shortfall(实现差额)**是总账口径:IS = (成交均价 − 决策价)/决策价 × 方向。Perold (1988) 的原始框架把它定义为「纸面组合收益 vs 实际组合收益之差」——一切执行损耗的总和。它也是压力测试与容量估算的成本口径(见交易成本
)。
基准选择的陷阱:用 VWAP 当基准的执行团队,永远可以通过「在成交清淡的时段慢慢磨」获得漂亮的 VWAP 达成率,同时把决策价口径的损耗做得一塌糊涂(拖执行期间行情跑了)——基准即激励,选错基准就是选错了被优化的东西。策略绩效归因永远看决策价口径。
Pre-trade Analysis:下单前的三问
- 成本预测:该单在该票的预期成本(半价差 + 冲击模型
k·σ√(Q/ADV)+ 预计延时损耗)——阈值化的应用:预测成本 > 信号预期 alpha 的 50% → 降低该单优先级或放弃。有的交易不值得做——这是 pre-trade 最有价值的输出,一个算例:调仓要买某中盘股 200 万(ADV 8000 万),半价差 5bp、冲击 ≈ 0.8×2%×√0.025 ≈ 25bp、延时预估 5bp → 总成本 ≈ 35bp;信号预期 3 日 alpha 45bp → 50bp 阈值边缘,降级为「限价单耐心挂」或分两日执行; - 可行性检查:参与率约束(Q ≤ 8% × ADV)、流动性窗口(该票的可执行时段)、涨跌停距离(距跌停 < 1% 的卖单要有预案);
- 执行计划生成:时间表(VWAP 轨迹)、单型(被动/主动混合)、隐蔽参数——把 Almgren-Chriss 的风险厌恶系数按信号衰减设定(见执行算法 )。
机构场景里 pre-trade 是每单必做的自动步骤;个人量化的最小版本是一张「成本预警表」——调仓前扫描所有订单,标红预测成本 > 30bp 的单子人工过目。
Post-trade Analysis:执行质量的解剖
成交回报落地后,把 IS 分解为四个成分(每成分对应一个责任主体):
| |
分解的用途是责任分离:延时成本大 → 优化信号到下单的链路(毫秒级工程,见低延迟 );冲击大 → 拆更细/换 POV;错时大 → 复核时间表与运气(统计而非单笔归因)。单笔的分解是噪声,要按票/按日/按执行参数聚合——「VWAP 算法在中小市值票上 IS 平均 18bp、TWAP 26bp」这种聚合结论才能指导参数。
TCA 的两个战略用途
- 校准回测的成本模型:用自己的成交流水回归冲击系数 k 与价差模型参数(见交易成本 的校准方法)——回测成本模型与实盘 TCA 用同一套参数,回测的执行假设才与真实一致。这是「回测 vs 实盘偏差」归因的关键一环(偏差诊断见事后风控 );
- 执行的持续改进飞轮:月度 TCA 报告 → 找出 IS 最差的 10% 订单的共同特征(时段?票的流动性档位?算法参数?)→ 修正执行规则 → 下月验证——执行优化的复利被普遍低估:年化省 0.5% 的执行成本,对夏普 1.5 的组合等价于免费提升 0.1 夏普。
个人量化的最小 TCA
不需要机构级系统,三张表起步:
- 成交流水表:每笔记录
时间、代码、方向、决策价、挂单价、成交均价、量、算法标签——两列多打(决策价与成交均价)就是 TCA 的全部原材料; - 月度聚合:按票流动性档位、按时段、按算法的 IS 均值与分布;
- 例外清单:IS > 阈值(如 50bp)的订单逐笔回查——通常能发现一两个固定的坏习惯(比如「尾盘急着完成剩余量总是吃对手价」)。
半天的 Notebook 工程,把「执行」从感觉变成数字(日志基础见日志与监控 )。
关联阅读:分解对象的物理机制订单簿 与Bid-Ask Spread ;成本进入回测回测框架设计 。