Implementation Shortfall:Perold 对执行成本的基础度量
执行成本到底该拿什么当尺子?Perold 的答案是决策那一刻的价格。这篇讲 implementation shortfall 的数学、成分分解、它和 VWAP 的根本分歧,以及一个算到底的数值例子。
如果你一辈子只学一个执行度量,就学 implementation shortfall(IS)。其他每个基准——VWAP、TWAP、收盘价——都是代理。IS 才是真东西。
这个判断背后有一个更根本的问题:你说一笔交易”花了多少钱”,到底是相对什么价格说的?选哪个价格当尺子,不是技术细节,它决定了你在度量什么。André Perold 在 1988 年给出的答案是:决策那一刻的价格。理由等下就清楚了。这个定义到今天仍然是交易成本的标准度量——Harris 在《Trading and Exchanges》第 21 章里讨论它,Berkowitz, Logue, Noser (1988) 给了第一批经验估计,你以后读到的每一份机构 TCA 报告都在用它的某种形式。
基本想法
假设你决定上午 10:00 买 10000 股苹果,当时价 $100.00。等到你的单完全成交(比如说在接下来 4 小时里),平均成交价是 $100.20,收盘价是 $100.30。
这笔交易总共花了你多少?
天真的答案:每股 $0.20,因为你付了 $100.20 而不是 $100.00。
但这不太对,或者说对得太粗糙。即便你 10:00 就能瞬间全部成交(不可能——你会顶着卖价把点差付掉),价格也照样会在收盘前动到 $100.30。所以那 $0.20 里有一部分只是市场在你执行期间自己动了,不是你的错。天真答案把”你造成的成本”和”市场恰好在动”混在一起了。
Perold 的定义把账算清楚:
IS = 实际成交相对决策那一刻价格的成本。
决策是上午 10:00、价格 $100.00(决策价),你实际成交平均 $100.20,你的 IS 就是每股 $0.20。注意这个数**同时**包含你付的点差和执行期间的价格变动——包括那些因为市场整体新闻、跟你的交易毫无关系的变动。你可能会问:市场自己动的部分凭什么算我头上?答案是:你在 $100.00 识别出了 alpha 并决定交易,最终你拿到的却是 $100.20 的仓位。从组合的角度看,中间丢掉的每一个 bp 都是真实的,不管是谁造成的。决策价捕捉的正是你当初想抓的那个 alpha,所以它是唯一诚实的基准——这就是 Perold 的洞见。执行期间的平均价、当天的 VWAP,都会把这笔账藏起来一部分。
当然,“总共丢了多少”和”分别是谁丢的”是两个问题。IS 先把总数钉死,然后再做归因。
把 IS 拆开
总 IS 可以分解成四个成分。第一个是点差成本:成交价与成交那一刻中间价之差,这是你为即时性付给 dealer 的部分。第二个是市场冲击成本:成交时中间价相对决策时中间价里由你自己的交易推动的那部分。第三个是时机成本(也叫 alpha 衰减成本):执行期间中间价相对决策价的漂移中不是你造成的那部分——市场自己走的。第四个是机会成本:订单没做完的代价。你打算买 10000 股只成交了 8000,那没成交的 2000 股也有它自己的账,等下单独算。
前三项覆盖已成交的部分。对一笔完全成交的买单,设 为决策价、 为各笔成交价、 为各笔成交时的中间价、 为第 笔成交量,每股 IS 写成:
(原始文献里这条式子常被写得省略归一化;两个求和都要除以总成交量,否则量纲对不上。)第一个括号抓的是”成交价高出中间价多少”,第二个抓的是”中间价从决策价漂了多少”——后者混着市场漂移和你自己的冲击,要再往下拆需要一个冲击模型,这一点在后面的数值例子里会具体看到。卖出方向全部反号。
决策价、到达价、下单价
上面一直说”决策那一刻”,但决策实际是什么时候发生的?这里有三个候选,实践里经常被混用:
决策价()是组合经理决定买卖那一刻的价格——“真正的”基准,alpha 被识别的那个价位。到达价()是订单到达交易 desk 那一刻的价格,因为通讯有延迟,它可能跟决策价不一样。下单价()则是父单交给 broker 那一刻的价格。
对一个 9:30 做决定、单子 9:35 才到交易员手里的长仓基金, 是 9:30 的价, 是 9:35 的价。如果开盘波动让价格在那 5 分钟里动了 5 bp,这 5 bp 是交易员无论如何避免不了的成本——但它确实是基金付出的成本,应该算进 IS。
实践中多数 TCA 报告用到达价做基准,原因很实际:决策时刻的数据难抓。这背后有个隐式假设——决策价 ≈ 到达价。对慢速的基本面策略这大致成立;对快速变动的策略,这假设会系统性地低估成本。做 TCA 时先问清楚报告用的是哪个价,比看数字本身更重要。顺带一句:算错决策时刻是 IS 实操里最常见的错误——基准要锚到实际决策那一刻,不是你事后记得的时候。
数字长什么样
一只美股大盘股的典型 IS 报告:决策价 $100.00,平均成交 $100.18,总 IS 每股 $0.18,即 18 bp。分解开来,点差成本 1 bp(平均付了半个点差)、市场冲击 8 bp(你的交易推动了价格)、时机成本 9 bp(执行期间价格漂移)。
值得停一下看这组数:你的”真实”成本是 18 bp,尽管点差只有 1 bp。只盯着点差看执行质量的人,会把成本低估一个数量级。而且三个成分里最大的一块(9 bp)是市场漂移——你控制不了它的方向,但你能控制暴露在它面前的时间长短。
对一个更小、更不流动的名字,同样的分解可能给出:点差 5 bp、冲击 30 bp、时机 15 bp,总共 50 bp。$1M 的交易上 50 bp 就是 $5000。不小。
IS vs VWAP:分歧在哪
VWAP 是 IS 最常见的替代品,所以值得正面比一次。IS 度量相对决策价的成本;VWAP 度量相对当日成交量加权平均价的成本。这俩度量的不是同一个东西:
| 维度 | IS | VWAP |
|---|---|---|
| 基准 | 决策价 | 当日 VWAP |
| 它度量什么 | 交易成本 | 相对平均参与方的成本 |
| 算法能作弊? | 不能(基准固定) | 能(跟其他算法羊群) |
| 最适合 | alpha 驱动的交易 | 被动流量 |
| 标准在 | 对冲基金 | 长仓基金 |
关键分歧在”能不能作弊”这一行。VWAP 基准是被当天所有交易(包括你自己的)共同决定的,一个 VWAP 算法只要跟着大流走就能”跑赢 VWAP”,而这跟你有没有省到钱是两回事。一个具体的陷阱:假设你日内以 VWAP − 5 bp 买入(付得略低于 VWAP)。当日开盘 99 到 $101 区间波动,收盘 $101.50。你的平均成交比如说 $100.20,而决策价是开盘的 $100.00。那么 IS 是 20 bp——你”跑赢 VWAP” 5 bp,同时跑输 IS 20 bp。
原因不神秘:你没抓到当天的价格上涨。你摊在全天的平均价上成交,而不是把量前置。纯 IS 视角会说:你应该在 $100.00 附近就买进大部分,接受更高的冲击,把价格涨到 $101.50 的 alpha 抓在手里。VWAP 视角对此完全无感——这正是 alpha 驱动的交易不该用 VWAP 考核的原因。
Perold 的原始框架
回到 1988 年的原始表述。Perold 把 IS 写成一个账面与现实的对照:
账面回报是假想你能在决策价瞬间、零成本成交时组合会赚到的回报;实际回报是组合真实赚到的,含全部执行成本和机会成本。账面高出实际的部分,就是你的 IS 损失。这个表述的好处是天然完备:任何形式的执行摩擦——已成交部分的价差与冲击、决策到开始执行之间的延迟、没成交部分错过的行情——都会自动落在账面与实际的差里,一个都藏不住。Perold 用这个框架指出,换手频繁的主动管理组合,一年下来 IS 可以累积到组合回报的百分之几——具体数字随换手率和市场而变,但量级足以吃掉很多策略账面上的超额收益;交易不频繁的长仓共同基金则低得多。
现代算法:一条公式加一笔机会成本
现代 TCA 里的标准公式是 Perold 框架的直接操作化:
sign 买入取 +1、卖出取 −1。这样约定之后,IS > 0 永远表示成本:买入时是你付得比决策价多,卖出时是你收得比决策价少。报告里符号习惯一旦定了就别换——买卖混用符号是 TCA 报告里第二常见的错误。
乘以父单规模得到美元 IS:
部分成交时按成交量加权。但只对已成交部分算 IS 是不够的——没成交的部分有自己的账。你决定买 10000 股,最后只买到 8000(也许因为价格跑了),那 2000 股的机会成本是:
买入而价格往上跑,机会成本为正(你丢了那段行情);卖出而价格往下跑,同样为正。具体算一笔:你以平均 $100.20 买了 8000 股,错过的 2000 股按收盘价 $100.50 记账,那么已成交部分 8000 × (100.00) = $1600,错过部分 2000 × ($100.50 − 1000,总 IS $2600——对应全部 10000 股是 26 bp。错过的两成股数贡献了近四成的总成本。
这笔账解释了执行算法的核心权衡:激进成交,冲击高但机会成本低;被动成交,冲击低但机会成本高。一个成交率只有 50% 的策略,光看已成交部分的 IS 会显得很漂亮——机会成本全被藏起来了。所以规矩是:永远对全部父单算 IS,包括未成交部分。至于这个权衡怎么解到最优,Almgren-Chriss(第 9 篇)给了正式框架。
一个算到底的数值例子
假设你决定上午 10:00 以 $410.00 买 50000 股 MSFT。你的算法在 90 分钟内执行:
| 时间 | 股数 | 成交价 | 成交时中间价 |
|---|---|---|---|
| 10:05 | 5,000 | $410.10 | $410.08 |
| 10:15 | 5,000 | $410.15 | $410.12 |
| 10:30 | 10,000 | $410.20 | $410.18 |
| 10:50 | 15,000 | $410.35 | $410.32 |
| 11:00 | 15,000 | $410.50 | $410.48 |
成交量加权平均成交价是 $410.32。总 IS 直接可得:($410.32 − 410.00 = +7.8 bp。
分解按前面那条公式走。点差成本是各笔”成交价 − 中间价”的量加权平均:(0.02×5000 + 0.03×5000 + 0.02×10000 + 0.03×15000 + 0.02×15000) / 50000 = $0.024 每股,除以 $410 约合 0.6 bp。剩下的部分是中间价漂移:量加权平均中间价约 $410.296,相对决策价 $410.00 漂了 $0.296,约合 7.2 bp。两块加起来 0.6 + 7.2 = 7.8 bp,和总 IS 严丝合缝——这个自洽是应该的,因为分解只是把同一个差价换了个切法。
难的一步在最后:那 7.2 bp 的漂移里,多少是你自己的冲击、多少是市场本来就要走的?这没法从成交记录里直接读出来——你需要把实际价格路径跟”没有你交易时会观察到的路径”比。回测里反事实路径是现成的;实盘里只能靠冲击模型估。假如模型说冲击是 4 bp,那时机成本就是剩下的 3.2 bp。点差和总数是硬数字,冲击和时机的分界线是模型给的——读 TCA 报告时记住这条区别。
不同策略的 IS 长得完全不一样
| 策略 | 典型 IS(bp) | 备注 |
|---|---|---|
| 高频做市 | 1–5 | 快速反转头寸 |
| 股票统计套利 | 5–15 | 快,alpha 丰富信号 |
| 多空股票 | 15–30 | 信号慢,订单大 |
| 长仓基本面 | 30–100 | 不太急,规模大 |
| 养老金再平衡 | 50–200 | 体量大,紧急度低 |
| 指数纳入 / 再平衡 | 100–500 | 强制交易,规模很大 |
这张表有个乍看反直觉的规律:alpha 信号越强,IS 反而越低。原因是强信号的交易员真的在乎每个 bp——他们愿意付更高的冲击换更快的成交,因为 alpha 明摆着超过成本。一家信号强的对冲基金 IS 可能 10 bp,其中 8 bp 是主动付出去的冲击。信号弱或者没信号的养老金反过来:慢慢成交省冲击,把机会成本吃满,IS 落在 50 bp 往上。
这也意味着 IS 数字绝不能跨策略比。30 bp 对高频策略是灾难,对长仓策略是好成绩。同理,波动大的市况下 IS 天然更高,跨时期比较要按波动率归一化。IS 是策略内部、同类市况下的度量。
IS 前沿
上面反复出现的”快 vs 慢”权衡可以画成一条前沿,跟 Almgren-Chriss 的均值-方差前沿是一个思路。对一笔给定父单,改变执行速度,得到(期望 IS,IS 方差)平面上的一条曲线:快速执行(比如 30 分钟)落在高冲击、低方差、低机会成本的一端;慢速执行(比如全天)落在低冲击、高方差、高机会成本的一端。前沿是凸的,你按自己的 alpha 强度和风险容忍度在上面挑一个点。Harris 第 21 章有概念图,Almgren-Chriss(第 9 篇)是正式版本。
Arithmion 中的实现
arithmion.tca.ImplementationShortfall 算总 IS(bp 和美元)、成分分解(点差、冲击、时机、机会)、逐笔归因、相对 VWAP/TWAP/收盘价等基准的对比,以及滑点分析。样例报告:
Implementation Shortfall 报告
═══════════════════════════════════════════
订单: 买 100,000 AAPL
决策时间: 2025-06-15 09:30:00
决策价: $182.45
已成交: 100,000 股
平均成交价: $182.78
总 IS: +18 bp ($33,000)
成分分解:
点差成本: +2 bp
市场冲击: +10 bp
时机成本: +6 bp
机会成本: 0 bp
基准比较:
vs 到达价: +18 bp
vs VWAP: +11 bp
vs 收盘价: -8 bp(比收盘好 8 bp)
Arithmion 也能生成周期汇总(每日、每月等)做绩效审查。如果你在 Arithmion 里回测执行算法,IS 就是主度量:回测报告应该看每个父单的平均 IS、IS 标准差、成分分解、按情景(波动率、时段)切片,以及跟 Almgren-Chriss 最优的对比。最后这项是个很好的体检:如果你回测出的 IS 显著好于 Almgren-Chriss 的理论最优,你的模型错了——要么假设不现实,要么你偷用了实时拿不到的信息。
何时 IS 不是对的尺子
IS 的立足点是”决策那一刻存在一个 alpha 价格”。这个前提不成立时,IS 就不是对的度量。被动指数基金的再平衡交易没有 alpha 决策,IS 会很高但不可避免——用相对指数的跟踪误差更合理。跨多天的超长水平期交易里机会成本主导一切,分解方式要换。对 dealer 报价成交的大宗和 RFQ 交易,“决策价”干脆不存在,拿你收到的报价当基准。除这几类之外,对多数日内执行的主动策略,IS 就是对的度量。
Perold 那篇论文的标题叫 “Paper Versus Reality”——账面对现实。这五个词概括了整个主题:你的回测、你的模型组合,都是账面;IS 是账面和现实之间那道缝的宽度。Harris 第 21 章把它放进更大的流动性度量框架里,Berkowitz-Logue-Noser (1988) 用 NYSE 数据第一次量出了这道缝有多宽,Kissell-Glantz-Malamut (2003) 则把它接到了最优执行的工程实践上。往下读,Almgren-Chriss(第 9 篇)讲怎么把这道缝收窄。
参考文献
- Harris, L. Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press, 2003. 第 21 章(流动性和交易成本度量)。ISBN: 978-0-19-514470-3.
- Perold, A. “The Implementation Shortfall: Paper Versus Reality.” Journal of Portfolio Management, 1988.
- Berkowitz, S., Logue, D., Noser, J. “The Total Cost of Transactions on the NYSE.” Journal of Finance, 1988.
- Kissell, R., Glantz, M., Malamut, R. “A Practical Framework for Estimating Transaction Costs and Developing Optimal Trading Portfolios.” Journal of Trading, 2003.