跳到正文

交易成本分析(TCA):知道你自己实际付了多少

价格不是成本。TCA 是把运气从执行里剥出来的记账法:事前预算、实时驾驶、事后审计,三个时点记的是同一本账。

第 5 篇 · 共 12 篇 约 10 分钟

大部分交易者以为自己知道执行花了多少。他们错了。

你发了一笔 50000 股的买单。你决定买的时候市场是 $100.00,最终成交在 $100.07。滑点 7 美分,对吧?不对——那只是看得见的成本。真实的账里还有你跨过去的点差、你的单对簿的冲击、以及因为你太慢没拿到的那些股份的机会成本。交易成本分析(TCA)就是度量所有这些、并把每一块归到具体成因的学科。它的价值在于区分两种状态:你以为 broker 干得不错,和你发现 40% 的成本正从别的地方漏掉。

Harris 在《Trading and Exchanges》(2003,第 19–24 章)讲了一个每个执行交易员最终都会痛到的事:价格不等于成本。你看到的价格取决于观察时点;成本必须跟一个反事实价格比较——决策时的价格、执行区间的平均价、或别的什么能把运气剥离开的尺子。这句话是全文的主线。TCA 的三个时点、四个成本成分、所有基准和所有坑,都是”怎么把运气剥出来”这一个问题的不同侧面。看完这篇,你应该能拿起一份 TCA 报告,判断数字是在讲真话还是在被动手脚。

同一本账,三次结账

TCA 发生在订单生命周期的三个时点,回答三个不同的问题。事前 TCA 在下单前跑,根据股票、规模、波动率、场所组合估计这次执行大概要花多少——这是预算环节,回答”该不该做”。实时 TCA 在订单存活期间跑,告诉你订单是不是贴着基准走、该踩油门还是松脚——回答”该不该继续”。事后 TCA 在订单完成后跑,把实现成本归因到点差、冲击、时机、机会四个成分,再反馈给下一次预算——回答”做得好不好”。

大多数机构只把事后那份做好。只看上周报告的执行交易员是在用后视镜开车;把预算环节也做扎实的,才是 senior PM 质问 desk 为什么漏了 20 bp 时不会失业的那种。

成本拆成四块

大部分 TCA 报告出错就出在这里:把成分混在一起,或者量得不准。先把总账写下来。你在 t0t_0 决定买入、当时中间价 P0P_0,在 [t0,t1][t_0, t_1] 内完成、平均成交价 Pˉ\bar{P},总成本是:

Cost=Pˉ−P0\text{Cost} = \bar{P} - P_0

这是简化版,有意思的是分解。Perold(1988)在 implementation shortfall 那篇论文里给了正确的框架:把成本拆成交易员能控的和不能控的。四个成分依次看。

点差成本

跨过买卖价差吃流动性时,你立刻付掉半个点差。股票挂 100.00/100.00 / 100.02,你在卖价买入,那 1 美分归了做市商:

Spread cost=Ask−Bid2\text{Spread cost} = \frac{\text{Ask} - \text{Bid}}{2}

对市价单这不可避免;对被动成交的限价单,你反过来赚点差(在卖价卖出、在买价买入),代价是承担时机风险。严格经济意义上点差成本不算”成本”,它是付给提供即时性的做市商的转移支付——但做执行度量时仍要把它跟冲击分开,因为它直接刻画你的算法风格:激进吃流动性的算法每次都在付它,被动挂单的算法在收它。

一个测量细节:Harris(2003,第 14 章)指出,流动美股大盘股的报价价差往往显得偏紧,而有效价差——你实际成交价相对成交瞬间中间价——更宽,快行情里尤其如此。TCA 里用有效价差,别用报价价差。

市场冲击

这是你的单因为存在于市场而施加给价格的成本。50000 股买单打上卖价,卖价被抬走、下一档高 5 美分——那 5 美分,由你的单引起的价格变动,就是冲击。

实务里最常用的是平方根冲击模型,它是个经验规律、也有理论支持:

I=σQV⋅ηI = \sigma \sqrt{\frac{Q}{V}} \cdot \eta

其中 σ\sigma 是日波动率,QQ 是订单规模,VV 是当日成交量,η\eta 是缩放常数(流动名字上常拟合在 0.1 到 0.5 之间)。它说冲击随规模增长但增速递减,跟数据里看到的一致。

冲击还要再切一刀:暂时冲击在几分钟到几小时内衰减,永久冲击是价格水位的变化、不回复——这个分解框架正是 Almgren 和 Chriss(2000)那条线的贡献。经验研究普遍发现暂时冲击占大头,但具体比例随股票、当天行情、测量方法变化很大,别把任何一个固定百分比当真理。这一刀对归因很要紧:你相对到达价差了 8 美分,但其中 5 美分是收盘前会衰减的暂时冲击,那你的账面成本是 8 美分、经济成本可能只有 3 美分。大部分交易员忽略这个区分,把太多注意力浪费在短期冲击噪音上。

时机成本(延迟成本)

决定交易到真正开始交易之间的价格漂移。10:00 做决策时股价 $100.00,10:15 才发出第一个子单、股价已经 $100.10——10 美分的时机成本,一股都还没成交。订单 live 之后这块不在交易员控制内,它是市场对你等待的裁决;但要不要等的决策在交易员手里,这正是事后 TCA 有用的地方。Perold(1988)把它叫”等待的机会成本”,单独立项。好的 TCA 报告会告诉你每延迟一分钟,市场对你跑了多少。

机会成本

那些你没交易到的股。任务是买 50000 股,价格跑了、你只买到 30000,剩下 20000 股身上的价格变动就是机会成本。它是四个成分里最棘手的,因为它需要一个反事实:标准做法是假设你会以订单剩余水平期的 VWAP 成交。未成交段 VWAP 是 $100.50、你的成交价 $100.07,你靠不追单”省了”每股 43 美分——但你也没拿到仓位,净算策略 alpha 是亏的。

机会成本在快行情里最痛。一笔干一小时的买单在利好里错过目标的 20%、股票涨了 5%,事后报告上会挂着一个刺眼的机会成本数字,senior PM 会想知道你为什么不直接把单打完。

事前 TCA:预算

有了四个成分,预算就是在下单前把它们估出来。拿一只日均成交量 VV、日波动率 σ\sigma、价差 ss 的股票,规模 QQ 的单、在时间 TT 内完成:

C^(Q,T)=s2+ησQV+λσTTday\hat{C}(Q, T) = \frac{s}{2} + \eta \sigma \sqrt{\frac{Q}{V}} + \lambda \sigma \sqrt{\frac{T}{T_{\text{day}}}}

第一项点差,第二项冲击,第三项时机/波动率风险——干活期间暴露给市场的成本。这是假设被动执行的估计;想更激进(更短水平期、更高参与率),冲击项上去、时机项下来。最优执行理论(Almgren-Chriss 一系)找的就是让这两项期望之和最小的节奏。

实操中,事前模型用本机构自己的历史成交标定:喂进上万笔历史执行,对 η\eta 和 λ\lambda 做最小二乘,压预测和实现成本的差。大部分 desk 都有这么个东西跑在某台服务器上,很少有交易员真的用。用的人有实打实的优势:PM 问”买 $5M 的 XYZ 要花多少”,交易员几秒钟给出带置信区间的数,PM 当场能决定这个成本值不值那份 alpha。

实时 TCA:方向盘

订单干活的时候,实时 TCA 把它跟基准对着看,最常用的是区间 VWAP——父单工作区间至今的平均成交价。下单 30 分钟、比区间 VWAP 差 2 bp,正常;差 12 bp,有毛病——算法太激进、股票在跟你反向、或者流动性干了。

实时读数要能变成动作。现代执行算法有旋钮:参与率上限、激进档、暗池-亮所比例。实时 TCA 告诉你转哪个:

def should_speed_up(realized_bps, vwap_bps, threshold=5):
    """决定是否提高参与率。"""
    slippage = realized_bps - vwap_bps
    if slippage > threshold:
        return True   # 我们落后了,加把劲
    return False

这是玩具,真实实现还会看波动率、剩余时间、未成交量。但要点就在这:实时 TCA 给你一个数,你需要一条把数变成动作的规则。

危险是过拟合。每 30 秒按短窗基准调一次算法,你就在追噪音、把事情搞砸。有经验的交易员早上把算法设好,一小时看两次,只在结构性变化(新闻事件、流动性骤降、价格跳空)时才介入。

事后 TCA:审计

第二天早上,事后 TCA 交出判决:昨天每笔订单,相对机构在乎的每个基准,各花了多少。标准分解长这样:

成分定义例子数值
点差成本成交时的半点差+1.2 bp
冲击成本订单引起的价格变动+3.4 bp
时机成本订单期间的价格漂移-0.8 bp
机会成本未成交部分的成本+0.5 bp
总成分之和+4.3 bp

诚实的报告,成分加总等于相对到达价的实现差额;对不上,就是有人在重复计算或者藏东西。Harris(2003,第 21 章)强调买方 desk 至少每季跟 broker 的报告对一次账——broker 有动机把成本算得让自家算法好看,买方有动机把成本算得让自家 PM 好看,真相在中间。

基准本身也要挑对。四大基准各回答一个问题:到达价(父单发出瞬间的中间价)是表头的”我付了多少”;VWAP 是”我跑赢市场没”;TWAP 在成交量不可预测时顶替 VWAP;implementation shortfall 是 Perold 的度量,从决策到完成的总成本、含机会成本。每把尺子都有内置偏差——到达价惩罚慢执行,VWAP 奖励跟量成交、惩罚有强观点早早干完的交易员,TWAP 干脆无视成交量分布。大部分机构用到达价做表头、区间 VWAP 做算法基准。拿 TWAP 算法对 VWAP 基准比,输是当然的:你们俩追的根本不是同一个东西。

一份事后报告好不好,标准很简单:交易员能不能读一遍就说出明天该改什么。好报告的成本干净地分解、加总对得上,基准跟策略匹配,同伴组比对得对(小盘算法对小盘算法,不是对全市场),异常日标出来而不是藏起来。烂报告的特征也很稳定:号称 “implementation shortfall” 却没有机会成本项(没有机会成本就不能叫 IS,那是 Perold 的定义);只报名义占比不报绝对数($1M 上的 5 bp 是 $500,$100M 上的 5 bp 是 $50000,不是一回事);只给月度平均不给分布(有的单 +50 bp、有的 -10 bp 时,平均数没有意义)。

一个算例

假设你 10:00 接到 100000 股 XYZ 买单。10:00 中间价 $50.00,买卖价 $49.99 / $50.01。你用 VWAP 算法干 30 分钟,成交 95000 股、均价 $50.06。10:00–10:30 区间 VWAP 是 $50.04,10:30 中间价也在 $50.04 附近,剩余时段的 VWAP 是 $50.12,股票收在 $50.08。

成分计算成本(bp)
点差成本每股约半点差 × 95000 股+0.5
冲击成本成交价相对成交时中间价+3.4
时机成本(50.04−50.04 - 50.00) × 95000 = $3800+7.6
机会成本(50.12−50.12 - 50.04) × 5000 = $400+0.8
到达差额(50.06−50.06 - 50.00) × 95000 + (50.04−50.04 - 50.00) × 5000 = $5900+11.8

成分加总 0.5 + 3.4 + 7.6 + 0.8 = 12.3 bp,跟实现的 11.8 bp 差 0.5 bp——来自舍入,以及时机和冲击在成交发生的每一刻互相纠缠、本来就不能完美分开。差这个量级不用抓狂,差 3 bp 就要去查了。

表头读数:你付了 11.8 bp 的到达差额。相对区间 VWAP,付了 4 bp(50.06对50.06 对 50.04)。相对 $50.08 的收盘价,反而好 4 bp。哪个基准算数?取决于 PM 的授权:alpha 在 10:00 决策那一刻生成,到达差额就是真相;alpha 是日内慢慢生成、不在乎精确时点,VWAP 就够了。

报告在说谎的几种方式

同一套机制,也能被拿来讲错误的故事。几个每张 desk 都见过的版本。

把基准当成本。比 VWAP 差 3 bp 听着糟,但如果 VWAP 因为新闻事件远高于到达价,那 3 bp 仍然是赢的——你付了到达 +3,市场平均付了到达 +8。基准不等于成本。

忽略机会成本。“我 90% 的订单在 VWAP 下面 1 bp 成交”——藏起来的是没成交的 10% 跑掉了、吃了策略 30 bp 的 alpha。别让他这么报。

苹果对橘子。小盘算法对大盘基准、激进算法对被动基准、动量策略的成本对做市商的成本——都没有意义。

不对账就信 broker 的 TCA。Broker 用自己的成交、自己的时间戳、自己的模型。有时没问题,有时不是。每季对。

还有三种情况,数字本身没被动手脚、但环境让它说谎。财报日,价差从 2 美分炸到 20 美分、波动率翻三倍、开盘跳 5%,早上干的任何单相对到达价都难看——那是财报波动率,不是算法的锅,这些日子要滤掉或者对财报日同伴组比。新闻冲击同理:美联储公告前 30 秒到的买单看起来是 50 bp 的灾难,交易员无法预知,别罚他。第三种最容易漏:算法选错了。PM 给低成交量名字挑了个不合适的算法、股价全天漂移,TCA 报告说算法失败——真正失败的是选择。TCA 应当反馈到算法选择这一层,不只是算法内部的执行。这就是为什么 TCA 需要上下文:页面上一个孤零零的数字,没有对应的天、股票、策略、算法,什么都不是。

把环闭上

跑执行 desk,这套东西最终要串成一个循环:每笔父单发出前,事前估计先进 OMS,超过门槛就给 PM 挂 flag;订单存活期间,实时 TCA 对着到达价和区间 VWAP 盯,介入规则设好但别追噪音;第二天早上,事后报告按四成分分解、加总对上总额;每季跟 broker 对账;最后——这是闭环的那一针——用事后数据修事前模型:预测 5 bp、实际 8 bp,那只股票的 η\eta 调高;实际 3 bp,调低。

环闭上之后,三个时点就不再是三份孤立的报告,而是同一本账在预算、驾驶、审计三个阶段的连续记录。运气被一轮一轮剥出去,剩下的才是你的执行。

参考文献

  • Harris, L. (2003). Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press. 第 19–24 章。ISBN: 978-0-19-514470-3.
  • Perold, A. F. (1988). “The Implementation Shortfall: Paper Versus Reality.” Journal of Portfolio Management, 14(3), 4-9.
  • Almgren, R., & Chriss, N. (2000). “Optimal Execution of Portfolio Transactions.” Journal of Risk, 3(2), 5-39.
  • Bertsimas, D., & Lo, A. W. (1998). “Optimal Control of Execution Costs.” Journal of Financial Markets, 1(1), 1-50.