Local EPUB Text
延迟根源
很清楚,对于负责大规模资金的交易者而言,使用低延迟交易平台是很重要的。现在,我们将注意力集中在交易者可控制的潜在的延迟原因,以及针对这些原因能采取的措施。
市场内外的传输
对于算法执行引擎,第一个潜在的延迟原因来自获取数据的时间和订单进入市场的时间。一个好的执行引擎大部分的工作包括对市场改变的快速反应,逻辑上,实时访问这些改变是业务的第一步骤。而且,在你做出决定之后不久,你的订单进入交易时,要求订单保持新鲜(相对于陈腐的订单,指的是投资者近期没有更新的订单)。
距离交易所相匹配的引擎越近的地方,信息进入和流出的速度越快。匹配引擎(matching engine)指的是交易所用时间戳标记和对进入市场订单进行优先顺序排列,将买卖双方集中在一起进行逻辑匹配,并对交易数据进行播送的软件。这个软件封装在多个数据中心的服务器上(通常每个交易所有一个数据中心)。这些数据中心经常为那些愿意付费的人提供物理空间。当一个交易公司同交易所的配置引擎一样搭配它的服务器(包含交易算法),它的服务器和交易所的匹配引擎之间的连接被称为交叉连接(cross-connect)。在某些情况下,诸如服务器不允许托管,或者因为在大多数数据中心配置过于昂贵,宽客可以选择邻近主机服务。这被称为主机托管(proximity hosting)。
在确保由数据驱使的订单免受逆向选择的困扰方面,距离交易所的远近是有本质区别的。为了度量这一点,想象纽约的一个既定市场数据中心,不是布置你的服务器在纽约交易所匹配引擎的旁边,而是将服务器放在旧金山。在纽约和旧金山之间,以相对较快的光纤连接方式进行信息传输的时间大概是单程50毫秒,往返100毫秒。下订单过程需要将交易所的信息传输到你的服务器,并返回到交易所。这样下单过程需要的时间大约是100毫秒。(处理这些信息需要花一些时间,但是假设这些时间是可以忽略的。无论是在纽约还是在旧金山数据中心,这都是固定不变的。)
在这100毫秒的时间内,许多事情会发生。例如,对于EBAY,有零到超过40条(99%的分位点)的信息公布在不同的订单簿上(仅仅取一个例子)[1]。一天中流动性最强的时间段,是信息量最大的时间。这意味着,信息量最大的时间段,是敏感的算法交易集中活跃的时间段。如果在这个时间段,你的算法是在旧金山进行交易,相对于其他订单,你的订单将会延迟100毫秒。基于这个原因,我们会关心99%分位点的信息率以及活动,而不是关心平均水平。我们将在数据突发(Data Bursts)部分详细描述这种效应。
数据处理软件、订单生成软件以及存在于服务器上的问题也都需要提及。这些服务器一定存在于某个地方,一种可能性是将服务器放在自己的经营场所。除了上面提到的延迟问题外,一个办公楼很少有充足的能源、制冷(服务器会产生极高的能量)、网络速度、确保连续性的紧急备份能力。这样,很多人在数据中心托管服务器(也称为托管设备)。如果你想托管服务器,最好的地方莫过于距离交易所近的地方。
市场中心间的传输
算法执行延迟的另一个潜在原因来自市场中心间数据的聚集。即使对于一个单一的市场,证券也经常会在许多地方进行交易。例如,以美国股票为例,投资者可以在13个不同的官方交易所进行交易,还有许多暗池交易场所(这本书写作时,大约60个)。当信息从多个聚集地获得时,将会聚集为一个大的数据集。(虽然有许多可以整合这些数据的服务,但整合的交易数据包含本质上的延迟。如果自己能整合数据,效果会更好。)我们将陈述分别进行整合存在的问题,但是为了整合数据,这些数据物理上还是必须在一个地方。不同交易所之间的连接能被想象成网状(mesh)。正如前文所述,距离数据中心越远,自然延迟时间越长,将这些数据整合在一个地方遇到的困难就会越大。
我们进一步了解市场中心之间整合数据存在的问题。看上去,许多策略是通过金融工具类(instrument classes)进行交易。例如,在美国股票市场,许多市场庄家(一般在纽约附近交易)很想知道芝加哥市场标普E-mini期货合约(简称ES期货合约)如何运行。这是因为ES会对SPY(一个极其重要的跟踪标普500指数的ETF基金)和标普500指数的个股产生影响[2]。
在金融领域,最重要的长距离问题是在芝加哥和纽约,以及纽约和伦敦之间往返地获取信息[3]。数据以光速传输,但是问题是数据必须通过媒介进行传输。由于地球曲度和许多潜在的物理障碍(例如,楼房、飞机和鸟),数据不能通过空气以“直线”传播形式传输数千英里。如果可能的话,数据从纽约到芝加哥仅仅需要4毫秒(反之亦然)。目前,商业上,芝加哥和纽约之间单程的低延迟时间是7~8毫秒。这依靠的是光纤网络:①通过玻璃传输数据(玻璃是光纤最主要的材料);②有点迂回,在芝加哥和纽约之间没有一家直接连接的电信公司。光速在空气中的速度大约是玻璃中速度的1.3倍。这可以解释额外延迟的一部分原因。芝加哥和纽约之间的传统光纤网络的非直线路径能够解释剩下的大部分,还有一小部分归因于不是最理想的硬件。
为了解决这个问题,Spread Networks公司付出更多努力,在芝加哥和纽约之间建立了一条相对直接的路线。它们沿着这条线路租用、购买了成片的土地,发现这可能是最直的路线(某些时候需要逢山开路)。它们使用了金钱能够购买的最好设备。据报道,为了铺设一寸宽的线路,它们雇用了126组、每组4人的工作人员。最终,它们将传输距离缩短了100多英里[4]。为了使用这个服务(服务立即被售出),消费者必须签署多年的合同,传言会花费1000万美元的成本。作为交换,芝加哥和纽约之间的单程延迟缩短到6.5毫秒,相对于前面提到的传统的通信解决方案,提高了1毫秒。
随着Spread Networks揭开面纱,在这个方面的竞争并没有结束。几家公司,包括Thesys科技公司(Thesys technologies,Tradeworx的子公司)和McKay Brothers计划着在芝加哥和纽约之间利用微波解决方案(塔之间进行微波传输)进行近乎直线的路线传输。McKay宣称单程延迟大约4.5毫秒,Thesys期望延迟时间可以降到4.25毫秒。因为微波在空气中的速度,相对于光子通过玻璃的速度(即光纤电缆)可以更快,这些延迟是可以完成的[5]。
然而,在隧道结束的地方有光(并不是双关语)。对于速度的竞争看上去已经接近于尽头。因为天气或者其他原因,潜在的微波解决方案似乎并没有实施监测的、专用的光纤线那么可靠。进一步,能够通过微波进行传输的信息量也相对较小。
伦敦和纽约之间使用Global Crossing的AC-1横跨大西洋的电缆进行连接,已经使用很多年,单程延迟时间大约是65毫秒。然而,Hibernia Atlantic花费大约3亿美元铺设横跨大西洋的光纤电缆,单程延迟时间为59.6毫秒,使得延迟时间大约降低了5毫秒[6]。这条线路于2012年5月投入使用。据报道,这条线路提前许多天就卖给了几个交易商。
建立订单簿
一个既定的交易所传送给交易者的数据实际上是以信息的形式(新订单、取消订单以及交易订单),而不是以订单簿的形式。利用这些信息建立订单簿是宽客的工作。这是一个极具挑战性的工作。为了得到一天中某个给定的时刻精确的订单簿,从这一天的第一条信息开始,每一条向前的信息都需要加工处理,不能有丢弃的信息。而且,这个处理过程必须很快;否则,将会产生延迟。众所周知,速度和精确度之间很难进行权衡。这是没有异议的。更糟的是,有一些解决这个问题的算法方案,但没有一个被认为是行业标准。
这个问题比较敏感的部分是时间标签(与下一个话题相关)。每一个交易所的每一条信息都有自己的时间标签。精确记录这些信息序列是至关重要的。所以,我们不仅要处理信息本身,还要处理每条信息的时间标签。
整合订单簿
对于分散的市场(以美国股票市场为例),有许多信息流需要整合到一个统一的订单簿里面。正确地合并这些信息将会遇到上面提到的挑战。例如,即使我们有一个精确的订单簿,里面有两个不同的交易所有关XYZ股票的交易信息,即使我们有这两个交易所的正确的订单信息,仍会遇到很多问题。第2个交易所的信息可能比第1个交易所的延迟时间要长,在建立统一的订单簿时,这一点必须被考虑。否则,将会出现不正确的序列。
数据突发
建立高速交易设备最重要的挑战之一(基本唯一)是每一天的信息并不是匀速到达这一事实。这是一个值得讨论的极其愚蠢的问题。
交通工程专业的数学家们研究电话网络工程。他们假设带宽的消耗率基本保持在一个合理的区间范围内,类似于几分钟或者几秒钟。数学上有个概念叫作泊松分布(在19世纪,法国统计学家提出这个概念),泊松分布适合于这个电话网络工程。泊松分布的假设条件在电话网络工程里面是有意义的,平均速率可以被假设为在一段区间内是不变的。例如,母亲节这一天会有非常高的平均通话率,但是基本上,你可以假定电话到达率是固定不变的,以及在母亲节最忙的时间段,电话到达时间是相互独立的。
然而,在交易中,一个人特有的交易行为会对其他人产生影响(例如,在订单放置和取消过程中)。这将导致正向循环,一个正常的人所考虑的合理周期内,潜藏的信息率绝不是平稳的。进一步详细说明,1秒内的平均信息到达率所包含的1毫秒内的到达率信息微乎其微。
返回到EBAY这个例子。表14-11显示了从1秒递减到1毫秒不同的时间片段内,相对应的不同的信息百分比。
表14-11 2012年7月20日,EBAY不同时间间隔和不同分位点对应的信息数
有关这个表格更有趣的是,它直观显示了信息率如何不平稳。对于每一分位点,你将会看到前一行1/10的时间里对应的信息数。例如,如果每1秒钟在99%的分位点对应的信息数是259条信息,你会期望每100毫秒对应的信息量是大约是26条(因为100毫秒是1秒钟的1/10)。然而,我们看到每100毫秒在99%分位点对应的信息数是13条。相反,在99.99%分位点,情况戏剧性的相反。在交易日,每1秒钟在99.99%的分位点对应的信息数是1755条信息,这样你可能期望在同一交易日,每100毫秒在99.99%分位点对应的信息数大约是176条。然而,我们的结果是863条,大约是预计值的5倍。
对1秒间隔和1毫秒间隔进行比较,会发现更有趣的结论。在99.99%分位点,你可能会期望1毫秒对应的信息数大约是2条(1755/1000=1.755)。现实情况是,我们发现在99.99%分位点,1毫秒对应的信息数是56条。甚至对10毫秒和1毫秒的信息率进行比较,也会得到惊奇的结论(以10毫秒的标准进行计算,1毫秒的实际信息数大约是计算值的2倍)。
有人认为讨论99.99%分位点是没有意义的。但在这个领域中,很多事情发生在远远小于1%的时间里。一天的交易时间是6.5个小时,大约相当于2340万毫秒。这意味着一天中,有234000观察值以1%的概率发生。所以一个系统如果“只”关注所有信息传送的99%的时间,有可能会丢失最繁忙的234000毫秒的数据。对于任何一个算法系统,这显然是一个重要的问题。交易日时间的0.01%是2340毫秒,这本身也是一个很大的数目。信息分布尾部的10秒钟的信息相对较好,但是信息分布尾部的1毫秒的信息会极其异常。
这为什么是一个问题呢?因为如果你尽力去设计一个系统,能在给定的时标进行响应,你需要能够在大约同样的时标处理到达率。所以,如果你只关心毫秒响应时间,那么你要对1毫秒水平的信息理解和处理能力感到满意。但是如果你关心1毫秒的十分位点信息率(对于许多高频交易者),你必须能够处理1毫秒的十分位点的信息到达率。这里,变量当然可能是其他情况。让问题更为复杂的是,一天之内存在着周期性的繁忙。某一天,闭市之前是最繁忙的时间段,开市之后是第二繁忙的时间段,而其他时间段相对较为平静。这意味着这一天,你必须处理所有报价机上的异常数据。在其他繁忙的时间段(例如美联储利率消息或者一些其他大消息宣布后),同样的数据突发问题也会发生。
能够处理这些问题的量化系统同时也必须能够处理其他领域潜在的问题:高频交易的服务器和交易所的匹配引擎之间的连接(称为交叉连接,cross-connect)、网络交换、不同交易所的主机托管之间的连接和每一个交易所的反馈数据的处理等,这仅仅列出其中的一小部分。而且,可能对于各自易于处理的数据突发问题,聚合起来就会显得难以应对,就如同将不同交易所的订单簿聚合成一个实时的统一的订单簿一样,会遇到很多挑战。
如果这还不足以形成挑战,高频交易者处理数据和找出交易信号的模型都会增加延迟。需要花费时间精确地决定如何进行处理。执行交易信号最好的方法就是将它们分配给多个服务器。但是这本身又是一个更大的挑战,会遇到硬件、软件以及网络工程等很多问题。例如,当每个服务器正在计算及运行当前的交易策略时,如何及时地把这些整合的数据分配到不同的服务器?向不同的服务器分配的数据会增加不同数量的延迟时间。能把这些问题处理得越好,数据突发时所产生的延迟时间就会越少。这些问题处理得越差,在遇到高的消息流量时,延迟时间就会越长。
信号构建
一旦数据能被正确处理和分配,对数据的反应应该被正确构建和实施。广义地说,可以定义两种能被实施的策略类型:执行算法(第7章)和高频策略。由于复杂度的不同,策略变化多端。例如,考虑连续不断地控制整天风险因素的高频交易策略明显要比不考虑风险管理的阿尔法模型复杂得多。即使是日内的阿尔法策略,也由于复杂性不同使得差异极大。(下个章节,我们将详细探讨高频交易策略。)但是即使采取两种完全相同的高频交易策略,大多数情况下也有许多种算法能被用来计算这些信号。而这些算法并不是完全等同的快速。
举一个例子,指数套利在高频交易策略中众所周知。这个策略包含标准普尔500ETF(SPY ETF)及所包含的500只股票所对应的交易值。(注意指数套利指的是对指数和所构成成分进行交易,简单地将SPY作为一个例证。)如果你知道标准普尔500指数是由500只股票及500个权重组成,你应该能够计算出标准普尔500指数自下而上的估计值。然而,如果你发现,在去除费用比率以及其他类似于ETF和一篮子股票的结构不同等因素之外,标准普尔500ETF的实际交易值是另外一个不同的值,这时理论上可以买入低估的、卖空高估的,从而免费获得收益。正如你所想象的,对于这份收益会有很多竞争。这意味着你不得不对所低估的及高估的产品迅速做出决策。正如听上去很简单一样,高速度对标准普尔500ETF和一篮子股票进行比较非常重要。对这一问题,有许多算法解决方案,但并不总是以同样的速度进行计算。
在高频交易中,经常会在侧边栏看见许多策略。想法极其简单,计算极其简单,但是要求极快的设备捕捉信息。因此,当我们听到一些出版商谈论有关“高级的、复杂的算法”,会觉得极具讽刺性。难点不是理解所做的,而是做得速度有多快。
风险检查
在向市场发送订单之前的最后一步是向被称为风险监管的部门递交订单(在一些市场,例如美国股票市场)。监管者(根据市场准入准则)表明经纪交易商是有责任的,要确保每笔交易①在交易者的范围内,②不能出错,③遵守监管准则。他们也授权风险检查软件应该在经纪交易商的完全控制以及独立控制范围内,经纪交易商的顾客会做出交易。这个规则已于2011年7月被采纳,作为对高频交易的批评以及对没有任何规则下的市场稳定性的担心的回应。另外,在订单进入市场之前,还需要检查的事情包括:
·交易者的购买力是否足够?
·开放订单数量是否有效?或者是否会出现交易者犯一个错误而带来过多开放订单的情形?
·单笔交易是否会因为量大而无法成交?
在规则进入市场之前,许多经纪交易商是遵循此规则的。但是少数几个大交易量交易商的操作有所不同。这些交易商从事着被称为裸进入(naked access)的交易。这意味着经纪交易商的顾客允许直接进入市场,如果经纪商对于客户自身的风险检查技术足够满意。为什么这一点很重要?是因为一般情况下,经纪商提供的风险检查存在于经纪商的服务器。在进入市场之前,进行风险检查的交易,必须先由顾客传送给经纪商。
这增加的步骤(added hop,网络工程用语)会因为两个方面的原因而增加更多的延迟时间。第一,存在着服务器之间的连接(客户的交易服务器和交易所的风险检查服务器之间的连接)。第二,经纪商的风险检查软件一般情况下会劣于对速度敏感的交易者所设计的软件。这可能是因为其他一些原因,包括高频交易者或者量化交易公司相对于经典的经纪公司而言存在更多优秀人才,或一些不同的目的。经纪商一般会关心可扩展性的问题,而不是高速问题。相反,对速度痴迷的高频交易引擎(更愿意处理上面提到的问题)希望主机从接收到数据到做出响应所需的时间(tick-to-trade)延迟低至10微秒(0.1毫秒)。他们不会对增加的与风险检查相关的50微秒延迟感到满意。
这样,一些高频交易公司在进行内部风险检查以后,将它们的交易直接发送给交易所。不是所有的经纪商都能接受这样的安排,因为如果客户的风险检查存在问题,经纪商最终需要承担责任。然而,一些经纪商为高频交易者提供裸接入的服务,这些公司多年来在速度上都有一定的优势。随着市场准入准则的颁布,证监会禁止了这种做法,目前,交易者必须使用经纪交易商的风险检查。这就驱使着一些大型高频交易者扩建他们自己的经纪交易公司,以使得他们能够付出额外的监管费用并继续使用自己的风险检查。同时也加剧了创造最快的商业风险检查的竞争。到本书写作之时,大概有3种顶级的解决方案,其余解决方案远远落在后面。解决风险检查问题仍然是在高频交易者(和他们的服务提供者)聚焦的延迟减少的领域。
[1] 这部分的信息都来自于Tradeworx 2012年9月的研究。
[2] 万一你很想知道为什么ES期货合约会对SPY ETF产生影响,主要原因是ES期货合约是现存最大的美元合约。这可能有两个原因。一个原因是ES期货合约比SPY ETF影响更广,所以这是它的一种义务和责任。也因为一种习惯(一旦一种金融工具成为既定敞口选择的金融工具,它倾向于保持一种惰性),当交易者已经交易期货,转而交易股票(ETF和股票的交易方式一样),是一件令人讨厌的事情。第二个原因是,相对于ETF,期货市场具备更多的结构性优势,期货合约更少受到繁重税收的影响。而且,期货合约可以提供更高的杠杆,交易者无论是想进行大的赌注还是不想花费大量金钱进行赌注,期货交易都是完成交易的有效方式。然而,由于散户投资者从投资积极的互助基金转移到进行被动式ETF的交易,尤其由于ETF比较便宜,这个缺口已经变窄。
[3] 值得注意的是,纽约是我们与美国股票市场连接的城市,与股票交易所相关的数据中心实际上大都驻扎在芝加哥。
[4] Melissa Harris,“Some High-Speed Traders Convinced Microwave Dishes Serve Up Bigger Returns,”chicagotribune.com,August 19,2012.
[5] Jerry Adler,“Raging Bulls:How Wall Street Got Addicted to Light-Speed Trading,”wired.com,August 3,2012.
[6] Matthew Philips,“Stock Trading Is About to Get 5.2 Milliseconds Faster,”bloomberg.com,March 29,2012.