1. 课程导入与排障框架
交易执行成本估计,是在下单之前或成交之后,对一笔交易从决策价到最终成交价之间所付出的全部代价做出量化判断的过程。它回答的不是“这笔交易赚不赚钱”,而是“为了完成这笔交易,我额外付出了多少”。在实盘与回测中,这个数字直接决定了策略净收益的可信度:如果成本估计偏低,一个看似夏普比率 2.0 的高频策略,扣掉真实成本后可能只剩 0.3;如果估计偏高,又会误杀本可盈利的中低频策略。因此,排障的第一课不是学某个公式,而是建立“成本由哪些部分构成、偏差从哪来、按什么顺序定位”的整体框架。
成本的四层构成
把执行成本拆开看,通常包含四个层次,它们量级不同、可观测性也不同。第一层是显性费用,包括佣金、交易所规费、印花税(A 股卖出单边)、过户费等,这部分由费率表决定,几乎不存在估计误差,排障时通常只需核对费率版本与最低收费规则。第二层是买卖价差成本,即被动成交时付出半个价差、主动成交时跨越整个价差的代价,它取决于盘口深度与下单方式。第三层是市场冲击成本,大单吃穿多档盘口导致的价格滑移,与下单量占 ADV(日均成交量)的比例强相关,是估计误差的主要来源。第四层是择时与延迟成本,从信号生成到订单到达交易所之间的价格漂移,在高波动时段可能超过前三层之和。
这四层的可观测性依次递减:费用可以精确复算,价差可以从盘口快照还原,冲击只能靠模型近似,延迟则依赖时间戳对齐质量。排障时若把四层混在一起看总成本,往往无法定位问题;正确做法是先分层归因,再逐层比对“估计值”与“可实现基准”。
常见故障的五类分型
在 30 个案例中,故障会反复落在五类上,提前建立分型意识能显著缩短定位时间。第一类是参数与配置错误:费率表用了旧版本、最低佣金 5 元未生效、印花税方向搞反、冲击模型系数单位是 bp 还是百分比混淆。这类问题表现为成本整体偏移一个固定比例或固定金额,用分组统计很容易看出。第二类是数据质量问题:盘口快照缺失、时间戳时区不一致、成交价含复权处理、停牌日被当作零成交。它们往往造成个别标的或个别时段的异常值,需要用分布尾部去筛。
第三类是模型设定偏差:冲击模型假设线性而实际在大单时呈平方根关系、用日频 ADV 代替分钟级流动性、把限价单全部当作被动成交。这类问题最隐蔽,因为单笔看都“合理”,只有把估计成本与实际成交做回归,才会发现斜率系统性偏离。第四类是执行逻辑缺陷:拆单算法把大单一次性发出、订单价格取错参考价、撤单重发导致重复计费。第五类是度量口径不一致:估计端用 VWAP 基准,实际端用到达价基准,两边基准不同却直接相减,必然对不上。排障时先问“两边口径是否一致”,往往能省掉大量无效排查。
排障流程与工具链
推荐的排障顺序遵循“先确定性、后概率性”的原则。第一步做口径对齐:确认估计值与实际值使用同一基准价、同一时间窗口、同一费用口径,把不可比因素先剔除。第二步做分层复算:用费率表重算显性费用,用盘口快照重算价差成本,得到两个“可精确复算”的分项,与估计值逐笔比对。第三步做残差分析:总偏差减去前两层后剩下的部分,才是冲击与延迟的合并残差,再按下单量分桶、按波动率分桶观察残差是否随某个变量单调变化。第四步做假设检验:对可疑参数做敏感性扫描,例如把冲击系数上下调 20%,看估计成本能否覆盖实际成交的 90% 分位。
工具链上,最小可用组合是:行情与盘口快照库(用于还原价差与基准价)、订单与成交流水(含发送、到达、成交三类时间戳)、费率配置表(带版本号)、以及一个能按标的/时段/下单量分桶的归因脚本。归因脚本的输出建议固定为一张分层表,字段包括:标的、日期、下单量占 ADV 比例、估计总成本(bp)、实际总成本(bp)、费用差、价差差、残差。这张表就是后续 29 个案例共用的“诊断底稿”。
举个教学示例(参数为合理假设,非实测):某标的估计总成本 12 bp,实际成交复算 19 bp,偏差 7 bp。分层复算发现费用端一致(差 0.1 bp),价差端估计用买一卖一中价、实际按主动成交跨价,修正后价差差 2.5 bp;剩余残差 4.4 bp,按下单量分桶后发现仅当单笔超过 8% ADV 时残差才显著放大,指向冲击模型的线性假设在大单区间失效。这个例子说明:偏差不是“一个数”,而是可以被拆开、被定位、被逐层解释的。掌握这套拆解方式,后面的具体案例才有落点。