多资产执行:跨相关资产的协调交易
多腿策略的执行难点不在单腿,在腿与腿的关系:失衡暴露和信息泄露。这篇讲怎么让几条腿作为一个策略成交,而不是作为几笔互相出卖的单子。
单资产执行已经够难了。多资产执行更难,而且难的维度在标准 TCA 报告上根本看不到。
看一个具体场景。你要买 100000 股 AAPL、卖 50000 股 MSFT 做对交易。你先发 AAPL 单,立刻在卖价成交;200 毫秒后你发 MSFT 单。就在这 200 毫秒里,MSFT 对你反向动了 3 美分——因为其他市场参与方看到了 AAPL 那笔成交打印,推断出有人在做对。你的对进场价比应得的差了 3 美分,这可能吃掉全部预期 alpha。注意问题出在哪:不是 MSFT 不流动,是你 AAPL 的执行泄露了你的 MSFT 意图。
这就是多资产执行的全部难点的缩影:一旦订单不止一条腿,最要紧的量就不再是任何单腿的执行质量,而是腿与腿之间的关系。这篇文章顺着这条线讲篮子、对、指数套利、delta 对冲这些多腿形态,核心问题只有一个——怎么让几条腿作为一个策略成交,而不是作为几笔互相出卖的单子。
逐腿执行为什么会失败
天真做法是把篮子拆开,每条腿独立执行,最后聚合。它会在三个地方同时漏水。
第一是时机错配。每条腿在不同时刻成交,成交之间篮子就是失衡的:你多着 AAPL 却还没空上 MSFT,这段时间里你背着一个你从没想要的方向性暴露。第二是信息泄露,就是开头那个例子——每条腿的成交都向市场吐一点信息,市场推断出你的策略,就抢在后续腿前面反向交易。第三是滑点叠加:每条腿都独自面对自己的市场冲击,加起来比并行执行更贵。
这三个漏洞不是独立的,泄露放大错配、错配拉长暴露窗口。协调执行同时堵住三个口子。Harris(2003,第 24 章)讨论组合执行时给过量级:协调执行的篮子成本可以比逐腿低 20–30%——但前提是真协调;不协调的执行通常因为泄露和时机错配比预期更贵,两头都占不到。
对交易:你交易的是价差,不是两只股票
对交易是买一只股票、同时卖一只相关股票,赌两者间的价差收敛。执行上的关键转换是:你建模的标的是价差,所以执行要保住的也是价差,单腿价格本身不重要。
假设你给这个对定义的价差是 $5.00,你预期它收敛到 $4.90,那你想按当前 $5.00 的价差同时进两腿。如果因为时机差,一条腿晚了、成交价差了 3 美分,你的实现价差就是 $5.03 而不是 $5.00——你在价差上付了 3 美分滑点。小对无所谓;每条腿 100000 股的大对,3 美分就是 $6000,而对交易的预期收益本来就是以美分计的。
所以对执行算法的全部工作就是协调两条腿:同时(或几乎同时)发出两单;用 IOC(即成否则撤)确保两腿要么都成交要么都不成交;一条腿部分成交时按它的成交调整另一条腿的价;底层用能并行处理两腿的智能路由器。这四件事服务同一个目标——别让任何一条腿单独暴露在市场上。
把腿数推到极端:指数套利
对是两条腿。把腿数推到 500 条,就是指数套利。
指数套利利用指数(比如标普 500)和它的成分股之间的价差:期货相对成分股算出的公允价出现溢价时,买股票卖期货;折价时反过来。执行挑战在于同时买 500 只股票是个巨大的协调问题——所有腿要按一致的价格成交,全篮子的冲击要压到最小,而且必须快,因为套利机会只持续毫秒。
做这个的是专门系统:基于当前股票价格预计算指数公允价,识别期货误定价,向全部 500 只股票同时发单,实时监控成交并调整。这些系统以 HFT 速度运行、用专属市场接入,零售执行算法没法竞争。但原则——协调、同时执行、实时调整——对任何多腿交易都适用,这也是这一节存在的理由。
把频率推到极端:delta 对冲
指数套利把腿数推到极端,delta 对冲把频率推到极端。
期权做市商靠交易标的股票来对冲期权头寸,而 delta 随价格变动、时间衰减、波动率变化不停地动。delta 从 0.50 移到 0.55,你要多买 5% 标的;移回 0.45,你卖。这本质上是一笔永远做不完的多腿交易:对冲单很小(常常只有标的仓位的 1–5%)但极其频繁,每次都发市价单跨点差是付不起的。
解法跟着 gamma 走。gamma 低时再平衡罕见但一次量大,用激进单干脆成交划算;gamma 高时 delta 变化快、再平衡小而密,就该用 touch 上的限价单赚点差、或者中点 peg 单在中点成交。同一个对冲需求,激进度完全由再平衡的节奏决定。
相关性怎么进模型
上面这些直觉可以形式化。Almgren-Chriss 框架能推广到多资产:不是为单个资产最小化冲击,而是为整个组合最小化冲击,把跨资产相关性算进去。
对两个相关资产 和 ,多资产冲击可以写成:
其中 是相关性,第二项捕捉的是 的交易通过相关性对 价格的冲击。
从这个结构直接读出最优策略的形状:高度相关的资产应该同时交易,让它们的价格变动互相对冲;不相关的资产独立交易,协调没有收益;跨资产波动率高的时段整体放慢。数学推起来复杂,直觉就这一句——相关的一起走,不相关的各走各的。
泄露是主要敌人
回到开头那个 200 毫秒的例子。多资产执行最大的成本项不是冲击,是泄露,而且泄露是复利的。
你激进买 AAPL,市场推断”有人想要 AAPL”——他们未必知道这是对 MSFT 的对交易,但会在你后续单前面买 AAPL。你接着激进卖 MSFT,推断升级为”有人在做 AAPL/MSFT 对”。到这一步,市场已经有足够信息在你下一笔对交易前面反向布局了。每条腿的执行都让后续腿更贵,也让明天的同一笔策略更贵。
对付它有四条路,代价各不相同。事前随机化:变换腿的发送顺序、腿间时机、每条腿的规模,让模式不可学习。同时执行:所有腿一起发——信息照样泄露,但市场没有”后续腿”可以抢跑,因为不存在”之间”。暗池执行:所有腿同时走暗池,成交打印不实时可见,泄露被压低。最后是干脆绕开公开市场:找一个对手方把整个篮子双向接走,做成大宗交易——对 10 腿篮子这经常是最干净的解。
同时执行,以及它做不到时的顺序执行
对多数协调执行,正确做法就是所有腿同时发:每条腿按 beta、波动率、相关性调好规模,用同样的执行策略,系统实时监控并调整。腿之间没有信息泄露,因为没有”之间”。它的软肋只有一个——某条腿不成交,篮子就失衡。所以多腿系统都带回退:一条腿 秒内没成交,撤掉其他腿重试,绝不留着失衡的篮子过夜。
但同时执行有规模上限。一笔要动 $5B 股票的指数再平衡如果同时发出去,会直接统治市场。这时只能退回顺序执行:先发腿 1,按腿 1 的成交价调腿 2 的价再发,逐腿推进,跨 30 分钟把冲击铺开。更慢、泄露更多,但换来了根据市场对每条腿的反应做调整的空间。顺序执行的优化点在发腿次序:不流动的腿先走(给市场恢复时间),流动的腿后走(市场”就绪”时冲击低),相关的腿凑在一起走(互相对冲)。
支撑这两种模式的路由器比单资产路由复杂得多——它必须理解策略本身。它要实时跟踪所有腿的成交、计算腿间实现价差、按部分成交调整未成交腿、篮子失衡过头时撤掉所有腿。骨架长这样:
def execute_pair(buy_leg, sell_leg, max_slip=0.05):
"""用同时单执行对交易。"""
buy_order = send_ioc(buy_leg.symbol, buy_leg.size, 'BUY')
sell_order = send_ioc(sell_leg.symbol, sell_leg.size, 'SELL')
# 等一会成交
time.sleep(0.1)
buy_filled = buy_order.status == 'FILLED'
sell_filled = sell_order.status == 'FILLED'
if buy_filled and sell_filled:
spread = buy_order.fill_price - sell_order.fill_price
return 'COMPLETE', spread
elif buy_filled and not sell_filled:
# 解开买单来保平
send_market('SELL', buy_leg.symbol, buy_order.fill_size)
return 'UNWOUND', None
elif sell_filled and not buy_filled:
send_market('BUY', sell_leg.symbol, sell_order.fill_size)
return 'UNWOUND', None
else:
return 'NO_FILLS', None
这是玩具。生产系统还要处理部分成交、重试逻辑、每腿滑点限制和一堆边界情况——评估一个篮子算法值不值得用,问的正是这几件事:部分成交怎么处理、每腿滑点限制是多少、未成交腿怎么按部分成交调整、取消策略是什么。答不上来的算法别接大单。
协调不是免费的,也不总是必要的
到这里容易得出”一切多腿交易都该协调”的结论。不对。协调有基础设施成本,它的收益只在特定条件下存在:腿之间相关(一起交易真的减风险)、腿够流动(同时成交做得到)、腿间泄露真的要紧。反过来,腿不相关时联合执行没有任何好处;一条腿远比其他腿流动时,时机被流动腿统治,协调名存实亡;订单小到单资产执行就够时,协调是白花钱。
实际的分界线大致是规模和腿数。5 只股票组合的小额再平衡,并行的单资产执行就行;100 只股票的指数再平衡,协调是必需品。经验量级:不协调的篮子执行比协调执行贵 10–30%,具体看篮子规模、腿间相关性和执行速度。按这个量级算,一个 $50M 的多样化篮子,差距是 $500K–$1.5M——协调的基础设施自己就把钱赚回来了。
具体到工具,一个多策略 desk 需要的是:指数类交易用篮子算法,相关两腿交易用对算法,期权做市用 delta 对冲模块,外加覆盖所有腿的实时监控和能同时处理多标的的智能路由。主流执行平台(Bloomberg EMSX、Charles River、Eze、FlexTrade)都有多资产能力,但深浅差很多——有些只做到”同时发出”,离真正的协调还远。交易员得知道自己手里的是哪种。
三个纯粹形态
多资产执行的原则在三个现实场景里以最纯粹的形式出现,每个都把某一维推到头。
跨资产类协调把”异质性”推到头。全球宏观策略要同时买股票、卖债券、买商品期货来表达一个通胀观点——三条腿在不同市场、不同流动性、不同执行算法、不同时区。时区错开意味着你根本不可能同时发所有腿(亚洲债券交易时美股闭市);执行算法互相不通话;每个资产类的 TCA 基准都不一样;总滑点被最差那条腿统治。可行的做法是预先算好跨资产类的执行时间表,把每条腿发给各自合适的执行系统,实时盯成交:欧洲债成交慢,就放慢美股腿保持策略平衡;欧洲债成交快,就给美股腿提速。做到这个程度的公司很少——大多数跨资产执行是逐腿各干各的,没有跨资产视图。做到的公司有真 edge,代价是复杂的基础设施加 24 小时人员。
过渡管理把”规模”推到头。计划发起人换资产管理人时(比如 $500M 养老金从主动转被动),老经理要卖掉整个组合、新经理要买入新组合,过渡 broker 协调两边:给卖方找流动性、给买方找流动性、两边都压冲击,还要瞒住市场别让人知道过渡的体量。过渡交易典型是每天几百万股、几百只股票,是真的会动市场的量。过渡 broker 靠的是跟大宗 desk、暗池和其他机构账户的关系网,收费通常是总过渡价值的 5–20 bp——养老金付这笔钱,换的是比自己执行省下来的冲击。
ETF 创建/赎回把”时间窗”推到头。ETF 以实物创建和赎回:授权参与方(AP)交一篮子股票换 ETF 份额,或者反过来。篮子按 ETF 不同可能是 100–2000 只股票,而 AP 要在限定的时间窗内(经常是收盘竞价)以最小冲击同时买齐 500+ 只股票。流程本身不复杂——提交创建单、发行人确认篮子成分、公开市场买入、交割换份额——但执行是个不折不扣的巨型多资产问题,所以干这活的是有专门篮子执行基础设施的 AP(Citadel Securities、Virtu、Jane Street、Susquehanna)。买方一般不直接碰 ETF 创建,交易 ETF 份额本身就好。
多资产的 TCA:基准要跟着策略走
最后回到度量。这篇开头说过,多腿交易里单腿执行质量不是要紧的量——那么 TCA 的基准也必须换。
对对交易,正确基准是决策时刻的对价差,不是任何单腿价格。决策时价差 $5.00、实现价差 $5.03,你丢了 3 美分,就这么简单。对篮子,正确基准是篮子价值——腿价按数量加权求和:决策时篮子值 $1M、你按 $1.001M 成交,你付了 10 bp,单腿各自什么价无关紧要。对过渡,基准是相对决策时市场的过渡价。
麻烦在于大多数 TCA 系统不原生支持这些多资产基准,你得自己搭。认真做多资产的买方 desk 都为此维护自定义 TCA 基础设施——这也是多资产执行运营复杂性的一角:多套 OMS(每个资产类一套)、跨资产类的算法协调、时区和交易时段差异、实时跨系统对账、按策略而非按腿报告业绩、每个资产类不同的合规规则、跨币种策略的货币转换。这套东西对大额跨资产流量是合理投资,对小机构就是过度建设。协调值不值,最终还是那道算术题。
参考文献
- Harris, L. (2003). Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press. 第 24 章。ISBN: 978-0-19-514470-3.
- 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.