Download PDF version of this article PDF

野蛮人涌入网关

高频交易和交易所技术


雅各布·洛夫莱斯


我曾经是一名高频交易员。在美好的几年里,我领导了一群才华横溢的工程师和数学家,我们一起在电子市场上交易,并将系统推向了其能力的极限。

HFT(高频交易)系统以惊人的速度运行和发展。与市场数据速率的指数级增长和所需延迟的对数衰减相比,摩尔定律显得微不足道。例如,在六个月的时间里,功能性交易系统的要求从“从行情变动到交易”的250微秒延迟降至50微秒。 为了便于理解,50微秒是现代固态驱动器的访问延迟。

我也是交易所技术的前任和现任开发者。交易所是高频交易的焦点,电子买家和卖家在这里复杂的系统和网络中匹配,以确定全球资产的价格。我认为,在交易所业务中开发和维持竞争优势的计算挑战是计算机科学中最困难的挑战之一,特别是系统编程。为了让您感受一下规模,当前的交易所技术在每晚的构建中进行基准测试,以每秒100万条消息的速度运行一系列模拟市场数据馈送,作为单元测试。在交易所开发中,不存在过早优化这种说法,因为每一周期都很重要。

本文的目标是介绍导线两端的问题。如今,华尔街的大型交易员更有可能拥有加州理工学院或麻省理工学院的博士学位,而不是哈佛大学或耶鲁大学的工商管理硕士学位。现实情况是,自动化交易是新的市场,估计占英国市场交易量的77%,美国市场交易量的73%。作为一个社区,它开始突破物理学的极限。如今,可以购买定制的 ASIC(专用集成电路)来解析市场数据并在 740 纳秒(或 0.00074 毫秒)内发送执行指令。4 (人类对视觉刺激的反应时间约为 1.9 亿纳秒。)

关于高频交易的本特刊中其他两篇文章的第一篇中,萨莎·斯托伊科夫和罗尔夫·韦伯解释了单程算法在金融中的作用。这些算法在整个行业中被使用,因为它们提供了一种简单而快速的方法来计算有用的统计数据(例如,两个数据流之间的相关性)。单程算法也更容易在硬件(使用 Verilog 或 VHDL)中实现,因为与历史事件向量相比,它们只需要少量内存。

在另一篇文章中,斯蒂芬·斯特罗韦斯讨论了一种从数据包头估计 RTT(往返时间)延迟的方法。估计 RTT 对于高频交易公司和交易所来说都是一个关键问题,这里提出的方法解决了一个有趣的问题,即当您无法在每个接口或导线的另一侧安装分路器时。

我在高频交易的时光

当我刚开始从事高频交易时,这是一个非常不同的世界。在 2003 年,高频交易在美国股票以外的领域仍处于起步阶段,美国股票在两年前受到十进制化监管,要求证券交易所以十进制而不是分数报价股票价格。交易所的这种十进制化将最小股票跳动价位(最小价格增量)从 1/16 美元更改为每股 0.01 美元。这意味着“一夜之间,做市商(以电子方式报价买卖证券的人)在买入价和卖出价之间可以赚取的最小价差从 6.25 美分...压缩到 1 美分。”5

这导致美国股票型高频交易公司的收入爆炸式增长,因为它们是唯一能够通过执行大量交易量以如此小的增量利润率运营的公司。就像电影《超人 III》的剧情一样,高频交易公司可以通过每天数百万次地收集几分钱(或几分之一美分)来接管美国做市业务。 然而,我没有交易股票;我交易的是期货和债券。我身处一家大型华尔街合伙公司内部,正在处理电子化但超出普通算法公司范围的市场。 这很重要,因为它意味着我们可以从一个易于实现的目标开始:构建一个自动化做市系统,该系统在3.2 GHz至强 (130 纳米) 上在 10 毫秒内执行交易。到 2004 年,这个时间缩短了一半至 5 毫秒,我们配备了3.6 GHz诺科纳处理器。到 2005 年,我们正在接近1 毫秒的延迟套利障碍,并且已经深入到超频世界。我记得为了突破全新的惠普服务器,试图在空气冷却下突破4.1 GHz障碍,结果把它搞坏了。

到 2005 年,大多数公司也在修改内核和/或运行实时内核。我在 2005 年底离开了高频交易行业,并在 2009 年重返,却发现世界正走向荒谬:到 2009 年,我们被要求在1 毫秒障碍以下良好运行,并且正在考虑250 微秒的从行情变动到交易

要求。从行情变动到交易是指执行以下操作所需的时间:

1. 在网络接口接收数据包。

2. 处理数据包并运行交易的业务逻辑。

3. 在网络接口上发回交易数据包。

为了做到这一点,我们使用了带有旁路驱动程序的实时内核(InfiniBand 或通过 Solarflare 的Onload 技术)。在我的公司,我们开始在交换机本身上实现功能(Arista 交换机是基于 Linux 的,我们拥有 root 访问权限)。我们一定不是唯一在交换机上实现自定义代码的人,因为不久之后,Arista 就推出了一款24 端口交换机,该交换机带有内置FPGA(现场可编程门阵列)。1 FPGA 在交易中变得越来越常见——尤其是在市场数据处理不断涌入的

处理任务时。与所有伟大的技术一样,随着时间的推移,使用它变得更容易,从而可以构建越来越复杂的系统。到 2010 年,进入高频交易的门槛开始降低,因为过去几年开发的许多更深奥的技术变得商业化。 策略开发,或者大数据市场数据市场数据分析问题就是一个很好的例子。Hadoop 在许多高频交易公司中并不常见,但分布式数据挖掘领域人才的涌入意味着许多产品变得更容易获得。软件公司(通常由前高频交易员创办)现在正在为消息传递、捕获和网络提供出色的解决方案。也许是由于进入门槛不可避免地降低,到 2010 年,高频交易变得明显更加困难。当时我们的大多数模型都以三到六个月的半衰期

运行。

高频交易技术栈

以下是现代高频交易堆栈的高级概述。它被分解为组件,尽管在许多公司中,这些组件被封装在单个硬件(FPGA)中。

托管

高频交易的第一步是将系统放置在交易所所在的位置。光在光纤中传播 10,000 米需要 49 微秒,这在许多情况下就是全部可用时间。在纽约,您至少需要在六个数据中心进行托管,才能在股票交易中具有竞争力。在其他资产(例如,外汇)中,您在纽约只需要一到两个,但在伦敦可能需要一个,在芝加哥可能也需要一个。 托管问题看起来很简单:

1. 联系数据中心。

2. 协商合同。

3. 盈利。

然而,细节才是第一个系统问题出现的地方。房地产极其昂贵,电力成本是压在底线上的巨大力量。一个17.3 千瓦机柜每月运行成本为 14,000 美元。7 假设一个适度的高频交易服务器功耗为 750 瓦,17 千瓦可以供 23 台服务器使用。 确保您获得正确的托管也很重要。在许多市场中,同一栋大楼内的电缆长度都是竞争优势。 纽约证券交易所(NYSE)位于新泽西州马瓦的数据中心等一些设施都有成卷的光纤,因此每个机笼都具有完全相同的光纤长度,连接到交易所机笼。3

网络

服务器托管后,需要连接起来。传统上,这是通过两种方法完成的:数据中心交叉连接(单模或多模光纤)和跨数据中心广域网链路。

交叉连接和 NAT。 数据中心内部有多个交易所或市场数据数据源。每个端点都必须符合交易所传输网络。这是一个简单的 NAT(网络地址转换)问题,可以在交换机级别解决,如图 1 所示。多家供应商(例如,Arista2)提供基于硬件的端口级 NAT。对于某些市场(例如,外汇),单个数据中心内可能有多达 100 个此类 NAT 端点。

HFT: Using NAT to Conform to the Exchange Transit Network

内部 NAT 问题的关键是交易的核心性质:相关的突发。这些突发是使高频交易网络异常困难的原因。图 2 是一个内部监控应用程序的屏幕截图,显示了每秒数据包速率,用于(少量)一起移动的符号集合。ISM(供应管理协会)制造业综合指数是一个扩散指数,根据对大约 300 家全国性制造公司的采购经理进行的月度调查的 11 个子成分中的 5 个计算得出。在 EDT 时间 14:00,ISM 公告发布,并发生突发。像这样的突发很常见,并且每天发生多次。

HFT: Monitoring a Packet Burst

随着世界变得更加互联互通,资产在电子上更加紧密地联系在一起,这些突发可能来自任何地方。英国就业的变化肯定会影响美元/英镑汇率(货币汇率就像相对信用强度)。这反过来又影响了电子美国国债市场,而电子美国国债市场本身又影响了期权市场(我们计算中的无风险利率发生了变化)。期权的变化导致大规模ETF(交易所交易基金)的变化。ETF 的价值不能大于其成分的总和(例如,SPDR 标普 500 指数),因此基础股票必须发生变化。因此,伦敦的就业状况将影响 DLTR(美元树)的价格,而美元树在北美之外没有一家门店——这真是一个错综复杂的网络。

广域网链路。 在数据中心之外,系统需要广域网链路。传统上,高频交易公司运行两组链路,如图 3 所示:一个高吞吐量路径和一个较低吞吐量 快速路径。对于高吞吐量路径,首选私有点对点 光纤——10GbE(千兆以太网)。对于快速路径,每个位置都允许选择。在纽约都会区,毫米波和微波解决方案都可用。这些技术在高频交易快速路径链路中很常见,因为较低的折射率可以实现更低的延迟。

HFT: WAN Links: High-Throughput Path and Lower-Throughput Path

行情馈送处理器

行情馈送处理器通常是高频交易组要实现的第一个代码位。如图 4 所示,行情馈送处理器订阅市场数据行情馈送,解析行情馈送,并构建“干净”的订单簿。这传统上是在 FPGA 上实现的,现在已成为行业的商品 (http://www.exegy.com)。 大多数美国股票的行情馈送处理器都能够解析多个市场数据行情馈送,并在不到 25 微秒的时间内构建合并后的订单簿。

HFT: Feed Handler Parsing Market-Data Feeds

行情服务

行情服务是负责根据内部系统的订阅参数市场数据(基于主题的订阅)将行情馈送分发到内部系统的系统组件,如图 5 所示。在这些场景中,行情服务就像一个微型的 Twitter,多个应用程序订阅不同的主题(市场数据流)。

HFT: Tickerplant Distributing Market-Data Feeds

除了管理基于主题的订阅外,高级行情服务通常还维护每个工具的近期更新缓存(以赶上订阅者),计算基本统计数据(例如,移动五分钟 成交量加权平均价格),并提供更复杂的聚合主题(例如,基于 500 种基础证券总和的指数值)。

低延迟应用

以我的经验,大多数高频算法在概念上都相当简单——但它们的成功很大程度上取决于它们与市场互动的速度以及您对导线上的信息的确定程度。 以下是一个简单的模型(大约在 2005 年),该模型需要越来越快的实现才能继续产生回报。

首先,让我们回顾一些术语。图 6 显示了订单簿的前两层。订单簿分为两边:买单(人们愿意买入的价格);以及卖单报价(人们愿意卖出的价格)。队列由价格范围内的各个订单组成。

HFT: The Order Book

队列生命周期:到达队列前端

订单以先进先出 的方式执行(在大多数市场中)。在描述单个队列中单个订单的生命周期时,我们通常说 X 在前面,而 Y 在后面。更一般地说,我们说我们处于队列的前 X% 位置。这称为队列位置。图 7 显示了订单在最后一个时间步长位于队列中间:订单前面有六股,后面有八股。订单在队列中的时间越长,就越有可能到达队列前端。订单到达队列前端的速度是两个因素的函数:交易速率(交易将订单从队列前端移除);以及其他订单的取消率。交易速率

HFT: The Queue Position

交易速率有些难以估计,但是订单被执行的概率与其队列大小与相反队列大小的比率(例如,买单队列大小与卖单队列大小)之间存在明显的关联。这在图 8 中显示为 pUP。

取消率

HFT: The Trading Rate

如果说交易速率很难估计,那么取消率就更难了。问题是,鉴于您在队列中的位置,取消来自您前面的概率是多少(从而使您能够向上移动)?这非常难以估计,但是我们自己的交易和一些历史数据为工程估算提供了基础。

首先,我们知道,如果我们位于队列的末尾,则取消来自我们前面的概率为 100%。如果我们位于队列的前端,则概率为 0%。

图 9 是一个图表,显示了取消发生在您的订单前面的经验百分比;它是队列中位于您后面的订单百分比的函数。 例如,如果您在

x 轴上位于 0,那么您就位于队列的最前端,并且取消必须来自您后面。关键的结论是:您的订单越接近队列前端,位于您前面的订单取消的可能性就越小(因此您的进展速度会减慢)。

HFT: The Empirical Cancel Rate

我们经常说您通过两种方法到达队列前端:晋升,即二级队列变成一级队列,以及加入,顾名思义,即加入新创建的队列。图 10 说明了晋升和加入之间的区别。

HFT: Two Methods of Getting to the Front of the Queue

利润和大型队列

如果您的订单在大型队列中执行,那么您就有一个免费的选择权来收取价差。如果您的一个相反队列的订单被执行,那么您将收取您买入资产的价格(买单方 9 美元)与您卖出资产的价格(卖单方 10 美元)之间的差额。

如果执行您的订单的队列变得太小,您可以攻击位于您后面的订单。这意味着跨越买入价/卖出价差并强制进行交易。 如果您被动执行,您将被队列中另一个订单攻击。只要另一个订单在您后面,您就可以解除交易,这意味着您可以攻击后面的订单。

积极解除交易称为刮擦交易。您没有赚取价差;您也没有损失价差。这是一个零和交易。

交易所技术

交易所是系统的集合,这些系统促进在集中控制和管理的服务中电子执行资产。如今,交易所正在努力为其客户提供更快、更快的交易,他们面临着与他们较新的高频交易客户相同的一些延迟问题。

托管

对于交易所而言,托管可能是一个宝贵的收入来源。更多老牌交易所运营自己的数据中心(例如,纽约证券交易所和纳斯达克证券交易所),客户直接向交易所支付托管费。较新的交易所必须托管在第三方数据中心中,这些数据中心容纳金融客户(例如,位于新泽西州锡考克斯的 Equinix NY4)。

当交易所在第三方托管设施内部运营时,它们与高频交易同行一样需要承担电力和冷却成本。因此,许多交易所专注于使用标准 x86 设计交付高吞吐量系统。

网络

交易所网络与高频交易网络一样具有挑战性,但也更注重安全性。信息套利,或获取并非直接针对接收者的市场信息的行为,是一个主要问题。信息套利的一个例子是交易所参与者“窥探”线路以读取来自其他参与者的数据包。通过为每个客户端部署 VLAN,可以轻松阻止这种做法。

大多数交易所仍然在边缘部署 1GbE。这既是历史的函数(交易所的变更管理是一个漫长的过程),也是实用性的函数。通过部署 1GbE 边缘网络,交易所可以在一定程度上保护自己免受消息冲击,方法是限制入站带宽并增加细微的转码命中率。例如,1GbE Arista 7048 的延迟为三微秒,用于64 字节帧,而 7150 (10GbE) 上相同帧的延迟为350 纳秒

网关

网关是客户端流遇到的第一个交易所子系统。多年来,网关不断发展以承担更多责任,但其核心功能是充当行情馈送处理器和行情服务。网关接收客户端的交易请求(历史上采用 FIX 格式,但随着延迟变得至关重要,交易所已切换到专有的二进制协议)。然后,它将请求转换为更高效的内部协议,并将请求路由到适当的基础交易所匹配引擎。

网关还充当错误交易的第一道防线。例如,如果客户尝试以 5,000 美元的价格购买 AAPL(而 AAPL 的报价为 461 美元),则网关可以拒绝该订单。

市场数据网关

传统上,订单网关(接收客户端交易请求)和市场数据网关(分发市场数据行情馈送)是两个独立的系统,通常也是两个独立的网络。 对于市场数据分发,两种方法很常见:用于托管客户的 UDP(用户数据报协议)多播,以及用于非托管客户的 TCP(传输控制协议)。此处也进行了自定义(例如,纳斯达克的 SoupTCP9)。在某些市场(例如,外汇)中,所有市场数据都通过 FIX(金融信息交换)中的 TCP 分发。对于其他市场,数据通常通过 UDP 以二进制格式或易于解析的文本格式分发。主要的两种二进制格式是 ITCH6 和 OUCH,8 两者都牺牲了灵活性(固定长度偏移量)以换取速度(非常简单的解析)。

网关通常在客户之间共享,因为每个交易所参与者都配备一个网关可能需要巨大的数据中心占用空间。因此,必须密切监控网关是否存在恶意操纵。网关“游戏”的一个示例在图 11 中显示。在图 11a 中,客户端

HFT: Gaming the Gateway

A 连接到两个不同的网关。在 11b 中,客户端 A 对网关 1 施加极端负载,导致客户端 B 的流量减慢。在 11c 中,未处于负载状态的网关 1 减慢了客户端 B 取消静止市场的所有尝试。客户端 A 在自制的快速路径方面具有优势。

匹配引擎

匹配引擎是交易所的核心,并且像其高频交易同行一样相当简单。如图 12 所示,匹配引擎是一个简单的队列管理系统,具有买单队列和卖单队列。当客户尝试针对队列执行交易时,交易所会搜索队列,直到达到请求的大小,然后从队列中删除这些订单。

HFT: Matching Engine

困难之处在于确定谁先收到通知。攻击方在收到确认之前,(肯定地)不知道它已交易了 10,000 股。被动方在收到确认之前,不知道他们已被执行交易。最后,在市场数据发布新队列之前,整个市场都不知道已发生交易。随着我们从毫秒级移动到微秒级再到纳秒级,此类问题正变得越来越难以解决。

结论

交易高频世界为计算机科学家提供了丰富的问题,但它对于新的自动化交易市场至关重要,而自动化交易市场占当今金融市场交易的大部分。随着高频交易从毫秒级发展到微秒级再到纳秒级,问题变得越来越难以解决,技术必须努力跟上。

参考文献

1. Arista Networks. 7124FX 应用交换机; http://www.aristanetworks.com/en/products/7100series/7124fx/7124fx-development

2. Arista Networks; 7150 系列 1/10 GbE SFP超低延迟交换机; http://www.aristanetworks.com/en/products/7150-series/7150-datasheet

3. CBS 新闻。2010 年。纽约证券交易所的机器人交易员。六十分钟超时; http://www.cbsnews.com/video/watch/?id=6942497n&tag=related;photovideo

4. 米勒,M. 2011 年。“闪电般快速”的未来交易员以纳秒为单位工作。BBC 新闻; http://www.bbc.co.uk/news/business-15722530

5. 莫耶,L.,兰伯特,E. 2009 年。华尔街的新主人。《福布斯》(9 月 21 日) 40-46; http://www.forbes.com/forbes/2009/0921/revolutionaries-stocks-getco-new-masters-of-wall-street.html.

6. 纳斯达克证券交易所。2013 年。纳斯达克TotalView-ITCH4.1; http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/nqtv-itch-v4_1.pdf

7. 纳斯达克证券交易所。OMX托管; http://app.qnasdaqomx.com/e/es.aspx?s=453941583&e=9032&elq=4824c6a202f34d00a5e586d106f64cc8.

8. 纳斯达克证券交易所。2012 年。OUCH 版本 3.1; http://www.nasdaqtrader.com/content/technicalsupport/specifications/TradingProducts/NQBX_OUCH3.1.pdf

9. 纳斯达克证券交易所。SoupTCP; http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/souptcp.pdf

喜欢还是讨厌?请告诉我们
[email protected]

雅各布·洛夫莱斯Lucera 的首席执行官

© 2013 1542-7730/13/0800 $10.00

acmqueue

最初发表于 Queue vol. 11, no. 8
数字图书馆 中评论这篇文章





更多相关文章

凯瑟琳·海耶斯,大卫·马龙 - 质疑评估非加密哈希函数的标准
虽然加密和非加密哈希函数无处不在,但它们的设计方式似乎存在差距。 针对各种安全要求,存在许多加密哈希的标准,但在非加密方面,存在一定的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。 虽然针对真实世界数据集的均匀分布非常有意义,但当面对具有特定模式的数据集时,这可能是一个挑战。


妮可·福斯格伦、埃里尼·卡利亚姆瓦库、阿比·诺达、米凯拉·格雷勒、布赖恩·豪克、玛格丽特-安妮·斯托里 - DevEx 实践
DevEx(开发者体验)在许多软件组织中越来越受到关注,因为领导者寻求在财政紧缩和人工智能等变革性技术的背景下优化软件交付。 直观地,技术领导者普遍认为良好的开发者体验能够实现更有效的软件交付和开发者幸福感。 然而,在许多组织中,旨在改进 DevEx 的拟议举措和投资难以获得支持,因为业务利益相关者质疑改进的价值主张。


若昂·瓦拉尧、安东尼奥·特里戈、米格尔·阿尔梅达 - 低代码开发生产力
本文旨在通过展示使用基于代码、低代码和极限低代码技术进行的实验室实验结果来研究生产力差异,从而为该主题提供新的见解。 低代码技术已明确显示出更高的生产力水平,为低代码在短期/中期内主导软件开发主流提供了强有力的论据。 本文报告了程序和协议、结果、局限性和未来研究的机会。


伊瓦尔·雅各布森、阿里斯泰尔·科伯恩 - 用例至关重要
虽然软件行业是一个快节奏且令人兴奋的世界,其中不断开发新的工具、技术和技巧来服务于商业和社会,但它也很健忘。 在其快速前进的步伐中,它容易受到时尚潮流的影响,并且可能会忘记或忽略一些其面临的永恒问题的行之有效的解决方案。 用例于 1986 年首次引入,后来普及,是这些行之有效的解决方案之一。





© 保留所有权利。

© . All rights reserved.