上海陆家嘴一家头部量化私募的执行部门,资深交易员主持晨会。策略:中证500 + 中证1000 小盘股统计套利,纸面 Sharpe 2.2,毛 AUM RMB 20 亿,年化换手 1000%。L1 显性成本建模规范:ETF 端 ~8 bp round-trip,单只小盘股端 ~12 bp。投资经理推动上线。交易员调出昨日 TCA 报告。中证1000 单只股票 fills 的实施差额 (IS) 平均值:47 bp。交易员立即把上线暂停,问一个问题:「你用的冲击模型是什么?平方根还是线性?Y 取多少?前置 Q/V 估算用什么模型?」投资经理答不上来——回测用的是「不论订单大小,平均 5 bp」这种平铺式滑点假设。假设滑点 5 bp 与实际 IS 47 bp 之间的 42 bp 差距——这就是 L1 条目漏掉的隐性成本。本课教成本建模的概念核心:实施差额作为综合结果指标、临时-加-永久 冲击拆解、平方根 (经验) 和线性 (分析) 两种函数形式构成的实务工具包。
经验对照
L1 的条目成本与订单规模相对 ADV 的比例无关。在大盘股 ETF 上 1 千元和 1 亿元每元监管费、每元佣金、每股 TAF 都相同。市场冲击恰恰相反——交易 0.01% ADV 冲击成本几乎为零,10% ADV 50-200 bp,30% ADV 200-500 bp。隐性 成本 (implicit transaction cost)——不出现在交易回单上、但出现在到达价与实际成交均价之差里的成本部分——对任何超过 ~0.5% ADV 的订单都是机构交易的主导。L1 的 bid-ask spread (买卖价差) 仍然贡献——它现在是下面四向 IS 拆解的一项。
实施差额框架
Perold 1988("The Implementation Shortfall: Paper Versus Reality",Journal of Portfolio Management 14(3))把 IS 定义为纸面组合收益与实际组合收益的差。买入 股的单笔交易:
其中 是成交量加权平均成交价, 是交易决策到达瞬间的价(通常是决策时点的中价)。正 bp = 买方成本;负 = 改善。卖单翻号。标准引用:Perold 1988 'The Implementation Shortfall: Paper Versus Reality'。
IS 是每一个可信 TCA 系统的标准结果指标。Inline-code 列表:拆解为四个可加分量——按此严格顺序:
1. spread cost — 半 价差 每笔 穿越 (来自 L1)
2. temporary impact — 价格 反向 移动;停止 交易 后 反转
3. permanent impact — 价格 反向 移动;不 反转
4. opportunity cost / timing risk — 订单 执行 期间 价格 漂移
法则:临时 = 反转部分;永久 = 非反转部分;反转在交易后 5min / 30min / 1day 横向上测量。订单完成后 T 分钟 / 小时 / 天,测量价格。冲击的反转部分是临时分量;非反转部分是永久分量。标准实务横向:5min、30min、1day。典型大盘股订单显示 ~2/3 冲击在 30 分钟内反转、~1/3 在 1 天后仍存。临时冲击付给订单簿;永久冲击付给从你的流推断信息的其他知情交易者;机会成本以肥尾形式出现,不在均值里。
平方根法则
经验主力公式。来自几十年买方 TCA 数据加上学术研究(Almgren et al 2005、Lillo-Farmer-Mantegna 2003、Bouchaud-Farmer-Lillo 2018)收敛到一个经验规律。对于 0.01% 到 ~30% ADV 范围内的订单,bp 计冲击随订单规模相对 ADV 的平方根线性变化。
其中 是日收益波动率 (bp 计), 是订单规模 (股数), 是 ADV (股数), 是股票特定常数,典型范围 0.3-1.5。有效范围:0.01% ≤ Q/V ≤ 30%。 依赖板块、方向、时段、流动性 regime。多数实务者每股每季度用一个 。
经验依据:(i) Donier-Bonart-Bouchaud 的潜在订单簿模型;(ii) Bouchaud-Gefen-Potters 的传播子模型;(iii) Kyle 1985 信息不对称扩展。
有效范围限制。低于 0.01% 价差和噪声底主导。高于 30% 冲击变超线性。Q/V > 100% 模型不适用,需要 multi-day 切单。
线性冲击替代
Almgren-Chriss 2000 成本模型推导 (L3) 用线性拆解:
其中 是临时冲击系数 (单位:bps × time), 是永久冲击系数 (单位:bps), 是总执行时长。 项是临时冲击; 项是永久冲击。
线性的用处:让 Almgren-Chriss 分析上可解——闭式解。线性模型经验上是错的(真实冲击次线性)。实务调和法则:在回测和 TCA 里用平方根做成本估计;只在优化推导里用线性。线性 AC 模型的定性结论——前置加权计划——在冲击函数形式变化下稳健;精确计划不稳健。
Fenced Python 代码
4.5.1 撮合模拟器暴露 compute_impact(order, bar, params):
import numpy as np
# implicit-cost decomposition — square-root model headline; linear for AC compatibility
def compute_impact(order, bar, params):
"""L2 冲击:平方根 主力 + 线性 AC 兼容"""
Q = order["shares"]
V = bar["adv"]
sigma = bar["daily_sigma_bp"]
Y = params["Y"]
qv = Q / V
impact_sqrt = Y * sigma * np.sqrt(qv)
temporary_impact_bp = (2.0 / 3.0) * impact_sqrt
permanent_impact_bp = (1.0 / 3.0) * impact_sqrt
T = params.get("T", 1.0)
opportunity_cost_bp = sigma * np.sqrt(T) * params.get("timing_risk_mult", 0.1)
total_impact_bp_linear = params["eta"] * qv / T + params["gamma"] * qv
return {
"temporary_impact_bp": temporary_impact_bp,
"permanent_impact_bp": permanent_impact_bp,
"opportunity_cost_bp": opportunity_cost_bp,
"total_impact_bp": impact_sqrt,
"total_impact_bp_linear": total_impact_bp_linear,
}
Two (两个) 冲击计算算例(Markdown 表)
把平方根法则套到两个基准情形:
| case | ticker | shares Q | ADV V | Q/V | σ | predicted impact | decision |
|---|---|---|---|---|---|---|---|
| (a) | 600519 贵州茅台 single-name | 200,000 | 500,000 | 40% | 250 bp | 0.8 × 250 × sqrt(0.4) ≈ 126 bp | must slice across days |
| (b) | 510300 沪深300 ETF | 200,000 | 10M | 2% | 150 bp | 0.6 × 150 × sqrt(0.02) ≈ 13 bp | one-bar OK with VWAP |
情形 (a):CN A 股买入 200,000 股 600519 贵州茅台,当日 ADV 500,000 股 (Q/V = 40%),日波动 = 250 bp,。平方根预测: bp。订单必须切到多天——按 5 天每天 8% 参与,每日 Q/V = 8%,每日冲击 ~57 bp。
情形 (b):买入 200,000 股 510300 沪深300 ETF,ADV ~10M (Q/V ~2%), = 150 bp,。平方根预测 ~13 bp。可用 VWAP 在单日完成。
Inline-code 列表:参与率决策规则
生产端执行台用的 Q/V 阈值桶。这些规则钉在明汯、幻方、灵均、衍复的每个交易员屏幕上。
1. Q/V ≤ 0.5% — trade aggressively in one bar; impact ≤ 5 bp
2. 0.5% < Q/V ≤ 5% — trade across the day with VWAP / participation algorithm (4.5.3)
3. 5% < Q/V ≤ 30% — trade across one day with explicit Almgren-Chriss schedule (4.5.3);
flag to risk if Q/V > 15%
4. Q/V > 30% — trade over multiple days; flag in advance to risk; consider OTC block trade
跨引用——VWAP、Almgren-Chriss、OTC block——锚定到 L3 (AC 推导) 和 4.5.3 (算法目录)。风控参与:单只股票 Q/V > 15% 的单日交易要求合规 + 风控预批。
撮合模拟器集成实务
Q/V 必须用前置日成交量估计——用 20 日中位数。日 同样必须是前置估计。 必须每季度从 TCA 数据重新拟合——跨 regime 切换不刷新 是最常见的冲击建模错误。CN 端特殊微结构:A 股单只股票通常 偏高 (0.6-1.5),因为有效价差更宽 + 订单簿深度较浅 + 10% 日内涨跌停机制压缩极端波动。10% / 20% 涨跌停 (ST 5%) 作为单 session 永久冲击实现的上限——一旦名字撞到 涨停 / 跌停,订单簿锁定到下一 session;这把冲击分布从上面截断。CN T+1 结算约束意味着 session 内开仓的交易只能在下一 session 平仓。
容量预告
隐性成本是策略容量真正住的地方。AUM 翻倍冲击乘 倍。中证500 指数增强类策略容量典型 RMB 50-200 亿;中证1000 单只股票统计套利容量 RMB 5-20 亿。2020-2022 年间中证500 指数增强 + 量化私募指数容量塌方就是典型 CN 容量案例。
Formula Explorer
\text{impact}_{bp} = Y \cdot \sigma \cdot \sqrt{Q/V}冲击的平方根法则。 在 0.3-1.5 范围、 日 bp、 参与比例。
练习
Exercise
你在 600519 贵州茅台上做 1 日执行规划。用 square-root law ,取 。做四个计算并报告。
(i) Q/V = 1%、 = 200 bp 时,计算预测冲击 bp;说明落入哪个 participation-rate decision-rule 桶。
(ii) 同 (i) 但 Q/V = 10%;说明落入哪个桶;说明是否需要跨日执行。
(iii) 对 (i) 和 (ii),假设 2/3 临时 + 1/3 永久 比例,给出交易后反转拆分:分别报告临时 + 永久 bp 分量。
(iv) 对情形 (ii),假设到达价 100.00、平均成交价 100.85 (买方正号约定),计算实施差额;指出 IS 拆解里哪一项主导。
把所有四个答案放在一张表里。
提示
0.5% < Q/V ≤ 5%。(ii): bp;桶 5% < Q/V ≤ 30%。提示
实务对照:更深一层
CN 端 TCA 实务再看几个细节。一是 forward 估计的来源:日成交量预测在头部私募里通常用「过去 20 日中位数 + 周内日历效应调整 + 上一日实盘成交量加权」的组合特征,简单的 trailing average 在月初、节后会偏。二是 的稳定性:流动性好的核心宽基 ETF (510300、510500、510050、159915 等) 的 在不同 regime 下相对稳定,而中证1000、中证 全指 small-cap 的 在 2020 抱团时低、2022 流动性枯竭时高,跨度可达 1.5-2 倍——这就是为什么每季度的 刷新一定要走 sector 桶而不是单标的拟合。三是 临时 / 永久 比例:A 股 由于 T+1 结算 + 涨跌停 截断 + 散户 主导 的微结构,反转通常比 US 大盘股更慢更小——经验上 2/3 临时 + 1/3 永久 的 split 在 A 股 不一定 适用;高频实盘 TCA 显示某些名字的反转比例更接近 1/2 临时 + 1/2 永久。四是 隐性 成本 的 一部分 在 CN 端 来自 bid-ask spread (买卖价差) 的有效价差超出,是 L1 的延伸——把 实务 中 的 总 transaction cost (交易成本) 拆 成 显性 部分 (L1 的 报价 半 价差 + 监管 + 印花税) 和 隐性 部分 (L2 的 超额 滑点 + 临时 冲击 + 永久 冲击 + 时间 风险),会计层把两边都扣到 PnL。
衔接 L3
隐性成本规模相关且随机;你用 、、ADV 参数化成本函数。L2 给了你平方根法则作为成本估计的真理,给了你线性冲击作为优化可解的形式。L3 在线性拆解上推导 Almgren-Chriss 最优执行计划——给定冲击 vs 时间风险的权衡,固定时窗内分析上最优的交易计划是什么?L3 推出的闭式 cosh 轨迹是应用 quant 金融里少见的干净分析解;它是每一个主要买方和卖方交易台执行管理系统的通用语言。定性答案:前置加权计划以平衡冲击与时间风险。精确答案来自把均值-方差目标函数对计划求偏导设为零;你会在 L3 里手算这一步,并把闭式 cosh 计划与 TWAP 的形状对比,理解为什么风险厌恶程度的提高把交易计划向时窗起点推。L3 之后到 L4,把 L1+L2+L3 的成本栈整合到 4.5.1 五层引擎里,得到 成本感知 Sharpe 和 容量 两个上线评审的头条数字。
已涵盖组件
- Inline-code listing of the FOUR IS 分量。
implementation shortfallKaTeX 块,含Perold 1988引用。square-root lawKaTeX 块,含有效范围。linear impact拆解 KaTeX 块。- Fenced Python
compute_impact(order, bar, params)。 - Two (两个) 冲击算例 Markdown 表。
- Inline-code listing of the FOUR 参与率决策规则。
- FormulaExplorer——平方根法则。
- Exercise——
600519上 、 bp 在 Q/V = 1% 和 10% 两档的四个子任务。 - Two 递进 Hint。