我曾经是一名
HFT
我也是交易所技术的前任和现任开发者。交易所是高频交易的焦点,电子买家和卖家在这里复杂的系统和网络中匹配,以确定全球资产的价格。我认为,在交易所业务中开发和维持竞争优势的计算挑战是计算机科学中最困难的挑战之一,特别是系统编程。为了让您感受一下规模,当前的交易所技术在每晚的构建中进行基准测试,以每秒100万条消息的速度运行一系列模拟市场数据馈送,作为单元测试。在交易所开发中,不存在过早优化这种说法,因为每一周期都很重要。
本文的目标是介绍导线两端的问题。如今,华尔街的大型交易员更有可能拥有加州理工学院或麻省理工学院的博士学位,而不是哈佛大学或耶鲁大学的工商管理硕士学位。现实情况是,自动化交易是新的市场,估计占英国市场交易量的77%,美国市场交易量的73%。作为一个社区,它开始突破物理学的极限。如今,可以购买定制的 ASIC(专用集成电路)来解析市场数据并在 740 纳秒(或 0.00074 毫秒)内发送执行指令。4 (人类对视觉刺激的反应时间约为 1.9 亿纳秒。)
在关于高频交易的本特刊中其他两篇文章的第一篇中,萨莎·斯托伊科夫和罗尔夫·韦伯解释了
在另一篇文章中,斯蒂芬·斯特罗韦斯讨论了一种从数据包头估计 RTT
当我刚开始从事高频交易时,这是一个非常不同的世界。在 2003 年,高频交易在美国股票以外的领域仍处于起步阶段,美国股票在两年前受到十进制化监管,要求证券交易所以十进制而不是分数报价股票价格。交易所的这种十进制化将最小股票跳动价位(最小价格增量)从 1/16 美元更改为每股 0.01 美元。这意味着“一夜之间,
这导致美国
到 2005 年,大多数公司也在修改内核和/或运行实时内核。我在 2005 年底离开了高频交易行业,并在 2009 年重返,却发现世界正走向荒谬:到 2009 年,我们被要求在
要求。从行情变动到交易是指执行以下操作所需的时间:
1. 在网络接口接收数据包。
2. 处理数据包并运行交易的业务逻辑。
3. 在网络接口上发回交易数据包。
为了做到这一点,我们使用了带有旁路驱动程序的实时内核(InfiniBand 或通过 Solarflare 的
处理任务时。
运行。
以下是现代高频交易堆栈的
高频交易的第一步是将系统放置在交易所所在的位置。光在光纤中传播 10,000 米需要 49 微秒,这在许多情况下就是全部可用时间。在纽约,您至少需要在六个数据中心进行托管,才能在股票交易中具有竞争力。在其他资产(例如,外汇)中,您在纽约只需要一到两个,但在伦敦可能需要一个,在芝加哥可能也需要一个。 托管问题看起来很简单:
1. 联系数据中心。
2. 协商合同。
3. 盈利。
然而,细节才是第一个系统问题出现的地方。房地产极其昂贵,电力成本是压在底线上的
服务器托管后,需要连接起来。传统上,这是通过两种方法完成的:
交叉连接和 NAT。 数据中心内部有多个交易所或
内部 NAT 问题的关键是交易的核心性质:相关的突发。这些突发是使高频交易网络异常困难的原因。图 2 是一个内部监控应用程序的屏幕截图,显示了
随着世界变得更加互联互通,资产在电子上更加紧密地联系在一起,这些突发可能来自任何地方。英国就业的变化肯定会影响美元/英镑汇率(货币汇率就像相对信用强度)。这反过来又影响了电子美国国债市场,而电子美国国债市场本身又影响了期权市场(我们计算中的
广域网链路。 在数据中心之外,系统需要广域网链路。传统上,高频交易公司运行两组链路,如图 3 所示:一个
行情馈送处理器通常是高频交易组要实现的第一个代码位。如图 4 所示,行情馈送处理器订阅
行情服务是负责根据内部系统的订阅参数
除了管理
以我的经验,大多数
首先,让我们回顾一些术语。图 6 显示了订单簿的前两层。订单簿分为两边:买单(人们愿意买入的价格);以及卖单或报价(人们愿意卖出的价格)。队列由价格范围内的各个订单组成。
订单以
取消率
首先,我们知道,如果我们位于队列的末尾,则取消来自我们前面的概率为 100%。如果我们位于队列的前端,则概率为 0%。
图 9 是一个图表,显示了取消发生在您的订单前面的经验百分比;它是队列中位于您后面的订单百分比的函数。 例如,如果您在
x 轴
我们经常说您通过两种方法到达队列前端:晋升,即
如果您的订单在大型队列中执行,那么您就有一个免费的选择权来收取价差。如果您的一个相反队列的订单被执行,那么您将收取您买入资产的价格(买单方 9 美元)与您卖出资产的价格(卖单方 10 美元)之间的差额。
如果执行您的订单的队列变得太小,您可以攻击位于您后面的订单。这意味着跨越买入价/卖出价差并强制进行交易。 如果您被动执行,您将被队列中另一个订单攻击。只要另一个订单在您后面,您就可以解除交易,这意味着您可以攻击后面的订单。
积极解除交易称为刮擦交易。您没有赚取价差;您也没有损失价差。这是一个
交易所是系统的集合,这些系统促进在集中控制和管理的服务中电子执行资产。如今,交易所正在努力为其客户提供更快、更快的交易,他们面临着与他们较新的高频交易客户相同的一些延迟问题。
对于交易所而言,托管可能是一个宝贵的收入来源。更多老牌交易所运营自己的数据中心(例如,纽约证券交易所和纳斯达克证券交易所),客户直接向交易所支付托管费。较新的交易所必须托管在
当交易所在
交易所网络与高频交易网络一样具有挑战性,但也更注重安全性。信息套利,或获取并非直接针对接收者的市场信息的行为,是一个主要问题。信息套利的一个例子是交易所参与者“窥探”线路以读取来自其他参与者的数据包。通过为每个客户端部署 VLAN,可以轻松阻止这种做法。
大多数交易所仍然在边缘部署 1GbE。这既是历史的函数(交易所的变更管理是一个漫长的过程),也是实用性的函数。通过部署 1GbE 边缘网络,交易所可以在一定程度上保护自己免受消息冲击,方法是限制入站带宽并增加细微的转码命中率。例如,1GbE Arista 7048 的
网关是客户端流遇到的第一个交易所子系统。多年来,网关不断发展以承担更多责任,但其核心功能是充当行情馈送处理器和行情服务。网关接收客户端的交易请求(历史上采用 FIX 格式,但随着延迟变得至关重要,交易所已切换到专有的二进制协议)。然后,它将请求转换为更高效的内部协议,并将请求路由到适当的基础交易所匹配引擎。
网关还充当错误交易的第一道防线。例如,如果客户尝试以 5,000 美元的价格购买 AAPL(而 AAPL 的报价为 461 美元),则网关可以拒绝该订单。
传统上,订单网关(接收客户端交易请求)和市场数据网关(分发
网关通常在客户之间共享,因为每个交易所参与者都配备一个网关可能需要巨大的
A 连接到两个不同的网关。在 11b 中,客户端 A 对网关 1 施加极端负载,导致客户端 B 的流量减慢。在 11c 中,未处于负载状态的网关 1 减慢了客户端 B 取消静止市场的所有尝试。客户端 A 在
匹配引擎是交易所的核心,并且像其高频交易同行一样相当简单。如图 12 所示,匹配引擎是一个简单的队列管理系统,具有买单队列和卖单队列。当客户尝试针对队列执行交易时,交易所会搜索队列,直到达到请求的大小,然后从队列中删除这些订单。
困难之处在于确定谁先收到通知。攻击方在收到确认之前,(肯定地)不知道它已交易了 10,000 股。被动方在收到确认之前,不知道他们已被执行交易。最后,在市场数据发布新队列之前,整个市场都不知道已发生交易。随着我们从毫秒级移动到微秒级再到纳秒级,此类问题正变得越来越难以解决。
交易
1. Arista Networks. 7124FX 应用交换机; http://www.aristanetworks.com/en/products/7100series/7124fx/7124fx-development。
2. Arista Networks; 7150 系列 1/10 GbE SFP
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 日)
6. 纳斯达克证券交易所。2013 年。纳斯达克
7. 纳斯达克证券交易所。OMX
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
最初发表于 Queue vol. 11, no. 8—
在 数字图书馆 中评论这篇文章
凯瑟琳·海耶斯,大卫·马龙 - 质疑评估非加密哈希函数的标准
虽然加密和非加密哈希函数无处不在,但它们的设计方式似乎存在差距。 针对各种安全要求,存在许多加密哈希的标准,但在非加密方面,存在一定的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。 虽然针对真实世界数据集的均匀分布非常有意义,但当面对具有特定模式的数据集时,这可能是一个挑战。
妮可·福斯格伦、埃里尼·卡利亚姆瓦库、阿比·诺达、米凯拉·格雷勒、布赖恩·豪克、玛格丽特-安妮·斯托里 - DevEx 实践
DevEx(开发者体验)在许多软件组织中越来越受到关注,因为领导者寻求在财政紧缩和人工智能等变革性技术的背景下优化软件交付。 直观地,技术领导者普遍认为良好的开发者体验能够实现更有效的软件交付和开发者幸福感。 然而,在许多组织中,旨在改进 DevEx 的拟议举措和投资难以获得支持,因为业务利益相关者质疑改进的价值主张。
若昂·瓦拉尧、安东尼奥·特里戈、米格尔·阿尔梅达 - 低代码开发生产力
本文旨在通过展示使用基于代码、低代码和极限低代码技术进行的实验室实验结果来研究生产力差异,从而为该主题提供新的见解。 低代码技术已明确显示出更高的生产力水平,为低代码在短期/中期内主导软件开发主流提供了强有力的论据。 本文报告了程序和协议、结果、局限性和未来研究的机会。
伊瓦尔·雅各布森、阿里斯泰尔·科伯恩 - 用例至关重要
虽然软件行业是一个快节奏且令人兴奋的世界,其中不断开发新的工具、技术和技巧来服务于商业和社会,但它也很健忘。 在其快速前进的步伐中,它容易受到时尚潮流的影响,并且可能会忘记或忽略一些其面临的永恒问题的行之有效的解决方案。 用例于 1986 年首次引入,后来普及,是这些行之有效的解决方案之一。