48

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

更新

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

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

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

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

更新

最近发表了一篇关于 ACM 的有趣文章,提供了当今 HFT 技术的大量细节,值得一读:

网关处的野蛮人 - 高频交易和交易技术

4

9 回答 9

49

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

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

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

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

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

干杯

于 2014-02-27T23:00:42.370 回答
24

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

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

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

于 2013-07-02T06:09:21.217 回答
6

很好的文章,描述了 HFT 的状态(2011 年),并提供了一些可以实现纳秒的硬件解决方案示例:华尔街需要交易速度:纳秒时代

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

编辑:正如尼古拉斯亲切地提到的:

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

于 2013-07-01T09:03:06.070 回答
5

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

于 2013-07-01T08:32:27.860 回答
3

就其价值而言,TIBCO 的 FTL 消息传递产品在一台机器(共享内存)内的速度低于 500 ns,而在数据中心内使用 RDMA(远程直接内存访问)则只需几微秒。在那之后,物理学成为方程式的主要部分。

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

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

进入应用程序后,问题只是程序可以多快做出决策。

于 2013-07-02T06:17:03.810 回答
2

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

于 2014-01-29T16:02:51.920 回答
2

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

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

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

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

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

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

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

然而不幸的是,这里的最佳答案陈述了一些完全错误的东西:

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

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

于 2018-07-19T04:52:38.760 回答
1

根据高频交易的维基百科页面,延迟为微秒:

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

于 2013-06-22T22:53:44.807 回答
0

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

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

于 2013-07-01T09:11:09.153 回答