介绍
如果您正在阅读本文,您可能知道我是一名数据、投资和初创企业方面的作家。你们中的一些人可能还知道我是一家科技初创企业的联合创始人——Quandl,一家几年前被纳斯达克收购的风险投资公司——或者可能是天使投资人。但我怀疑很少有人知道我之前的生活,我曾是一家日本对冲基金的量化分析师、交易员和投资组合经理。所以我想写一篇关于那段日子的一次特别冒险的文章。请继续阅读!
“幸运比聪明更重要”
我大学毕业后的第一份工作是在日本一家对冲基金 Simplex Asset Management 担任程序员兼分析师。我于 1998 年 8 月开始工作。一个月后,全球最大、最著名的对冲基金 Long Term Capital Management 破产了,令人震惊。
感谢阅读 Pivotal!免费订阅以接收新帖子并支持我的工作。
至少可以说,这是有问题的。
短期来看,这对我们来说其实是个好消息。我们当时新推出的基金提议交易许多导致 LTCM 倒闭的量化策略1 。LTCM 倒闭后,我们往往是唯一追逐这些机会的资本。如果我们早 3 年推出,我们就会和 LTCM 一起破产;3 年后,这些机会就会大大减少。正如我老板喜欢说的,“幸运胜过聪明”。
但从长远来看,我们很担心。LTCM 的倒闭让人们对他们和我们交易的策略的根本可行性产生了怀疑。光靠运气是不够的;我们需要一个 B 计划。
这就是 B 计划的故事。我想说,它是完全有意图和战略性的,但现实情况则更具探索性和突发性。最后,我们发现我们建立了一个当时还没有名字的东西:一个可以跟踪市场价格、运行模型、识别机会、设计交易、处理票据、管理对冲和退出头寸的系统——所有这些都在几秒钟内完成。
几秒钟?是的,几秒钟。与今天的 HFT 系统相比,这慢得可笑;当时的市场领先很多。我们的原型 HFT 系统在近十年的大部分时间里推动了 Simplex 的大部分交易活动(和利润)。我是该系统的主要构建者和主要交易员之一;事情的经过如下。
第一部分:准备阶段
天才为何失败
LTCM 和 Simplex 均专注于“融合交易”——建立不同证券之间关系的量化模型;下注以利用这些关系中的不一致性(“错误定价”);并在这些不一致性得到解决(“融合”)时获利。
但是,如果错误定价没有收敛,会发生什么情况?或者更糟的是,如果它们出现分歧?你可以加倍交易,但正如凯恩斯令人难忘的(尽管是伪造的)所说,市场保持非理性的时间比你保持偿付能力的时间更长。
LTCM 就曾遭遇过这种情况。1998 年夏天,他们的投资组合遭受了市场不利波动的严重冲击,似乎他们持有的每一个仓位都受到了影响2 。这并非巧合,相反,它反映了 LTCM 历史数据中未捕捉到的模式,即在危机中,“所有相关性都趋于一”。许多其他投资者的仓位与 LTCM 非常相似,而且杠杆率很高;当他们平仓时,导致 LTCM 的所有交易同时出现分歧。LTCM 毫无胜算3 。
我们在 Simplex 观察到了这一切,并决心不遭受同样的命运。但这似乎是趋同交易中不可避免的一部分。这种策略的风险状况通常被描述为“在压路机前捡硬币”:你可以聪明、敏捷、灵活,但最终你会被压垮。
我们需要一些新东西。理想情况下,需要具备以下特点:
不依赖市场与模式的融合
没有使用过度杠杆
与其他投资者的头寸不相关
这看上去不可能,但事实并非如此。
核心理念:噪音货币化
假设您有一个模型,可以识别或预测两种或多种证券之间的关系。这种关系的偏差可以建模为“利差”——两种债券收益率或债券与债券期货之间的差额。只要这种关系成立,利差就应该“均值回归”,即它应该回到零,如下所示:
这意味着你可以围绕它制定交易策略。每当价差低于(高于)某个阈值时,你就买入(卖出),当价差收敛到零时,你就退出。
这是典型的 Salomon-LTCM 交易风格:你赚了一段时间的钱,但最终市场出现了分化而不是趋同,你破产了。(即使后来市场再次趋同。)
请注意,尽管在此窗口期间价差从未收敛,但仍存在许多峰值和谷值。如果我们可以交易这种噪音——卖出所有临时峰值,买入所有临时谷值,会怎么样?尽管缺乏收敛,我们还是会赚钱!
买卖价差的终结
不要直接交易价差成分,而要交易流动性代理。你在精准定位中放弃的东西,可以通过往返交易计数来弥补。
将策略分层叠加,并仅交易跨多个策略的“净变化”。
抓住机会进行多边交易。随机化交易以最大程度降低方向性风险。
跟踪大宗交易以预测做市商的短期对冲流量。
对不同场馆之间的价格差异做出比竞争对手更快的反应。(这在当时仍然是可能的!)
在市场动荡时进行大量交易;当市场其余部分仍在对宏观事件做出反应时,进入或退出收敛头寸。
在时间(频率)和空间(策略)上最大化交易数量。
要知道,立即完成的粗略对冲优于花费时间或金钱的完美对冲。
所有这些都指向一个结论:我们需要在流动市场中交易六种不同(但重叠)收敛信号的投资组合中实现快速、自动化的执行。
现在我们必须建造它。
第二部分:细节中的魔鬼
国库中有宝藏
我们决定从美国国债开始,这个市场足够高效,量化模型可以发挥作用;波动性足够大,噪音交易可以实现;流动性足够强,可以实现零买卖价差。
尽管债券市场流动性强、效率高,但从技术上讲,它仍停留在 20 世纪 80 年代。绝大多数交易都是通过电话完成的。电子交易场所分散且不透明;电子交易执行不到市场的 10%。只有少数参与者知道如何正确定价国债收益率曲线;那些知道的人通常依靠隔夜模型运行,用 Excel 电子表格进行盘中更新。(其中包括全球最大银行和资产管理公司的交易员)。对我们来说,这是一个完美的市场!
数据统治着我周围的一切
第一步是获取数据。第一步始终是获取数据5 。
在那个年代,还没有一个方便的 API 可以用来获取债券市场数据6 ,所以我们只能强行获取:
我们询问了 5 家不同的投资银行(拥有最大的财政特许经营权的银行),了解他们早上、中午和收盘时的定价情况,他们用这些数据来标记自己的账簿。
(我们最终要求每家银行对其每个主要业务部门(TKY、LON 和 NYC)都执行此操作,以获得更广泛的覆盖范围)。
有时这些是纯文本,有时这些是图像或 PDF 或其他文档格式。当时 OCR 技术还不够好,所以我们在东京和香港设立了两个独立的后台办公室,手动输入这些运行的价格。
我们对所有主要(可执行)交易场所进行了自动日内截图。
我们对彭博和路透社终端也采取了同样的措施,特别关注收盘时的价格。
我们的母公司与多家主要经纪公司有合作关系(针对不同的基金、交易策略和地理位置),我们也从他们那里获得价格。
当然,我们随后必须进行纠错、移除异常值、修复系统性偏差等7 。由于大多数债券的价格都是以与少数“基准”债券的差价来报价的,我们还必须对所有报价进行标准化,以便与基准保持一致。然后,我们必须将所有这些原始材料提炼为每只债券的单一“黄金”时间戳价格。
我们还没完!与股票不同,国债有固定期限。从建模角度来看,这意味着债券每天都不一样。今天你有 10 年期债券;明天它就是 9 年期、364 天的债券。为了实现完美的日常模型一致性(这将在下一节中变得重要),我们需要构建一个具有恒定期限的“虚拟”债券世界,这些债券是实际债券的线性组合。
事实证明,这并非易事,因为虚拟债券必须遵守一组难以同时满足的条件(行为良好、权重平滑、收益率和息票匹配、稀疏数据和不对称处理)。我花了很多时间弄清楚这8 的数学问题。
好还不够快,但快就足够好
我们的主力是收益率曲线模型,我们称之为 N3,即“正常三因子”的缩写。N3 是一组非线性耦合微分方程,给定 12 个输入参数,它将输出任意期限的收益率。其中 8 个参数是常数,表示经济中不变的结构方面;我们每年校准一次这些参数,运行优化(EM 算法),该优化需要花费数小时来运行,并且需要十多年的历史数据。其余 4 个参数每天都在变化,反映了市场对定义当前经济状况的 4 个数字的隐含值:隔夜融资利率、预期(实际)增长率、预期通胀率和风险溢价9 。
使用 N3 的传统方法是,我们在收益率曲线上选择 4 个“锚点”——固定的 1 周、2 年、10 年和 30 年期限的利率——并使用它们来求解 4 个每日变化的参数(4 个方程,4 个未知数)。然后,该模型将能够预测其他每个点的收益率;然后我们可以买入(卖出)相对于其预测收益率而言看起来便宜(高)的债券。(当然要考虑票息效应、现金流时机、融资成本、流动性和其他琐碎细节。)
但解决起来很慢。不是完整的 EM 校准需要 6-8 小时,而是几十秒到几分钟。这对于我们想要抓住的机会来说还不够。
我们花了很多时间寻找能够更快完成这一任务的方法,包括硬件和软件。但都没有奏效10 。
然后,突破了!
我们意识到我们不需要为市场数据的每一次变动重新求解 N3。N3 复杂得令人难以置信,但对于较小的变动,它可以线性近似。所以我们每 60 分钟左右进行一次完整求解;在完整求解过程中,我们还计算了每个参数相对于每个锚定债券价格的小变动的所有偏导数。然后,对于我们 60 分钟重置之间的任何市场变动,我们只需进行线性近似——一个简单的矩阵乘法足以生成新的参数值,另一个矩阵乘法足以生成曲线11上其他地方的预测收益率。
我们在整个工作流程中应用了这一概念突破。每项日内计算(实际债券与虚拟债券、价格空间与参数空间、因子敏感度、对冲比率)都转换为线性近似。矩阵一直向下!
结构和基础设施
因此,我们有了一个可以快速识别市场机会的系统。下一步是将其连接到交易执行基础设施。
国债市场参与者大致分为三类:
客户:希望买卖债券的资产管理人(包括 Simplex 等对冲基金)
交易商:大型银行,通过做市和持有库存来促进这些交易
经纪商:为交易商间交易提供执行场所的专业公司,但本身并不交易或持有库存
当时,客户与交易商之间的交易完全通过语音进行。交易商与交易商之间的交易有时是语音的,有时是电子的。其中一些是直接的,另一些则通过经纪人进行。最后,客户与客户和客户与经纪人之间的交易并不存在:交易商小心翼翼地守护着他们的中介地位。
我们绕过了他们。我们说服了几家经纪商允许我们直接在他们的电子平台上交易,让我们能够以经销商无法比拟的速度获得流动性。几个电子平台还配备了自动售票系统,这真是太好了。
七秒或更短
但我们不能没有交易商。他们仍然控制着最大的流动资金池,对于许多债券发行来说,他们是城里唯一的游戏。他们的流动交易台只通过语音与客户进行交易。
我们需要一种比其他任何人都更快地执行语音交易的方法。
这最终成为了经典的工作流程工程。我们找出了语音交易中的基本步骤,并尽可能地实现了自动化:
确定需要经销商(而非经纪人)执行的机会
设计交易:交易部分、方向、债券编号和名义金额
自动生成报价请求信息
将消息粘贴到彭博社并发送给经销商销售人员
收到报价并解析价格
拿起电话说“完成”或“不”
从经销商处获取交易单并解析
将交易纳入我们的投资组合
这些步骤大部分都是自动化的;唯一需要人工操作的是发送 BBG 消息,然后对回复表示同意或不同意。最难的部分是培训经销商销售人员以一致的格式报价,以便我们可以自动解析它们。(哦,我多么希望一个法学硕士能为我们做到这一点)。我们最终构建了一个原型交易捕获工具——一个可以粘贴经销商消息的小部件,应用程序会提取所有详细信息并将其传输到系统中。我们有一个用于实时报价,另一个用于交易确认,它们的效果非常好。
我们并没有将其缩短到七秒或更短,但是我们的速度已经非常快了。
幕后故事
伴随着这些大范围的攻击还有许多较小的攻击:
我们的状态监控机没有声卡。我破解了它的启动蜂鸣声(使用时钟周期),这样它就可以播放一段曲调,如果这段曲调被记录为频率的话。从那时起,每当系统崩溃时,帝国进行曲就会在办公室里响起。
由于数据库速度、字段和大小的限制,我们一度将整个掉期市场编码为一个单一的“二进制大对象”(BLOB),我们可以将其加载到内存中并进行查询。(我无法告诉你当时的数据库技术有多糟糕。)
我们需要一个 UX 来显示头寸、操作、对冲、实时损益和风险。Excel 有一个流函数,理论上可以做到这一点,但它很慢,容易挂起或崩溃,而且无法审计12 。我们找到了一个名为 MarketView 的 Excel 克隆,它针对报价流进行了优化;它完全不适合用作电子表格,但我们不在乎——我们在服务器端进行了所有计算,并使用 MV 作为哑显示器。
我们最初想从东京总部建立和交易该系统,但我最终搬到了新泽西州,并在那里设立了一个卫星交易办公室。这是共置的早期例子!
岔路和惊喜
途中也发生过一些不幸的事:
当时,我们的超级自动化交易对帐系统将我们的所有头寸通过电子邮件发送给了所有交易对手,而不是我们的后台办公室。令人惊讶的是,这个错误被另一个错误所抵消,该错误由同一代码更新引入,导致我们的电子邮件服务器瘫痪。所以我们又活了13天。
当时我弄错了交易名义金额中的零 — — 公平地说,这是一笔日元交易,有很多零 — — 最终以极小的仓位执行了一项超级复杂的多边交易。第二天我发现了这个错误;这一次,我很高兴市场走势与我相反,因为我能够在更好的水平14上增加全部(预期)规模。
当时整个交易系统因为一个严重的错误而不得不暂停数周:一个低级优化程序一直在两个同样有效的解决方案之间切换(这是一个“略微”不确定的系统)——我们最终发现这是由于我们的退火算法、随机数生成器和特征值的工作方式之间存在不稳定的相互作用造成的。
那一次——实际上不止一次——我们的主经纪商惊慌失措地打电话给我们,因为他们的交易部门告诉他们,我们买入(或卖出)的资金数倍于我们的融资限额。他们不知道我们已经在其他地方抵消了这些交易——他们似乎从未想过,一只基金可以在不面临毁灭性交易成本的情况下进行如此大规模的回转,我们也不会告诉他们。
不算是一次意外,但有一点很有趣:我们的每一位交易商都看到了我们与他们印刷的业务量(但不知道有胶印),都确信我们是在为他们竞争对手的头寸融资15 。所以他们开始向我们提供越来越好的交易条件。这也成为我们可以进行交易的信息。
那时我们发现,对于任何收敛价差,我们设定的“公允价值”并不重要:只要价差有噪声,我们的损益表就对其实际水平不敏感。回想起来,这个显而易见的发现让我们的学术研究团队有点抓狂。
获胜的感觉如何?
转向这种新的 HFT 方法是一个缓慢的过程。我们可能花了一年时间思考和解决这个问题,进行研究、构建原型、回溯测试、解决各种数学细节等。又花了一年时间构建实际的核心系统。然后又花了一年时间逐渐提高我们的交易量,找出自动化领域,解决错误,为黄金时段做好准备。
但它确实奏效了。而且效果比我们预期的还要好。在美国市场,高频曲线交易的利润占比迅速从 10% 上升到 50%(有些月份甚至达到 80%)。
比损益表更棒的是交易足迹。我们发现了系统中的一个重大漏洞。投资组合风险、信用额度、相关性——行业惯例是根据收盘头寸计算所有这些。但我们的收盘头寸通常“持平”!我们交易的噪音会在盘中均值回归,因此我们所有的买入和卖出都会抵消。只看我们收盘账簿的交易对手会得出结论,我们承担的风险很小,因此不需要我们支付太多保证金16 。
这也意味着我们不需要太多融资,也就是隔夜杠杆非常小:我们的资产负债表回报率非常高。最后,我们的损益表很少与收盘时市场走势相关,也就是说,它很少与其他市场参与者相关,即使他们交易的是类似的模型和策略。
无需模型收敛;有限的杠杆或融资需求;极小的利润空间;以及与市场其他部分的低相关性:这确实是圣杯。
实际情况是,我们专有的、研究密集的、模型驱动的自营交易策略开始呈现出成功的流动交易台的行为特征。这在直觉上是有道理的:毕竟,我们一直在低买高卖,而且从不长时间持有交易;底层逻辑可能是由收敛模型决定的,但交易模式是做市商17 。事实上,我们甚至开始将自己视为“多证券做市商”,我们的核心模型使我们能够覆盖比任何单一工具或行业专家更广泛的对冲范围。
它是美丽的,我非常谦虚地说。
市场很复杂,但我们很简单
是的,这是我们的非官方座右铭。是的,这很糟糕。
核心基础设施到位并证明其有效后,我们想要更多。我们在堆栈上添加了一层又一层的内容:
N3 是一个很棒的模型,但它只是一个模型。我们意识到,如果“公允价值”不重要,如果“市场与模型的趋同”不重要——如果唯一重要的是盘中噪音——那么任何能够持续识别盘中噪音的模型都应该在我们的系统中发挥作用。所以我们添加了多个模型并并行运行它们;其中一些是基于经济的,其他只是老式的相关性搜索;都是数据,没有数学。
我们还开始交易更多工具:掉期、欧洲美元、期货、期权、交叉货币基础——只要能够快速交易,任何与我们的核心国债账簿相比表现出某种日内相关性或均值回归的东西都可以交易。(但我们从未经营过真正的全球账簿,尽管数学上是合理的;我们觉得有太多“未知的未知数”和不对称的宏观风险让人难以接受。)
我们对市场影响的认识变得更加老练:何时交易、交易多少;市场结构中的危险信号和绿灯;机会和残余流量的半衰期;季节(实际上是昼夜)影响;如何围绕宏观事件进行交易等等。
小而强大
考虑到这个项目的雄心壮志(在技术范围、交易金额和新颖性方面),我们仅凭一个惊人的小团队就完成了所有这一切:
TB 是该项目的高级投资组合经理和推动者;他现在是贝莱德的高级主管。
HL 是该系统的首席程序员和架构师;随后,他成为其他几家对冲基金的首席技术官。
RO 和 GG 是初级分析师,他们做了大量有关编码和数据的具体工作;他们最终开始在我们构建的系统上进行交易,如今他们都是成功的投资组合经理。
至于我的角色:我连接了交易和技术。我是一名交易员和投资组合经理,同时也是技术人员,所以我做了很多模型/数据/策略研发工作,并构建了许多原型;系统上线后,我也是系统上最稳定的日常交易员。
五个人!小团队总能发挥超乎寻常的作用。
回想起来,还有一件事让我印象深刻,那就是我们都太年轻了。TB 和 HL 是队里的高年级生,我认为他们两个都还没满 30 岁。我当时 24 岁,披着青春的无敌面纱。RO 和 GG 更年轻,刚从本科毕业。
一切美好的事物
但阿尔法衰变是不可避免的,一切美好的事物都会结束。
我提到,我们的高频交易账簿在鼎盛时期从 0% 上升到总损益的 80%。它维持了一段时间的高水平。但随后又回落到 20% 左右,并保持在这个水平。
发生了什么?竞争。我不认为我们所构建的任何东西是真正独特或不可复制的,我相信许多其他人也在尝试类似的方法;空气中弥漫着某种气氛18 。我知道至少有一家银行的曲线交易基础设施与我们几乎完全相同,而且毫无疑问有多家基金在玩同样的游戏。我们每天至少能可靠地看到一两次的 1-2bp 的往返机会变得越来越少,直到完全消失。任何错误定价都会很快被反向交易。
这段经历非常不错。我相信有些公司在机会减少时才投入资源;我们很幸运(既幸运又聪明)走在了前面,因此获得了几年的强劲表现。我们也相当快地意识到阿尔法何时开始下降,并转向不同的策略,而不是试图用更大的头寸来弥补。
我继续在 Simplex 工作了一段时间,但最终厌倦了并辞职了。几年后,我与他人共同创立了 Quandl。不过那是另一个故事了!
多伦多,2024 年 12 月
感谢阅读 Pivotal!如果您喜欢这篇文章,请点赞、分享和订阅——这是鼓励我写更多文章的最好方式!
我们的创始合伙人和 LTCM 的负责人一样,都是著名的所罗门兄弟债券套利部门的毕业生;您可以在《说谎者的扑克牌》第 44 页找到他。
该公司随后也遭受了重创——伯克希尔哈撒韦公司提出以 2.5 亿美元收购合伙人的股权,以换取紧急现金注入。但他们拒绝了这一提议,最终几乎一无所有。
这段话过于简单,但抓住了事件的要点。罗杰·洛温斯坦 (Roger Lowenstein) 的《当天才失败时》一书对此进行了更详细的介绍。还有大量研究(包括学术和实践研究)探讨了 LTCM 的倒闭,以及它对套利理论、有效市场、风险管理、现实世界价格行为(肥尾、相关性、风险机制)、追求质量和流动性等方面的影响。
我们还发现了许多行不通的方法,而且这些方法既费时费力又费钱。没有什么比实际的损益表更能学习,也没有什么比自我欺骗更糟糕。
“没有数据就进行理论化是一个大错误”——也就是说,如果你没有好的数据,你就得和你的资本说再见了。(《福尔摩斯》,《血字的研究》)
这是戏剧性的伏笔吗?我觉得是戏剧性的伏笔。
我最喜欢的系统性偏差是,当交易商持续公布特定债券的高收盘价时,这清楚地表明交易商持有该债券的多头头寸。借助我们的数据集,我们可以根据这些信息进行交易!
事实上,彭博社确实公布了固定到期收益率,但他们的方法存在缺陷。我们弄清楚了原因和原因,并有意不向他们报告这个问题。
抛开迂腐不谈:既然有四个因子,为什么叫 N3?因为我们在看到 LTCM 的遭遇后决定让“风险溢价”发生变化。这是我引以为豪的建模决策之一;公司里的高级量化分析师真的不想这样做,我称之为哲学原因。我自己的哲学是阿西莫夫式的:“永远不要让你的道德感阻止你做正确的事”。
高性能硬件在我们办公室的一角积满灰尘,直到互联网泡沫破裂前,我们才将其出售给一家科技初创公司(真是一笔划算的交易)。在软件方面,我们尝试了一堆专有软件包,还从各个大学下载了前沿研究代码——这是在强大而可靠的开源库出现之前——pandas 是由量化对冲基金开发的,这并非巧合。我们最终部署了一段我们称之为“德国优化器”的坚不可摧的代码,它使用了“拉格朗日 Hessian 矩阵的 Pantoja-Mayne 更新的略微修改版本、变量对偶缩放和改进的 Armijo 型步长算法”。现在你对它的了解和我一样多。
顺便说一句,这就是为什么时间一致性很重要:本质上,我们将每天的市场走势建模为前一天收盘价的小增量(在 N3 参数空间中);所以我们必须消除一天时间流逝的影响。
但这些都没能阻止人们使用它。当时正值“F9 模型猴”的鼎盛时期——按 F9 键是提示 Excel 刷新其计算;笑话是,当发生这种情况时,您通常可以去喝杯咖啡或吃顿午餐,甚至可以去度个短假。
与其他交易者分享杠杆头寸就像是向鲨鱼投饵:你正在引发一场疯狂的进食。当我(通常非常内敛和有控制力)的主管发现后,他把他的科学计算器扔向他的显示器,把两个都摔坏了。我仍然记得那件事,因为这太不符合我的性格了。
幸运比聪明更重要。
如果您不进行抵消,则必须为买入支付现金,或为卖出交付证券。对冲基金通常手头没有现金或证券;相反,它们从交易商那里借入/借出其中之一或两者。这个过程称为融资,交易商有“回购柜台”为客户提供便利。
如今,交易对手更加老练了。可以将其视为实际的进化。
任何足够先进的自营交易形式都与做市交易没有区别。
未来的所有要素都存在于市场中,即使它们分布不均:收益率曲线模型、快速网络、流媒体基础设施、电子执行、交易“直通式处理”协议。只需要有人将它们放在合适的信封中;对我们来说,这个信封就是噪音货币化 + 快速击败好 + 转变的风险状况。