你一直听说高频交易(HFT)以及算法的速度有多快。但我想知道 - 这几天有多快?
更新
我不是在考虑交换机与运行交易应用程序的服务器之间的物理距离造成的延迟,而是由程序本身引入的延迟。
更具体一点:从应用程序到达应用程序的事件到该应用程序的时间是什么时候在线路上输出订单/价格?即 tick-to-trade 时间。
我们在谈论亚毫秒吗?还是亚微秒?
人们如何实现这些延迟?在汇编中编码? FPGA的?古老的C ++代码?
更新
最近发表了一篇关于ACM的有趣文章,为今天的HFT技术提供了很多细节,这是一个很好的读物:
Barbarians at the Gateways - High-frequency Trading and Exchange Technology
答案 0 :(得分:45)
我是一家制造和销售基于FPGA的HFT系统的小公司的首席技术官。在Solarflare应用程序上载引擎(AOE)的基础上构建我们的系统,我们一直在通过线路上的“有趣”市场事件(来自ICE或CME的10Gb / S UDP市场数据馈送)到第一个字节之间提供延迟。结果订单消息在750到800纳秒的范围内击中电线(是的,亚微秒)。我们预计我们的下一版本系统将在704到710纳秒范围内。有些人声称略少,但这是在实验室环境中而不是真正坐在芝加哥的COLO并清理订单。
关于物理学和“光速”的评论是有效的,但不相关。每个认真对待HFT的人都将他们的服务器放在交换机服务器旁边的房间里的COLO上。
要进入这个亚微秒域你不能在主机CPU上做很多事情,除了对FPGA的进给策略实现命令,即使使用像内核旁路这样的技术你有1.5微秒的不可避免的开销......所以在这个域中一切正在玩FPGA。
其他一个答案非常诚实地说,在这个高度神秘的市场中,很少有人谈论他们使用的工具或他们的表现。我们的每一位客户都要求我们甚至不告诉任何人他们使用我们的工具,也不会透露他们如何使用它们。这不仅使营销变得困难,而且确实阻碍了同行之间技术知识的良好流动。
由于需要进入市场中“邪恶的快速”部分的异域系统,你会发现Quants(那些提出快速算法的人)将他们的算法分成了事件 - 响应时间层。在技术堆的最顶端是亚微秒系统(就像我们的)。下一层是大量使用内核旁路的自定义C ++系统,它们在3-5微秒范围内。下一层是人们无法承受10Gb / S线路上只有一个路由器从“交换机”跳,他们可能仍然在COLO的但是因为一个令人讨厌的游戏,我们称之为“端口轮盘”,他们在数十到数百微秒的域。一旦进入毫秒级,它几乎不再是HFT。
干杯
答案 1 :(得分:24)
你收到了非常好的答案。但是有一个问题 - 大多数谈判都是秘密的。你根本不知道它有多快。这有两个方面 - 有些人可能不会告诉你他们有多快,因为他们不想这样做。其他人可能会说“夸张”,原因很多(吸引投资者或客户,一个人)。
例如,关于皮秒的谣言相当令人愤慨。 10纳秒和0.1纳秒完全相同,因为订单到达交易服务器所需的时间远不止于此。
而且,最重要的是,虽然不是你问的问题,但如果你试图通过算法进行交易,不要试图加快速度,尽量做到更聪明。我已经看到了非常好的算法,可以处理整秒的延迟并使很多的钱。
答案 2 :(得分:5)
“低于40微秒”,如果你想跟上纳斯达克的话。这个数字在这里公布 http://www.nasdaqomx.com/technology/
答案 3 :(得分:4)
描述HFT状态(2011年)的好文章,并提供了一些可实现纳秒的硬件解决方案样本:Wall Streets Need For Trading Speed: The Nanosecond Age
随着最低“延迟”的竞争继续,一些市场 参与者甚至在谈论皮秒 - 万亿分之一秒 第二强>
编辑:正如Nicholas提到:
该链接提到了一家可以“准备交易”的公司Fixnetix 740ns(即从输入事件发生到订单的时间 发送)。
答案 4 :(得分:3)
对于它的价值,TIBCO's FTL messaging product在机器内(共享内存)低于500 ns,在数据中心内使用RDMA(远程直接内存访问)几微秒。在那之后,物理成为等式的主要部分。
这就是数据从Feed到应用程序的速度。
至少有一个系统声称~30ns的线程间消息传递,这可能是一个调整基准测试,所以任何谈论较低数字的人都在使用某种神奇的CPU。
一旦你进入应用程序,这只是程序决策速度有多快的问题。
答案 5 :(得分:2)
目前,以微秒为单位的单位数滴答交易是竞争性高频交易公司的标准。您应该只能使用软件进行高位数。然后< 5 usec与附加硬件。
答案 6 :(得分:2)
这里的每个答案都至少有四年的历史,我想我会在2018年与HFT /算法交易领域的某人分享一些观点和经验。
(这并不是说这些答案中的任何一个都很差,因为它们绝对不是,但是我认为有必要提供有关最新主题的见解)。
直接回答第一个问题:我们正在谈论的是大约3,000亿分之一秒(300纳秒)。回想一下,这是程序本身引入的延迟。
关于系统的延迟,总是会有一些公司的差异,但是我要提供的数字是内部HFT引擎延迟的常用值。
问题是有关多快高频交易系统,以及所涉及的硬件基础设施的外观如何。自2014年以来,这项技术已经取得了进步,但是与文献在该领域进行的大量讨论相反, FPGA不一定是HFT领域大型企业的首选。诸如Intel和Nvidia之类的大公司将通过其专用硬件迎合这些公司,以确保它们从交易系统中获得所需的一切。显然,借助英特尔,该系统将更多地围绕CPU和CPU能够最好地执行的各种计算构建,而采用Nvidia,该系统将更加面向GPU。
对于现场可编程门阵列(FPGA)上的系统,通常使用诸如Verilog和VHDL之类的语言。但是,即使对于FPGA系统,并不是所有的东西都在组装中,大多数都是经过高度优化的C ++和嵌入式嵌入式汇编,这正是速度的来源。请注意,使用各种硬件(FPGA,专用英特尔系统等)的公司就是这种情况。
然而,top answer here声明完全错误的东西是很不幸的:
10纳秒和0.1纳秒是完全一样的东西,因为定单到达交易服务器所花费的时间远远超过此。
这完全是错误的,因为高频交易的主机代管方面已经完全标准化。 每个人与匹配引擎一样接近,因此系统的内部延迟非常重要。
答案 7 :(得分:1)
根据Wikipedia page on High-frequency trading,延迟是微秒:
自1998年美国证券交易委员会(SEC)授权进行电子交易后,至少自1999年开始进行高频交易。在21世纪之交,HFT交易的执行时间为几秒钟,而到2010年,这已减少到毫微秒甚至几微秒。
答案 8 :(得分:0)
它永远不会在几微秒之内,因为em-w /光速限制,只有幸运的少数,必须在一公里之外,甚至可以梦想接近它。
此外,没有编码,为了实现这个速度,你必须去物理..(带有300ns开关的文章的人;这只是该开关的额外延迟!;等于通过光学和铜少一点)