两家航空公司飞相似的航线,烧同一种航油,抢同一批旅客。很长一段时间里,两只股票几乎贴着走。某天一只涨了,另一只没怎么动。配对交易者会卖出涨多的那只,买入落后的那只,等两者重新靠拢。只要差距收回来,大盘涨也好跌也好,两条腿合起来都能赚到这段差距。
这套动作和前九篇的套利长得很像,却少了一样关键东西。期现套利有交割日,ETF 有申购赎回,三角套利在同一时刻就能把账算平。配对交易没有任何合约规定两只股票必须碰头。它赚的是“过去总会走回来”这条统计规律,所以更准确的名字叫统计套利。
这篇要回答的就是标题里的问题。我的判断是,单凭历史不能相信价差这次也会回来。配对交易能做下去,需要两只资产之间有说得清的经济联系,需要仓位按“这次可能回不来”来设计,还需要一套只用当时信息、经得起检验的回测。缺了任何一样,它就从套利滑成了一笔看不清方向的赌注。

这笔钱是谁付的
华尔街很早就有交易员在找走势相近的股票对。Gatev、Goetzmann 和 Rouwenhorst 后来用 1962 到 2002 年的美国股票数据,把这个做法认真检验了一遍。
他们的流程很朴素。先用一段形成期,把每只股票的价格标准化,找出价格路径最接近的股票对。然后进入下一段交易期,价差张开到一定程度,就买便宜的一边、卖贵的一边。价差收回或交易期结束时平仓。形成期里挑出来的对,只能在之后的交易期里赚钱或亏钱,不能回头改。
这篇经典配对交易论文报告的自融资组合年化超额收益最高约为 11%,利润通常高于保守估计的交易成本。作者把利润解释为近似替代品之间的暂时错价。11% 是 1962 至 2002 年样本里的研究结果,不是今天打开软件就能领取的利率。
暂时错价这四个字,可以顺着往下追。两只差不多的股票被拉开,常见的情形是资金只冲向了其中一只。某只股票被纳入指数,被一家大基金集中买入,或者某条消息先被市场理解成只利好它。急着成交的人不在乎多付一点,价格就被推开了。
配对交易者站在这些人对面。他卖给急着买的人,买下急着卖的人手里的筹码,再拿另一只股票对冲掉大盘方向。价差回来时,他赚到的那部分,实际来自当初为了马上成交而接受偏离价格的一方。价差没回来时,付钱的就是他自己。所以这门生意收的是两样东西的报酬,一样是提供流动性,另一样是替市场承担“这次可能真的不一样”的风险。
挑对子时,相关性会骗人
最直觉的选法,是找日收益相关性高的两只股票。相关性只说明它们常常同方向移动,说明不了价格会不会越走越远。
算一个极端的例子。假设 B 每天的涨跌幅都正好比 A 多 0.1 个百分点。A 涨 1%,B 就涨 1.1%。A 跌 2%,B 就跌 1.9%。两者的日收益相关系数等于 1,看上去是完美的一对。可一年约 250 个交易日下来,粗略按 1.001 的 250 次方算,B 相对 A 会放大到约 1.28 倍,领先接近三成。押“它们会回来”的人,会一路亏到年底。
配对交易真正需要的性质叫协整。意思是两条价格各自可以四处游走,但按某个合适的比例相减之后,得到的价差会围着一个水平来回摆动,不会一去不返。程序交易的对象就是这条价差,而不是两只股票本身。
可以把它想成两个人遛弯。相关性高,是两个人总往同一个方向走,但一个走得快一个走得慢,越离越远。协整更像两人之间拴了一根绳子,一前一后可以,距离却拉不开太多。这个比喻成立的地方在于,配对交易押的正是那根绳子的拉力。它不成立的地方也要说清楚。现实里没人看得见这根绳子,它的长度是从历史数据里估出来的,而且绳子可能变长,也可能某天直接断掉。
统计检验在这里也只能帮一半忙。协整检验说明的是某段样本里,这个价差看起来比较稳定。换一个时间窗口,结论可能就变了。公司换了业务,改了资本结构,或者监管规则变了,绳子都会跟着变。
把一笔配对交易从头算一遍
选好对子之后,第一个要定的数字是对冲比例。两只股票价格不同、波动不同,一股对一股通常并不中性。常见做法是拿历史价格做回归,得到一个系数。
假设回归结果是 A 大约等于 1.6 倍的 B。程序就把价差定义成 A 减去 1.6 倍 B。再假设过去 60 天里,这个价差的均值是 0,标准差是 2。
接下来要判断价差拉开得算不算多。常用的尺子叫 z-score,就是用今天的价差减去均值,再除以标准差,看它偏离了几个标准差。很多程序会在 z-score 高于 2 时做空价差,低于负 2 时做多价差,回到 0 附近退出。
某天 A 报 52 元,B 报 30 元。价差是 52 减 48,等于 4。减去均值 0 再除以标准差 2,z-score 正好是 2,触发开仓。做空价差的意思是卖空贵的一边、买入便宜的一边,按比例就是卖空 1000 股 A,同时买入 1600 股 B。
十天后 A 回落到 51 元,B 涨到 31.25 元。价差变成 51 减 50,等于 1。平仓。空头那条腿每股赚 1 元,1000 股赚 1000 元。多头那条腿每股赚 1.25 元,1600 股赚 2000 元。合计 3000 元,正好是价差收回的 3 个单位乘以 1000 股。
这 3000 元只是理论收益。真实成交价会比屏幕上的报价差一点,假设每股每次滑点 1 分钱,A 进出共 2000 股次,B 进出共 3200 股次,滑点吃掉约 52 元,这时剩下的是账面收益。再扣手续费,假设按成交金额万分之三收取,开平仓总成交额约 20.1 万元,大约 60 元。卖空 A 还要付借券费,假设年化 2%,5.2 万元借十天,约 28 元。最后落进账户的净利润约 2860 元。
这些成本是按笔收的,跟价差收回多少无关。如果为了多做交易,把开仓门槛降到 1 倍标准差,每笔只赚 1 个价差单位,也就是 1000 元,同样约 140 元的成本就会吃掉一成四。频繁进出的统计套利,经常就是死在这些小钱上。
这笔交易里还藏着一个容易漏看的问题。开仓时空头是 5.2 万元,多头是 4.8 万元,组合其实净空了 4000 元。如果两只股票都跟着大盘涨 10%,这 4000 元的净空头会亏掉约 400 元。这笔亏损来自大盘方向,和两只股票之间的相对错价无关。回归系数让价差稳定,不等于让市场方向归零。实盘还要决定按金额中性、按贝塔中性还是按行业中性来配,三种选法会得到三套不同的仓位。
1.6 这个数字本身也会漂。它只是某个训练窗口里的估计。长期不更新,组合会悄悄从交易价差变成押注某一边。牛市里看起来稳稳赚钱,可能只是带了净多头,熊市一来才露出原形。窗口取 20 天还是 120 天,均值和标准差都会变,开仓信号也跟着变。所以两倍标准差只是一个约定俗成的起点,背后没有什么定律。
价差回不来,通常有两种原因
上面那笔交易的结局是好的。现在换一个结局。开仓后价差没有回落,反而从 4 涨到 8,z-score 到了 4。程序在这里止损,亏损是 4 个价差单位乘 1000 股,4000 元,加上成本约 4140 元。
一笔赚 2860 元,一笔亏 4140 元。要让这套规则不亏钱,胜率至少要满足胜率乘 2860 等于败率乘 4140,算出来约 59%。也就是说十笔交易里至少要有六笔价差乖乖回来,规则才刚刚保本。止损设得越宽,单笔亏得越多,需要的胜率就越高。
失败的那几笔,大致有两种来路。第一种原因是关系本身变了。航空公司出了事故,矿企失去矿权,一条链被攻击,一枚封装资产的托管出了问题。真实的信息永久改变了其中一边的价值。这时落后的那只不是在等补涨,领先的那只也不是早晚要回落,它们已经不是昨天那一对了。
有时连新闻都没有。两家公司原本都靠线下门店,其中一家慢慢转向订阅服务,估值方式就会一点点分开。两枚稳定币过去都贴着一美元,一枚开始承担更多合规成本,另一枚把储备换成高风险资产,历史价差也就失去了意义。
更难对付的是,即使两只资产的现金流被硬性绑在一起,价格也未必同步。Froot 和 Dabora 研究过一类“连体双胞胎”公司。两家上市公司把现金流合并后按固定规则分配,在不同国家的市场上市,荷兰皇家与壳牌就是这种结构。按道理,它们的股价应该严格同步。这篇研究却发现,双胞胎股票的相对价格会跟着各自主要交易市场的涨跌摆动,哪边市场涨,在哪边交易更多的那只就相对变贵。作者检验了分红、汇率、投票权、税收等多种解释,只有税收能解释一部分现象。
这个案例对配对交易者的意思很直接。连现金流都一样的两只股票,价差都可能因为谁在持有、在哪里交易而长期偏离。普通的配对,经济联系要松得多,绳子只会更长。
第二种原因与资产本身无关,来自做同样交易的人。2007 年 8 月 6 日那一周,一批量化多空股票基金遭遇了前所未有的亏损。Khandani 和 Lo 的研究用模拟组合复盘了那段时间。他们发现结构相似的组合从 7 月就开始平仓,8 月 6 日开盘后集中抛售。一个简单的做市策略在那一周的模拟收益显著为负,前后几周却是正的。他们的推测是,相似组合集体去杠杆,加上 8 月 8 日起做市资金暂时撤离,共同造成了这次踩踏。
这些基金并不全是配对交易,但道理相通。当一群人持有相似的多空仓位,其中一家被迫平仓,就会把大家共同持有的价差推得更开。其他人看到亏损扩大,也开始减仓。价差扩大的原因是有人必须卖,基本面可能一点没变。这种风险用对冲去不掉,因为你的两条腿正是别人在同时平掉的那两条腿。

给“我可能理解错了”留出口
知道了价差会以这两种方式回不来,风控规则的用处就清楚了。价差继续扩大时机械加仓最危险,它会把“历史上很便宜”变成越滚越大的仓位。上面那个例子里,如果 z-score 到 4 时不止损,反而在价差 8 的位置再加 1000 股的量,价差一旦涨到 12,原来那份仓位亏 8000 元,新加的那份再亏 4000 元,合计 1.2 万元,是当初止损亏损的三倍。
所以系统需要几道闸。单笔最大亏损和单一配对的仓位上限,管的是关系断裂时亏多少。最大持有期管的是时间,价差半年不回来,就该承认判断可能错了,别再等下去。基本面事件过滤,会在财报、并购、监管消息前后暂停开仓。再加上对残差波动、对冲比例漂移和协整检验结果的持续监控,发现绳子在变长就提前退出。
这些规则都会让策略少赚一些。止损会砍掉一部分本来会回来的交易,最大持有期会在收敛前一天把你赶出场。这是它们的代价,也正是均值回归策略必须付的保险费。统计套利最危险的仓位,常常是研究员最有故事可讲的那一对,因为他最舍不得止损。
回测最会讨好人
上面算出的 59% 胜率门槛,要从回测里来证明。偏偏回测是统计套利里最容易自欺的环节。
第一个坑是幸存者偏差。只拿今天还在交易的股票去回看过去,等于提前删掉了所有退市、归零的失败者。配对里如果有一只后来破产,那正是价差永远回不来的典型案例,回测却看不见它。
第二个坑是用到了未来。用整段历史挑出最稳定的配对,再假装十年前就知道选它们,回测自然漂亮。财报发布日期、指数成分变更和退市信息也一样,必须按当时真正能拿到的时间写入。今天整理好的数据库里,很多数字是后来修订过的。
第三个坑是多重检验。研究一万组配对,按常用的 5% 显著性门槛,就算市场完全随机,也会有大约 500 组纯靠运气通过检验。把其中最好的十组拿出来展示,相当于在一万张彩票里挑出了中奖号码,再宣布自己会选号。参数也是如此,试过几十种窗口和门槛,只展示最赚钱的那一组,回测就已经开始替未来作弊。
比较稳妥的做法是滚动训练,也就是 Gatev 那篇论文的思路。每一期只用当时已知的数据选对、估参数,在下一段时间交易,然后整体往前挪。把退市资产、借券失败和真实买卖价差都放回数据里。再留一段从未参与选参的数据做最后检验,候选组合越多,通过的门槛也该越高。
最后别忘了前面算账时那约 140 元。回测里只要漏掉手续费、借券费和冲击成本,频繁进出的小利润就会被放大成一条好看的收益曲线。
两条腿要当成一笔交易管理
回测里,A 和 B 在同一秒按收盘价成交。实盘里它们不会这么配合。先下流动性差的一边,可以降低建不了仓的概率,但等另一边成交时,你手里拿着的是一笔单边仓位。先下流动性好的一边容易成交,也可能下完才发现另一边借不到券。执行器要提前定好最长允许单边暴露多久、最多追价多少,超出就撤单或把已成交的一边平掉。
借券是配对交易特有的麻烦。如果 B 突然借不到,或者借券费飙升,策略就只剩一条腿,市场中性当场失效。所以仓位大小不能只看 z-score 多高,还要看两边盘口有多深、券源有多少、价差平时波动多大。统计信号只是建议,执行层能不能完成,是另一回事。
账本最好按配对记。两边的成交价、手续费、借券费、持有期间的分红和退出价,都挂在同一个交易编号下。否则一边赚、一边亏,报表会把同一笔交易拆成两个互不相干的故事,你也算不出那个 59% 的胜率到底有没有达到。
风控也要同时看单腿和组合。价差看着很稳的时候,单腿仓位可能已经很大。遇到停牌、涨跌停或交易所故障,往往只剩一边能动。组合风险低,只说明两条腿在正常市场里大致能互相抵消,不说明每条腿都安全。
它为什么仍被叫作套利
配对交易同时做多和做空,尽量剥掉市场方向,只交易相对价格。它和前九篇一样盯着价差,用的也是相似的执行和风控系统。名字里留着“套利”两个字,有它的道理。
差别在于价差靠什么回来。交割合约有到期规则,可赎回资产有出口,期权平价有到期时必然相等的现金流。统计套利只有概率。这个区别决定了仓位能不能加、可以等多久、最坏会亏多少。
回到开头那个问题,两个价格以前总会走回来,这次还会吗?诚实的答案是,没人能保证。能做的是先找到它们应该走回来的理由,再按回不来的情况准备好仓位和出口,然后看着那个理由是否还成立。价差还在,理由没了,就该走。
系列走到这里,十个策略的名字不必都记住。每次遇到一个“稳赚的价差”,先问两句,利润为什么会出现,又靠什么回到账户。两句都答得清楚,才知道手里拿的是套利、风险补偿,还是一笔穿着中性外套的方向交易。