当今最先进的 HFT 交易系统有多快?

Posted

技术标签:

【中文标题】当今最先进的 HFT 交易系统有多快?【英文标题】:How fast is state of the art HFT trading systems today? 【发布时间】:2013-06-19 19:30:12 【问题描述】:

您总是听说高频交易 (HFT) 以及算法的速度有多快。但我想知道 - 这些天什么东西快?

更新

我考虑的不是交易所和运行交易应用程序的服务器之间的物理距离造成的延迟,而是程序本身引入的延迟。

更具体地说:从事件到达应用程序中的线路到该应用程序在线路上输出订单/价格的时间是多少? IE。 即时交易时间。

我们说的是亚毫秒吗?还是亚微秒?

人们如何实现这些延迟?在汇编中编码? FPGA?古老的 C++ 代码?

更新

最近发表了一篇关于 ACM 的有趣文章,详细介绍了当今的 HFT 技术,非常值得一读:

Barbarians at the Gateways - High-frequency Trading and Exchange Technology

【问题讨论】:

嗯,好问题!现在我真的很想知道这个! “在线上”是一种模糊的边界。一个完整的数据包到达需要时间,并且在接收到整个消息之前,一些处理可能已经开始。在内存系统、内核和应用程序的不同层中,一切都存在偏差,人们正在密切关注这种偏差。 感谢您的洞察力。有趣的!你能提供更多细节或例子吗? 大部分延迟通常用于网络 I/O。一个好的网络库应该能够处理具有低个位数微秒延迟的 UDP/TCP。这里有some benchmarks你可以查看。 【参考方案1】:

我是一家制造和销售基于 FPGA 的 HFT 系统的小公司的 CTO。在 Solarflare Application Onload Engine (AOE) 之上构建我们的系统,我们一直在提供从线上“有趣”市场事件(来自 ICE 或 CME 的 10Gb/S UDP 市场数据馈送)到第一个字节的延迟。生成的订单消息在 750 到 800 纳秒范围内(是的,亚微秒)到达线路。我们预计我们的下一个版本系统将在 704 到 710 纳秒范围内。有些人声称的数量略少,但那是在实验室环境中,而不是真正坐在芝加哥的 COLO 并清算订单。

关于物理学和“光速”的 cmets 是有效的,但不相关。每个认真对待 HFT 的人都将他们的服务器放在交易所服务器旁边房间的 COLO 中。

要进入这个亚微秒级域,除了向 FPGA 提供策略实现命令外,您无法在主机 CPU 上做很多事情,即使使用内核旁路等技术,您也有 1.5 微秒的不可避免的开销......所以在这个域中,一切正在玩 FPGA。

其他答案之一非常诚实地说,在这个高度保密的市场中,很少有人谈论他们使用的工具或他们的表现。我们的每一位客户都要求我们甚至不要告诉任何人他们使用我们的工具,也不要透露任何关于他们如何使用这些工具的信息。这不仅使营销变得困难,而且确实阻碍了同行之间技术知识的良好流动。

由于需要进入市场“极速”部分的奇异系统,您会发现 Quants(提出我们快速运行的算法的人)正在将他们的算法划分为事件-响应时间层。在技​​术堆的最顶端是亚微秒系统(如我们的)。下一层是大量使用内核绕过的自定义 C++ 系统,它们在 3-5 微秒范围内。下一层是那些负担不起在 10Gb/S 线路上仅从“交换机”跳出一个路由器的人,他们可能仍在 COLO,但由于我们称之为“端口轮盘赌”的讨厌游戏,他们在几十到几百微秒的域。一旦进入毫秒,它几乎不再是 HFT。

干杯

【讨论】:

Brian,您可能想知道,幸运的是您的链接网址无法正常工作。 Mercury-Minerva:这里的“港口轮盘赌”是什么意思? “端口轮盘赌”是指在并非所有端口与源服务器和/或相同网络的跳距相同的环境中,由交易所为客户分配端口硬件。当您请求一个新端口时,无论您获得的端口是否具有良好的延迟,都是一场赌博(“轮盘赌”部分)。 @Mercury-Minerva,您提到“线上“有趣”市场事件的延迟和 FPGA。 I was wondering 是否有面向字节的以太网 NIC 来避免典型的一次帧 NIC 强制的 1 帧延迟(在 10GbE 中至少为 67 ns)。你知道吗? 如果将您的计算机连接到交易所计算机的电缆长度为 1 米,则信号至少需要 3.3 纳秒才能到达另一端。当你谈论 700 纳秒时它没有意义,当你谈论 10 时它才有意义。【参考方案2】:

您收到了非常好的答案。但是,有一个问题 - 大多数算法交易都是秘密的。你根本不知道它有多快。这是双向的——有些人可能不会告诉你他们工作的速度有多快,因为他们不想。其他人可能,比方说“夸大”,原因有很多(吸引投资者或客户,其中之一)。

例如,关于皮秒的谣言是相当离谱的。 10纳秒和0.1纳秒是完全一样的,因为订单到达交易服务器的时间远不止于此。

而且,最重要的是,尽管不是您所要求的,但如果您尝试通过算法进行交易,请不要试图变得更快,而要变得更聪明。我见过非常好的算法,可以处理整秒的延迟并赚很多钱。

【讨论】:

我会接受你的回答,因为我认为它有关键的见解,但将赏金奖励给 sll,因为他提供了关于赏金描述的最佳答案。谢谢。 对于 2014 年 - 检查 goo.gl/3fxqQU 以获得更小设置的描述。 10 nanoseconds and 0.1 nanoseconds are exactly the same thing, because the time it takes for the order to reach the trading server is so much more than that. 这是 6 年前的评论,我认为从那以后情况发生了变化。毕竟,重要的是交易者指令与竞争对手相比的相对顺序。对于任何好奇的人,您可以查看有关反应时间的一些统计数据(2018,2019)here。【参考方案3】:

描述 HFT 状态的好文章(2011 年)并提供了一些可实现纳秒级的硬件解决方案示例:Wall Streets Need For Trading Speed: The Nanosecond Age

随着最低“延迟”竞赛的继续,一些市场 参与者甚至在谈论皮秒——万亿分之一 第二。

编辑:正如Nicholas 所提:

链接提到了一家公司,Fixnetix,它可以“准备交易” 740ns(即从输入事件发生到订单被执行的时间 已发送)。

【讨论】:

【参考方案4】:

“低于 40 微秒”,如果你想跟上纳斯达克。这个数字在这里发布 http://www.nasdaqomx.com/technology/

【讨论】:

你能提供更具体的链接吗?【参考方案5】:

就其价值而言,TIBCO's FTL messaging product 在一台机器(共享内存)内低于 500 ns,而在数据中心内使用 RDMA(远程直接内存访问)只需几微秒。在那之后,物理就成了方程式的主要部分。

这就是数据从提要传输到做出决策的应用程序的速度。

至少有一个系统声称大约 30ns 的线程间消息传递,这可能是一个调整后的基准,所以任何谈论较低数字的人都在使用某种神奇的 CPU。

一旦您进入应用程序,问题就在于程序可以多快做出决策。

【讨论】:

【参考方案6】:

如今,以微秒为单位的单位数字滴答交易是具有竞争力的高频交易公司的标准。您应该能够仅使用软件完成高个位数。然后

【讨论】:

【参考方案7】:

这里的每一个答案都至少有四年的历史,我想我会在 2018 年从高频交易/算法交易领域的某个人那里分享一些观点和经验。

(这并不是说这些答案中的任何一个都很差,因为它们绝对不是,但是我认为有必要提供有关最新主题的见解。

直接回答第一个问题:我们所说的大约是十亿分之一秒(300 纳秒)。回想一下,这是程序本身引入的延迟。

公司之间在系统延迟方面总会存在一些差异,但我要提供的数字是内部 HFT 引擎延迟的常用值。

    如您在问题中所述,平均而言,三分之一的时间(300 纳秒)归因于延迟由程序引入。 剩下的时间是由于协同定位和与交换、匹配引擎、光纤等相关的其他变量而存在的延迟。

问题是关于高频交易系统有多快,以及就所涉及的硬件而言,基础设施是什么样的。自 2014 年以来,该技术取得了进步,但与该领域的大量文献讨论相反,FPGA 不一定是 HFT 领域大玩家的首选。像Intel 和Nvidia 这样的大公司将用他们的专业硬件来迎合这些公司,以确保他们从交易系统中获得他们需要的一切。显然,英特尔的系统将更多地围绕 CPU 和 CPU 执行的最佳计算类型构建,而英伟达的系统将更加面向 GPU。

对于现场可编程门阵列 (FPGA) 上的系统,通常使用 Verilog 和 VHDL 等语言。然而,即使对于 FPGA 系统,也不是所有的东西都在汇编中,其中大部分都是高度优化的 C++ 和嵌入式内联汇编,这就是速度的来源。请注意,对于使用各种硬件(FPGA、专用英特尔系统等)的公司来说,情况就是如此。

不幸的是,top answer here 声明了一些完全错误的东西:

10纳秒和0.1纳秒是完全一样的,因为订单到达交易服务器的时间远不止于此。

这是完全错误的,因为高频交易的托管方面已经完全标准化了。 每个人都和你一样接近匹配引擎,因此系统的内部延迟非常重要。

【讨论】:

【参考方案8】:

根据Wikipedia page on High-frequency trading,延迟为微秒:

自 1999 年美国证券交易委员会 (SEC) 于 1998 年授权电子交易所之后,高频交易就已经开始了。在 21 世纪之交,高频交易的执行时间只有几秒钟,而到 2010 年,这已经减少到毫秒甚至微秒。

【讨论】:

2010 - 那是三年前的事了!在这个空间里,这是永恒的 :-) 我们现在可能处于纳秒范围内。此外,如果有人“从内部”透露一些数据,那就太好了。即使它只是 2012 年的旧版本 :)【参考方案9】:

它永远不会低于几微秒,因为 em-w/light 的速度限制,只有少数幸运儿,必须在一公里以外,甚至梦想接近那个。

另外,没有编码,要达到那个速度,你必须去物理..(这篇文章的人用 300ns 开关;那只是那个开关增加的延迟!;等于 90m 通过光学和铜少一点)

【讨论】:

对,很多公司把硬件放在距离库存 10 米而不是公里的地方 好吧,如果我们正在玩那个游戏,为什么不花钱在股票主要集线器上安装应用程序.. 或者甚至为负责实时更新的所有内核添加补丁.. 我认为这已经有点矫枉过正了 毫无疑问,过度杀伤在这里有效。但是有真正的钱可以赚,我相信有些人会为了实现最低延迟而采取极端措施。 你不能在距离证券交易所服务器 10 米的地方有很多硬件,那里没有太多空间...... 多年来,同居是新常态。 FPGA 在硬件中运行算法交易者。

以上是关于当今最先进的 HFT 交易系统有多快?的主要内容,如果未能解决你的问题,请参考以下文章

浏览复杂版本控制系统历史的最先进的用户界面是啥?

设计实用的库存管理系统到底可以有多快?

nodeJS有多快

对于世界上最先进的开放源码的数据库系统postgresql,你了解多少?

应用上云可以有多快?

云非币 采用全部数据信息加密形式,从软件建设交易订单和隐私管理等方面运用业内最先进稳定的技术,确保