理想延时交易的制作方法

文档序号:11935320阅读:461来源:国知局
理想延时交易的制作方法与工艺

本申请要求于2014年7月25日递交的,名称为“An Ideal Latency Floor”的美国临时专利申请No.62/029,042的优先权、以及名称为“Ideal Latency Floor”的美国非临时申请No.14/533,543的优先权,二者的内容通过引用而全文并入本文。

技术领域

本发明涉及用于提供用于电子交易场所的延时交易(有时也称为随机化)的系统和方法。



背景技术:

世界范围内有非常多运行的电子交易场所。这些大型电子交易场所的大部分以时间优先原则操作,来处理订单。换言之,这些交易所按照由市场参与者发送的消息(例如,订单、取消和更换)被接收的时间顺序来处理该消息。因此,在这些交易所中,如Farmer,J.D.,Skouras,S.在2012年3月28的英国政府科学办公室论文《Review of the benefits of a continuous market vs.randomized stop auctions and of alternative Priority Rules》(其内容通过引用而全文并入本文)中的“policy options 7和12”所描述的,“最快”的市场参与者在他们的交易行为中在价格制定(price making)和价格接受(price taking)方面)方面是占优势的。关于这点,“最快”意味着能够以最少时间响应一些刺激(通常为市场数据更新)来发送订单(或其他消息)至电子交易场所。

在过去几年里,参与高频或算法交易(这里,简称为“HFT”)的市场参与者负责在这些电子交易场所交易的越来越多的交易量。虽然某些研究表明HFT已经引起了提高的流动资金供给(例如通过价差收窄),如Jones,CM.在2013年3月20日的Columbia Business Schoolde的3.4版本Working Paper中刊登的《What do we know about high-frequency trading?》(其内容通过引用而全文并入本文)中所描述的,但其他研究已经识别出HFT的一些负面效果,如Budish,E.、Cramton,P.、Shim,J.在2013年12月23日的Working Paper中刊登的《The High-Frequency Trading Arms Race:Frequent Batch Auctions as a Market Design Response》(其内容通过引用而全文并入本文)中所描述的。

交易场所的运营商和他们的顾客(在这些交易场所中的市场参与者)已经严重受到HFT的出现的影响。一些市场参与者已经声明他们不再能够在要求跟得上最快的参与者的尖端技术中承担进行持续的、大量的以及有时在操作上具有风险的投资。其结果是,在以时间优先规则来处理消息、因此速度在确定价格制定和价格接受中的竞争力方面发挥作用的很多交易场所中,很少的参与者能够有效地竞争,总的来说,HFT看起来减少了交易场所中的竞争。这可能是“不好的”,因为健康的市场可以是通过“包容性”而鼓励竞争、使得更多的而不是更少的参与者能够参与价格制定和价格接受的竞争的市场。

电子交易场所的运营商本身已经受HFT的出现的影响。因为市场参与者已经变得越来越快,交易场所的延时中的越来越小的变化在确定哪个市场参与者在价格制定或价格接受方面的能力最成功时变得越来越重要。尽管计算机硬件和软件的性质(以及最终,物理定律)不可能完全地消除电子交易场所的延时中的所有变化,对于市场运营商监控和控制延时中的越来越小的变化来说,是越来越困难且昂贵的。然而,市场运营商不得不这样做,以便确保他们的交易场所是“公平”的,即,没有一个参与者因为交易场所中的延时“抖动”的特定表现,而在其价格制定和价格接受行为中有系统地占优势(或处于劣势)。

延时交易(也被称为随机化,如在Harris,L.在2013年3月/4月的Financial Analysts Journal的69卷、编号2:6-9刊登的《What to Do about High-Frequency Trading》以及Szalay,E.在2013年Q3 30发布的Autumated Trader Magazine上刊登的《Life in the slow lane.》(二者通过引用而全文并入本文)所描述的)可以被理解为电子交易场所实施的时间优先原则的受限的例外情况。在运行中央限价订单簿(central limit order book,CLOB)的交易场所部署延时交易机制的结果是,在短时间尺度下,消息通常不会按照它们被接收的时间顺序相对于该CLOB被处理(例如,插入到CLOB中、与CLOB中的其他订单匹配、从CLOB移除等)。然而,在较长的时间尺度下,在较晚接收的消息之前,较早接收的消息仍然相对于CLOB被处理。这意味着存在将短时间尺度和长时间尺度区分开的、与延迟交易相关联的时间参数。该相同的时间参数有时也被称为延迟交易的“值”。

延时交易机制可通过将在交易的值内接收的消息到达该CLOB之前“批处理”消息、置乱该批次中的消息的列表以向该列表给出新的(至少在某种程度上)随机的排序、并最终根据消息的新的随机排序来相对于CLOB处理这些消息来工作。以此方式,消息相对于CLOB被处理的顺序不再完全地由消息被接收的时间顺序确定。其他此类机制可通过在消息被接收时并在该消息能够相对于CLOB被处理之前,将0和该(交易)值之间的随机延迟添加到每个消息来工作,由此也引起消息的新的、更随机的排序,如在Harris在2013年3月/4月的Financial Analysts Journal的第69卷、编号2:6-9刊登的《What to Do about High-Frequency Trading》中所描述的。

要注意到,传统延时交易机制没有完全地消除能够比交易的值更快地响应的优势。换言之,在实施传统延时交易机制的电子交易场所中,仍然存在动机使得该交易场所中的市场参与者能够以比交易的值少的时间进行响应(即比交易的值快),且事实上是绝对最快的。例如,在一个这样的传统的机制中,如果交易的值是2毫秒(ms),且较快的参与者比较慢的参与者领先1.8ms进行响应,则较快的参与者的消息将仍然具有在较慢的参与者的消息之前、大于90%的相对于CLOB被处理的机会。因此,利用传统延时交易,且虽然相比于利用消息的严格时间优先处理具有较小的程度,但仍然有动机在技术上进行投资而成为绝对最快的参与者,且市场运行商仍然需要以越来越高的精确水平监控和控制交易所延时。传统延时交易承受着这些问题和其他缺点。



技术实现要素:

本发明解决这些缺点和其它的缺点,并且涉及一种用于检测和区分各个“竞争”的系统和方法,所述的各个“竞争”自然地发生在电子交易场所中且属于电子交易场所的市场竞争者之间的价格制定和价格接受行为。在针对在交易场所中交易的票据运行CLOB的交易场所中,存在两种类型的价格接受竞争:接受(或等同地“达到”或“攻击”或“抬高”)买入价的竞争,以及接受卖出价的竞争。类似地,在这些交易场所,存在价格制定竞争,每种类型的价格制定竞争可通过价格制定者订单的交易方(买入或卖出)和限价的配对唯一地识别。本发明(在此为“理想延时交易”)的重要的性能在于在竞争的任何给定实例中,选择在该竞争中进行竞争、并能够在交易的值的范围内响应的所有参与者都具有赢得竞争的基本上相等的机会。

该理想延时交易通过以下方式以高水平工作:(1)在第一消息被交易场所接收的时间检测特定类型竞争中的该第一消息;(2)一旦检测到该第一消息,则开始计时器;(3)使第一消息和也属于该竞争类型且在计时器达到预定值(通常为交易的值)之前由交易场所接收的其他消息在一起“批处理”;(4)按照参与者(或其他类似实体)分组批次中的消息,且在这样做时,创建涉及在该竞争中的参与者的列表;(5)搅乱参与者的该列表,从而实现随机排序;(6)使用该搅乱的参与者的列表作为预定“抽取”策略的输入,当竞争的计时器达到它的值时,该策略从批次中移除消息以用于以对于给定竞争类型的参与者都是公平的方式和顺序相对于CLOB进行处理。对于给定票据,多个竞争可以在任何给定时间是“活跃的”,每个竞争具有它自己的消息组、它自己的批次和它自己的计时器等,每个竞争可以将在以上给出的步骤(1)至步骤(6)中被处理,独立于关于该票据的其他活跃竞争的那些步骤的处理。

在一个实现方式中,该系统可基于可配置的参数确定是否针对所有类型的竞争或部分类型的竞争实现理想延时交易。例如,使用该系统,用户(诸如市场运营商)可指定仅价格接受者竞争应该经受理想延时交易机制,而其他类型的市场竞争(诸如价格制定者竞争)不应该经受理想延时交易机制。在这种配置中,价格接受者竞争中的消息将经受批处理和延迟,而属于价格制定者竞争的消息将可能相对于CLOB按照消息被接收的时间顺序(或者以交易场所没有延时交易的情况下通常处理消息的方式)“实时地”被处理。以此方式,用户可限定哪个市场竞争将经受理想延时交易机制。

在一实现方式中,系统可基于可配置的参数确定哪些特定的消息能够触发(或等同地发起)批处理时段,或者哪些特定的消息能够是批处理时段中的第一消息。例如,使用该系统,用户(诸如市场运营商)可指定与所述簿的顶部“交叉”的两个订单(例如,具有大于或等于交易场所中的最好(最低)普遍卖出价的限价的买入订单)触发批处理时段,如存在于该簿的相对交易方的簿顶部中的订单的取消请求的情况。或者交易场所运营商可选择排除这样的取消,该取消作为触发价格接受者竞争的批处理时段的开始的消息类型,这允许仅价格接受者订单触发此类批处理。这样,用户可在理想延时交易机制中限定哪些消息触发哪种类型的竞争。

在一实现方式中,独立于上述的批次的触发,在批次已经初始被创建之后(即,在至少一个消息已经被置于批次中之后),该系统可确定哪些特定消息有资格包含在批次中。例如,利用该系统,用户(诸如市场运营商)可指定仅在批次已经被创建之后,但在其计时器已经达到它的值之前,关于卖出订单的取消将被包括在用于买入的价格接受者竞争的批次中。替选地,用户可指定此类取消可从不出现在用于买入的价格接受者竞争中。这样,在理想延时交易机制中,用户可限定批处理被触发之后(即,批处理被创建之后,但其计时器已达到该值之前),哪些消息被包括在该批次中。

在一实现方式中,该系统可按照生成消息的市场参与者(或类似实体)将在批处理时段期间所接收的这些消息分组。在订单的每个组中,该系统可保持该组中的那些消息被接收的时间顺序。例如,在批处理时段期间从第一市场参与者接收的所有消息可被按照它们被接收的时间顺序来一起分组成来自第一市场参与者的第一组消息。同样,在批处理时段期间从第二市场参与者接收的所有消息可按照它们被接收的时间顺序来一起分组成来自第二市场参与者的第二组消息,以此类推。在该实现方式中,该系统可创建与订单相关联的市场参与者的列表,并可搅乱市场参与者的该列表,使得在所产生的市场参与者的搅乱的列表中,每个市场参与者将具有出现在搅乱的列表中的每个位置处的相等概率。然后,该系统可利用市场参与者的搅乱的列表的排序和他们的消息组的排序开始“抽取”消息,以相对于CLOB进行处理,如下文所述。以此方式,通过提交多个消息,给定的市场参与者可能不再受益。

在消息基于市场参与者被分组的实现方式中,该系统可采用多个、不同的策略以从批次中抽取消息,以用于相对于CLOB进行处理。在一个这样的策略中,在批次中剩余的消息移动到下一个参与者之前,针对每个参与者移除单个消息以用于相对于CLOB进行处理,在参与者的搅乱的列表中重复地迭代进行,直到在该批次中没有剩余的消息。在另一个此类策略中,在批次中的参与者的列表上可以迭代一次,并且在移动到下一个参与者之前,参与者的所有消息被从批次中移除以用于相对于CLOB进行处理。在还另一个此类策略中,出现在批次中的订单被分裂为较小的“子”订单,其中,子订单的量的总和等于批次中的它们的“父”订单的总量,并相对于CLOB处理子订单(而不是父订单)。有利地,在该策略中,可以以循环方式,使得每个参与者递交的所有订单的总量中的少量可相对于CLOB被处理,从而消除参与者在其他抽取策略中通过针对某量递交多个小订单或针对该相同的量递交一个大订单得到的优势。

在参考附图而考虑以下描述和所附权利要求时,这里所公开的系统和/或方法的这些和其他目的、特征和特性,以及操作方法和相关结构部件以及各部分的组合的功能和制造经济性将变得更为显而易见,所有附图都形成该说明书的一部分,其中同样的附图标记在各图中表示相对应的部分。然而,所要清楚理解的是,附图仅是用于图示和描述的目的而并非意在作为本发明的界限的界定。如说明书和权利要求中所使用的,除非上下文明确另外指出,否则单数形式“一个”和“该”包括多个指示物。

附图说明

图1示出了根据本发明的实现方式提供理想延时交易机制的系统。

图2描绘了根据本发明的实现方式的一种提供理想延时交易机制的方法的示例图。

图3描绘了根据本发明的实现方式的一种提供理想延时交易机制的方法的过程流程图。

图4描绘了根据本发明的实现方式的示出延迟机制(诸如理想延时交易机制)的各种状态的示例图。

具体实施方式

图1示出了根据本发明的实现方式的用于提供理想延时交易机制的系统100。根据本发明的实现方式,系统100可促进市场竞争,在该市场竞争中,参与竞争(例如通过选择价格制定或价格接受)并能够在延时交易的值内进行响应的市场参与者被添加到一个批次,在该批次中,每个市场参与者具有赢得市场竞争的相等概率。在本文所使用的术语“市场竞争”和“竞争”可贯穿全文互换地使用。同样,术语“市场参与者”和“参与者”可贯穿全文互换地使用。此外,贯穿全文所使用的术语“中央限价订单簿”或CLOB不旨在进行限制,事实上,理想延时交易机制可同样应用于由交易场所实施的其他此类体系(例如,用于使买入订单和卖出订单匹配的目的的体系、用于提供在该场所交易的票据的供应和需求的概观的体系等)。

贯穿全文所使用的各种示例可涉及理想延时交易机制的示例,但是使用本文所公开的内容,本领域技术人员可以预期系统100的其他用途和实现方式,且这些用途和实现方式对于本领域技术人员将是显而易见的。已经描述了一些系统功能的高级别概述,现在,注意力将转向促进这些和其他功能的各种系统部件。

系统部件

系统100可包括计算机系统104、一个或多个数据库132、一个或多个市场参与者142、电子订单簿144和/或其他部件。为了促进这些和其他功能,计算机系统104可包括一个或多个计算设备110。每个计算设备110可包括一个或多个处理器112、一个或多个存储设备114和/或其他部件。一个或多个处理器112可由一个或多个计算机程序指令进行程序化,该一个或多个计算机程序指令可存储在一个或多个存储设备114中。该一个或多个计算机程序指令可非限制性地包括理想延时交易应用程序120。

理想延时交易机制

理想延时交易应用程序120可执行理想延时交易机制,在理想延时交易机制中,参与竞争(例如通过选择价格制定或价格接受)并能够在延时交易的值内进行响应的市场参与者142被添加到一个批次,在该批次中,每个市场参与者具有赢得市场竞争的相等概率。为了便利,理想延时交易机制将被描述为:当事实上理想延时交易应用程序120程序化一个或多个处理器112(以及因此计算机系统104)以执行操作时,执行该操作。

在一实现方式中,理想延时交易机制可位于从计算机网络接收消息的插接口(socket)和CLOB 144之间,这些消息最终被相对于CLOB 144处理。在消息被相对于CLOB 144处理之前以及在其已经脱离插接口之后,它可由理想延时交易机制处理。市场参与者142仅可以在市场数据更新中看到CLOB 144的状态,而看不到在理想延时交易机制中的任何批次内包含的消息。

竞争类型和它们怎样被理想延时交易机制处理

竞争通常可分为两个类别:价格制定者竞争和价格接受者竞争。一个单独的价格接受者竞争可以由订单交易方以及订单价格“交叉”该订单簿的事实(即,该订单价格将基于价格而违背CLOB 144的当前或最新状态进行填充)唯一地识别。例如,如果买入订单的限价高于或等于CLOB中最好的(最低定价的)普遍卖出订单(卖出价),买入订单可以说成是“交叉订单簿”。一个单独的价格制定者竞争可以由订单交易方和订单的限价的配对唯一地识别。价格制定者竞争中的订单不交叉该订单簿(即,基于价格,以及可选地信用,不能与CLOB 144的当前或最新状态中存在的相对方的订单相较量)。

表1出了竞争类型的非限制性示例、以及理想延时交易机制可怎样处理竞争类型。仅列入下表来示出本发明的方面。

配置参数

表2示出了维度、可配置的参数以及给定竞争类型是否将经历本文所描述的理想延时交易机制的简洁描述的非限制性示例。例如,如以下表2所示,该理想延时交易机制可以沿着以下维度、以每个票据为基础,是可配置的。仅列入下表来示出本发明的方面。

理想延时交易机制的操作

该理想延时交易机制可基于各种可配置的参数(诸如表2中所描述的可配置的参数)来对各种市场竞争(诸如在表1中所描述的市场竞争)操作。在操作中,该理想延时交易机制可检测市场竞争中的第一订单,并为该特定的市场竞争创建“批次”。该理想延时交易机制可开始一计时器,当该计时器期满或达到某一值时,指示该批次结束。当针对该同一市场竞争检测到额外的订单时,并在批次的计时器期满之前,该额外的订单被放置在该批次中。当批次的计时器期满时,搅乱订单,该搅乱所导致的排序是订单相对于CLOB 144被处理的顺序。

特别地关于检测竞争中的第一订单以及批处理这些订单、直至计时器已经期满的这样的时间的理想延时交易机制的实现方式的伪代码和随附的描述在下文中通过说明且非限制地进行描述。基于本文所提供的公开内容,也可以使用理想延时交易机制的其他实现方式。

行1至行3如所述以代码形式,但进一步详述了:行1的队列Q由市场参与者在给定的票据上提交的订单持续地补充。行2表明了订单放置在队列的末端,使得该队列的排序反映了订单被接收的时间顺序。行3限定了用于给定票据的CLOB C;该CLOB通常包括买入和卖出的价格制定者订单,且它所包含的订单通常在每次市场参与者递交消息至该CLOB所属的票据时发生变化。

行4限定了映射M,其是用于将键映射到值的标准的、广泛使用的数据结构。映射的键唯一地识别每个竞争类型;映射的值是参与该市场竞争的订单。

行5声明了F——交易的值,F可以是以某时间单位(例如毫秒(ms))限定延时交易的长度的整数常量。

行6是电子交易场所在运行(接受订单/消息)时执行的“无限”while循环。

行7-14用于在活跃的市场竞争中,当计时器已经敲钟(例如,期满)时,抽取该批次的订单。

行7是for循环,该for循环在映射中的所有的条目E上迭代。“条目”是映射中的一对键和值。

行8返回给定竞争中的值os,即订单列表。

行9获取给定竞争中的第一订单o,即引起计时器开始的订单,而不将其从该列表os中移除。

行10通过将第一订单被接收时的时间戳(o.getTimestamp())与由计算机的时钟或其它时间源确定的当前挂钟时间(current_time())进行比较,以查看计时器是否已经对于该市场竞争敲钟。如果当前时间在订单的时间戳加上交易的值F之后,则事实上计时器已经敲钟,且订单应该被搅乱并且被相对于CLOB处理。虽然该订单列表os的搅乱的精确实现方式未在伪代码中示出,相对于CLOB C处理订单也未在伪代码中示出,但行11上的类函数的主体shuffleAndProcess(...)将执行这样的搅乱和处理。可以如下面标题为“搅乱批次并且处理搅乱的批次中的订单”的部分所描述的那样实现shuffleAndProcess(...)类函数操作的具体的方式。

在行12上,用于市场竞争的条目(键和值二者)被移除,使得映射的值中的订单没有被多于一次地相对于C处理。行12也确保了只有在活跃的市场竞争,即计时器尚未敲钟的市场竞争,在外部while循环从一次迭代到下一次迭代过程中保持处于M。

行15-26检测给定类型的市场竞争的开始,并如果此市场竞争已经开始,则添加订单到该市场竞争的该订单列表或订单批次中。

行15是for循环,其确保了自外部while循环的最后一次迭代开始已经被接收的所有订单被处理(抽取)。

行16移除了当前位于Q中的第一订单。

行17和行18取得订单价格和订单交易方。针对该示例,假定:所有的订单具有限价(现在假定不存在所谓的按照定义不具有限价的“市场订单”),且所有订单仅具有或者是买方、或者是卖方的一个交易方。如果用于买入的“市场订单”被理解为具有+infinity的限价,用于卖出的“市场订单”被理解为具有-infinity的限价,则代码将如所写的那样,也对市场订单起作用,而不仅仅对限价订单起作用。

行19-23处理竞争以“攻击”或“占有”市场的流动性。在该行范围内的关于C的类函数getBestBidPrice()和getBestAskPrice()在这些些类函数被调用的时刻返回CLOB中存在的最高定价的买入订单的价格和该订单簿中存在的最低定价的卖出订单的价格。因为竞争中用于占有和攻击市场的订单不需要具有彼此相同的限价,以便在该竞争中竞赛,这些订单的限价存储为p,相反被分别调整为两个特定值:+infinity和-infinity。该调整是为了确保,键对于竞争攻击卖出价簿的所有订单是相同的,并且对于竞争攻击买入价簿的所有订单是各自不同的。最多存在一个活跃的买入价格接受者竞争和一个活跃的卖出价格接受者竞争。

行24上,参与竞争的该订单的列表经由调用M.getOrPutEmptyListlfKeyAbsent([s,p])获得。虽然getOrPutEmptyListlfKeyAbsent()的实现方式未示出,但可以理解的是,如果键[s,p]存在于映射中,则该值将已经被初始化,并且作为竞争中的订单的列表的值os将被返回。如果没有,则将通过关于M的该类函数创建订单的新的空列表os,作为该键[s,p]的值,随后,根据行25,第一订单将被添加到该空列表。

行25将订单o添加到列表os的末端。

行27结束外部while循环。

为了免生疑问,上述M中的键可唯一地识别每种竞争类型。在替选的实现方式中,市场运营商可集中于建立用于某些类型的竞争(诸如仅价格接受的竞争)的理想延时交易。在这个仅价格接受者竞争的实现方式中,映射M可同时仅包含最多两个键(竞争攻击买入价的订单,和竞争攻击卖出价的订单);所有其他的订单可实时地相对于CLOB处理,或以交易场所在没有理想延时交易的情况下的操作的方式被处理。这可全部通过以下示出的代码部分15-26的细小改变来实现。在这个代码中,C.process(o)具有与本文件中第一伪代码列表所描述的相同的含义;“continue”是关于JavaTM编程语言中的循环具有相同语义的关键词。行25添加订单o到列表os的末端。

搅乱该批次,并处理来自搅乱的批次的订单

如下示出了其中理想延时交易机制可搅乱给定竞争中的订单“批次”的方式。理想延时交易机制可依据市场参与者142进行订单分组(例如,基于递交订单的市场参与者)。可保留每个市场参与者的订单被接收的时间顺序。理想延时交易机制可生成与批次中的订单相关联的市场参与者的列表。然后,理想延时交易机制可搅乱该批次中的市场参与者列表,使得每个市场参与者具有出现在市场参与者列表的每一个位置处的相等机会。然后,或者通过在参与者列表上重复迭代、每次移除来自一个参与者的一个订单,或者通过在整个参与者列表上仅迭代一次并且在从一个参与者移动到下一个参与者之前,移除来自每个参与者的所有消息(并且相对于CLOB进行处理),将订单从用于相对于CLOB144进行处理的批次中抽取。

循环抽取

在循环抽取操作中,该系统可以随机地从批次的市场参与者中选择获胜市场参与者,并尽可能填入其第一订单(例如,从获胜市场参与者收到的第一订单)。如果更多的订单可用于被填入,该系统可随机地从批次的市场参与者中选择下一个市场参与者(例如待选择的第二个市场参与者),并尽可能填入其第一订单(例如,从下一个市场参与者收到的第一订单),以此类推。一旦最后一个市场参与者已经被选择,该系统可以针对每个市场参与者的第二订单重复以上处理,以此类推,直到所有的订单都已经被填入,或不再有订单可用于填入。当然,市场参与者的随机选择可单独进行,或基于市场参与者的随机分配的排序而进行。

作为图示而非限制,由理想延时交易应用程序120执行的循环抽取操作的实现方式的伪代码和随附描述如下进行描述。基于本文所公开的内容,抽取操作的其他实现方式也可被使用。

行1是市场参与者142到它们的属于该批次(竞争)的订单(消息)的映射。

行2复制了作为映射中的键的参与者。

行3搅乱参与者的(有序的)列表,使得每个参与者具有出现在列表中的每个位置处的基本相等的机会。

行4是将保持剩余的订单的计数的变量;do-while循环的每次迭代开始于行5。

行6将剩余订单的数目设置为0。

开始于行7的for循环引起循环抽取操作在参与者的列表上迭代,在每次迭代中从每个参与者的订单列表中移除一个订单(或等同地消息)。当每个订单被移除时,对于行11,订单相对于CLOB被处理。该参与者的订单列表中的剩余订单(即,尚未被处理的订单)的数目被获取,并使行12中的剩余订单的总数递增。

do-while循环的结束条件为没有剩余订单(即,所有订单均已相对于CLOB被处理)。通过图示而非限制性地提供非限制示例。如果批次包含来自于参与者A的订单a1、a2和a3、来自于参与者B的订单b1、以及来自于参与者C的订单c1和c2,则映射可被如下表示,其中分别地,“->”指示从键到值的映射,“;”限定键和值的对,“{”和“}”区分了映射内容的开始和结束:

{A->[al,a2,a3];B->[bl];C->[cl,c2]}

如果映射的键(即参与者)的搅乱导致了排序的列表[C,A,B],则消息将被相对于CLOB处理的顺序如下所示:

[cl,al,bl,c2,a2,a3]

参与者同时抽取

在参与者同时抽取操作中,该系统可以随机地从批次的市场参与者中选择获胜市场参与者,并尽可能填入其所有订单。如果更多的订单可用于被填入,该系统可随机地从批次的市场参与者中选择下一个市场参与者(例如,待被选择的第二个市场参与者),并尽可能填入其所有订单,以此类推。当然,市场参与者的随机选择可单独进行,或基于市场参与者的随机分配的排序而进行。

通过图示而非限制,由理想延时交易应用程序120执行的参与者同时抽取操作的实现方式的伪代码和随附描述如下进行描述。基于本文所公开的内容,抽取操作的其它实现方式也可被使用。

行1是市场参与者142到它们的属于该批次(竞争)的订单(消息)的映射。

行2复制了作为映射m中的键的市场参与者142。

行3搅乱市场参与者142的(有序的)列表,使得每个市场参与者142具有出现在列表中的每个位置处的基本相等的机会。

行4开始for循环,该for循环基于市场参与者被搅乱成的顺序在市场参与者142上迭代。

行5在市场参与者的订单上迭代。

行6相对于CLOB处理市场参与者的订单。

行8清空了与市场参与者相关联的订单的列表(如果只是因为与之前的循环抽取示例一致,在该之前的循环抽取示例中,订单在已经被处理之后,实际上被从列表移除)。

通过图示而非限制地提供一个非限制示例。如果批次包含来自于参与者A的订单a1、a2和a3、来自于参与者B的订单b1、以及来自于参与者C的订单c1和c2,则映射m可以被如下表示:

{A->[al,a2,a3];B->[bl];C->[cl,c2]}

如果映射的键(即参与者)的搅乱导致了排序的队列[C,A,B],则消息将相对于CLOB被处理的顺序如下所示:

[cl,c2,al,a2,a3,bl]

公平数量竞争抽取

在公平数量竞争抽取操作中,该系统可一次性处理来自每个参与者的订单的预定量数量的订单,在参与者上重复迭代,直到对于所有的参与者,剩余的待相对于CLOB被处理的数量为0。例如,如果预定量数量为关于给定外汇票据的1M基础货币(这可以对应于交易场所的最小交易规模以及订单规模可以改变的最小增量),则1M的第一参与者的第一订单将相对于CLOB被处理,则1M的第二参与者的第一订单将相对于CLOB被处理,以此类推,直到不存在任何参与者的订单的剩余数量。

通过图示而非限制,由理想延时交易应用程序120执行的公平价格制定者竞争抽取操作的实现方式的伪代码和随附描述如下进行描述。基于本文所公开的内容,抽取操作的其它实现方式也可被使用。

以上伪代码例示了怎样以了解规模(量)或这些订单的方式抽取订单,以便实现对于该竞争中的参与者,关于在竞争中递交的总量的更公平的结果,而不考虑与递交的该数量交叉的订单的数目。作为抽取策略,其明智地可以用于价格制定者竞争中,以确保竞争中的所有参与者得到时间列队前部附近的一些量或CLOB中每个价格级别的订单,以及还可以明智地用于价格接受者竞争,以试图确保所有的参与者得到挂出的一个或多个买入价订单或卖出价订单的(有限)数量的共享。

行1是市场参与者142到它们的从属于该批次(竞争)的订单(消息)的映射。

行2复制了作为映射m中的键的市场参与者。

行3搅乱参与者的(有序的)列表,使得每个市场参与者具有出现在列表中的每个位置处的基本上相等的机会。

行4是将保持剩余订单的计数的变量;do-while循环的每次迭代开始于行5。

行5限定了用于订单的分割规模。其值可明显地是交易场上的最小订单规模,或者是某其它“小”值。为了该示例的目的,其被假定为1,且假定所有订单具有严格大于0的数量,且为整数(而非分数)的数量。

行6-行20在结构上类似于循环抽取操作伪代码示例,因为开始于行8的for循环导致公平数量竞争抽取操作在参与者列表上重复迭代,直到每个参与者的订单的列表减少为规模0。虽然关键不同在于取代了移除订单并处理该订单,但公平数量竞争抽取操作移除订单、使订单的量递减了该分割规模、并创建具有等于该分割规模的数量的“子”订单,子订单的所有其他性能继承于其“父”订单。父订单数量的递减(其确保了子订单的规模(数量)的总和等于父订单的规模)在行12上执行。在行13,“子”订单相对于CLOB被处理,注意:“父”订单从不相对于CLOB被处理。行14查看父订单是否还有剩余数量。如果有,其被重新添加至该参与者的订单的列表(订单先前从该列表移除)的前部(在行15中)。如果父订单的数量被耗尽(即它的数量不严格大于0),则不会将其重新添加到列表,因为它已经被完全分裂为规模均为“splitSize”的子订单。根据第一技术,在行17,公平的数量竞争抽取操作在do循环的每次迭代之后,记录列表中剩余的订单的数目。

以上九行伪代码是用在上述公平价格制定者竞争抽取操作的示例中的Order类的部分实现方式。行2的qty字段存储了订单的量(规模)。行3的(可选的)parent字段存储父订单。在该上下文中,父订单是在该抽取机制中承受分割的订单。开始于行4的构造函数将值分配到字段。行8是表明Order类的全部实现方式将可能包含额外的字段以存储信息(诸如限价、有效期等)的注释。

如果分割规模是1,且市场参与者A递交订单a1:2、a2:1,市场参与者B递交订单b1:2,市场参与者C递交订单c1:4(其中冒号“:”后面的数字是订单的规模),且搅乱的结果是排序[B,A,C],则将相对于CLOB被处理的“子”订单的结果排序是:

[bl:l,al:l,cl:l,bl:l,al:l,cl:l,a2:l,cl:l,cl:l]

处理关于在理想延时交易机制中更换消息的订单

在许多电子交易场所,市场参与者广泛使用取消-更换请求(这里简称为“更换”或“更换消息”)。在一次原子操作中,更换消息取消CLOB中现有订单,并根据该取消动作的成功,它以新的请求的价格级别和新的请求的数量创建新的订单。更换请求中的旧的订单和新的订单将具有相同的交易方(例如,买入订单不能被卖出订单更换)。当更换消息处于在发送更换消息的市场参与者和接收该更换消息的交易场所之间的“飞行状态”时,如果填入旧的订单,则更换消息将被拒绝(即,没有创建的新的订单)。理想延时交易机制可以以各种方式处理此类更换消息。

将更换消息分为取消消息和新的订单消息

在一个实现方式中,理想延时交易机制可通过将更换消息分成机制内的两个部分(取消消息和新的订单消息)对更换消息进行处理,并在机制内对这两个部分分别进行处理来。在这样做时,理想延时交易机制必须确保,如果取消失败,新的订单不被递交到CLOB中。此外,理想延时交易机制必须确保从更换消息中“提取”的取消消息总是在同样从更换消息中“提取”的新的订单之前,相对于CLOB被处理。此外,理想延时交易机制必须确保新的订单的打开数量反应了直到旧的订单被取消的那一刻之前,在该旧的订单上所发生的任何填入(即承受更换的现有的订单)。

在理想延时交易机制内分裂更换消息的一个优势是该机制可具有根据表2的描述了怎样关于批次(竞争)处理取消和新的订单的配置参数,但没有关于怎样处理更换本身的明确的配置参数。这些现有的参数将应用于从更换中提取的新的订单和取消,但是带有这样的警告:该取消必须在新的订单之前被处理。因此,理想延时交易机制将必须确保取消在新的订单之前被处理(以及可要求两个批次/竞争实例之间的一定程度的通信)。此外,理想延时交易机制与CLOB进行通信所借助的接口将同样必须确保其以这样的方式操作:该取消要在新的订单之前被处理。

为了支持更换分裂成取消和新的订单,可以在由理想延时交易机制使用的到CLOB的接口上包括如下类函数,以处理取消消息:

Order processCancel(Msg cxl)

在这个类函数中,当通过该类函数处理取消消息时,从CLOB返回订单对象。如果关于返回的订单的打开数量是0,或者订单对象本身为空,则可表明从更换中提取的新的订单不应被发送到CLOB中。此外,因为在FIX协议更换消息中提到的数量通常属于订单的“原始数量”(而不是它的“开放数量”),如果订单的“打开数量”和“累计数量”之和小于在更换消息中指定的新的“原始数量”,这会导致更换被拒绝,或原始订单被取消,而没有发送新的订单。在这种情况中会发生什么,取决于特定的交易场所怎样处理该特定情况(一些交易场所可能完全地拒绝更换,而一些场所简单地取消原始订单、而不允许输入新的订单)。

将“更换”消息分裂成取消和新的订单的另一个优势在于,如果理想延时交易的配置参数被设置为实时处理取消,即,根本不在批次中包括它们,则取消将不会延迟。市场价格制定者通常更喜欢能够取消CLOB中的他们的买入价和卖出价,而不会延迟。

原样地处理更换消息

在一实现方式中,理想延时交易机制可“原样地”处理更换消息,而不会分裂该更换消息。相反,更换消息可被放入在具有最长(时间)延迟的批次/竞争中(该批次是已经是活跃的,或者是新的,意味着该更换是批次中的第一消息)。通常,存在更换消息可放置在其中的两个批次的选择:或者是由于该更换的取消部分的价格接受者竞争批次、或者是通过更换消息中的新的限价识别的价格制定者竞争批次。在这二者中,当存在选择时,更换消息可放置在其计时器较晚敲钟(期满)的批次中。

在这个实现方式中,处理更换消息可仍然至少部分地由理想延时交易机制的配置参数指示。例如,如果该机制仅能够用于价格接受者竞争(而非价格制定者竞争),且更换中所指定的订单的新的限价与订单簿交叉,则其将进入买入或卖出价格接受者批次。旧的订单的取消不会发生,直到该价格接受者批次相对于CLOB被处理为止,意思是,不管对于取消的机制上的配置如何,更换的取消部分将被延迟。然而,如果更换中所指定的限价不与该簿交叉,则整个更换操作可实时发生。在另一个示例,如果价格制定者竞争和价格接受者竞争都适用于该机制,且新的限价不与该簿交叉,则更换应该进入到针对该交易方和价格级别的价格制定者批次。然而,如果取消也适用于该机制,则更换可进入到两个批次的更长的那一个批次中(未来期满将较晚的那一个批次):或者价格制定者批次、或者价格接受者批次。

原样方式的一些优势是市场参与者不是“市场之外”(即,更换被处理期间的任何时间,在CLOB中都不具有订单,因为其被原子地处理),并其可以导致理想延时交易的较低复杂度的实现方式。

来自理想延时交易机制的数据收集

可从理想延时交易机制收集数据,以确保其正确运行,并正确实施。该数据应该被存储在文件系统或数据库(诸如数据132)中。特别是对于每条消息,以下内容应该被存储(时间戳应该是至少微秒精度):1.消息被接收时(在消息到达机制或CLOB之前)的时间戳;2.表明消息被接收(在消息到达机制或CLOB之前)的总的排序的整数;3.消息相对于CLOB被处理的时间戳;4.反映消息相对于CLOB被处理的总的排序的整数;5.如果消息属于批次,能够使该批次中的所有消息关联在一起,并唯一地识别批次本身的唯一ID;6.如果消息属于批次,消息被插入到批次中时的时间戳;7.对于每个批次,它的配置参数的整体(其被分配的延迟时段,不论是价格接受者竞争还是价格制定者竞争);8.订单被视为所属的市场参与者(注意,当作为市场参与者的一个公司获得了另一个此类公司,或被另一个公司剥夺了所有权,这可随时间发生改变);9.搅乱之后且抽取之前,市场参与者中的位置被分配到列表中,和/或可从理想延时交易机制收集以用于确保正确操作并被正确实现的其他信息。

理想延时交易应用程序120本身可包括几组不同的指令,每组指令程序化一个或多个处理器112(以及因此计算机系统104)。例如,理想延时交易应用程序120可包括订单接收引擎122、触发检测引擎124、批处理引擎126、分组引擎128、随机化引擎130、订单处理引擎132和/或程序化计算机系统104的其它指令。为了方便起见,在本文中所使用的各种指令将被描述为:当事实上各种指令程序化计算机系统104以执行操作时,各种指令执行操作。

在一个实现方式中,理想延时交易应用程序120可向那些市场参与者提供赢得市场竞争的相等概率,这些市场参与者在由预定条件或事件(诸如接收到第一订单)触发的批处理时段中发送订单到该系统。

在一实现方式中,理想延时交易应用程序120可从一个或多个市场参与者接收针对金融票据的一个或多个订单。理想延时交易应用程序120可响应于触发事件而在成批处理时段中成批处理从市场参与者处接收的订单。例如当(i)订单(或消息)触发竞争类型时和(ii)在成批处理时段内输入订单,并该订单适合于该竞争类型时,理想延时交易应用程序120可成批处理针对给定票据的订单。在实现方式中,理想延时交易应用程序120可按照市场参与者分类成批处理的订单,并提供所产生的对应于批处理时段期间发送的订单的市场参与者的列表。

在一个实现方式中,理想延时交易应用程序120可随机地搅乱所产生的市场参与者的列表,以生成处理顺序。理想延时交易应用程序120可基于本文所描述的各种抽取操作,从随机搅乱的处理顺序中的市场参与者列表中抽取订单。

从市场参与者接收订单

在一实现方式中,订单接收引擎122可从一个或多个市场参与者接收针对金融票据的一个或多个订单。该市场参与者可以是但不限于顾客、市场价格制定者、经纪人/发牌员系统、电子通信网络(ECN)以及其他交易所。例如,市场价格制定者可包括同时提交和/或维持针对同一票据的买入价订单和卖出价订单的任何个人或公司。顾客可以是任何实体,诸如个人、个人团体或凭借系统100从事交易活动的公司,但不是市场价格制定者。例如,顾客可以是个人投资者、投资者团体或公共机构投资者。在一个实现方式中,市场参与者可包括输入订单到理想延时交易应用程序120中的进程。

市场参与者可凭借理想延时交易应用程序120置入各种交易订单,以交易金融票据,诸如股票或其他普通股、债券、共有基金、期权、期货、衍生物和货币。此类交易订单可包括买入价(或买入)订单、卖价或卖出价(或卖出)订单或二者,并可以是可以由理想延时交易应用程序120管理的任意类型的订单,诸如,例如但不作为限制,市场订单、限价订单、停止损失订单、当日订单、未结订单、“撤销前有效”(GTC)订单、“一直有效”订单、“全有或全无”订单、或“任何部分”订单。在一个实现方式中,市场参与者可输入针对金融票据的单一订单。一个实现方式中,市场参与者可输入针对金融票据的多个订单。在这里所使用的术语“订单”旨在广泛地涉及电子交易场所从市场参与者接收的消息的所有形式,包括,但不限于,取消请求、更换请求、新订单请求等。

如果一个或多个市场参与者递交了针对一个金融票据的利用了该金融票据的某一市场定位的订单,针对票据的订单可被定义为在市场竞争中竞争。市场竞争通产分为两类:价格接受者竞争和价格制定者竞争。价格接受者竞争可由订单方以及订单价格“交叉”该簿来识别(即,将基于价格,违背市场的当前状态填入)。价格制定者竞争可由订单方和订单的限价的对识别(即,不与市场的当前状态中存在的相对方的订单相竞争的订单)确定。应该理解的是,随着此类系统和技术被参数化以使得它更广泛的应用成为可能,本发明可具有仅创建用于价格接受者竞争和价格制定者竞争的理想延时交易机制之外的应用。

检测触发条件或事件

在一个实现方式中,触发检测引擎124可检测可表明市场竞争的开始的一个或多个触发事件。例如,触发检测引擎124可检测触发如本文所述的市场参与者之间的市场竞争的一个或多个预定条件或事件(诸如市场数据更新或针对金融票据的第一订单被接收)。

在批处理时段中批处理订单

根据本发明的一个方面,批处理引擎126可批量处理从市场参与者收到的一个或多个订单,该一个或多个订单是从检测到的触发事件开始在批处理时段内收到的。该批处理时段可基于触发事件被触发,并可在范围(例如0.9ms到1.1ms)内被随机地选择。例如,批处理引擎126可针对金融票据、针对给定竞争类型将订单群集在一起,这些订单是针对满足预定条件的该金融票据的第一订单被接收到之后的1.1毫秒内被接收的。

在一个实现方式中,批处理时段可指的是这样一个时间段,在该时间段中,在延时交易的值范围内响应的市场参与者具有在价格制定或价格接受的市场竞争中获胜的相等机会。更确切地说,在批处理时段范围内,订单可被一起批处理,并在该批处理时段结束时,在批处理时段内递交订单的市场参与者被随机化,以提供市场参与者订单被处理的顺序。在这种情况下,在批处理时段的值的范围内提供订单的市场参与者可具有赢得他们所选择比赛的竞争的相等机会。在一个实现方式中,批处理时段通常可以(但非必须地)被设置为小的数字,诸如2毫秒(ms)。批处理时段的值可由电子交易系统的操作者设置。例如,可在批处理时段(2ms)内对预定条件或事件(诸如市场数据更新或针对金融票据的第一订单被接收)做出响应的市场参与者可具有赢得该竞争的大致相等的机会。在一个实现方式中,批处理引擎126将在批处理时段内从市场参与者接收的一个或多个订单分组到一起。

在一个实现方式中,批处理引擎126可响应于触发事件,开始或触发批处理周期。在批处理时段期间,批处理引擎126可针对在批处理时段内接收的金融票据将一个或多个订单分组到一起,以形成批次。在一个实现方式中,订单被接收的时间顺序可被保持。在这种情况下,批处理引擎126可批处理在批处理时段内接收的针对金融票据的初始订单以及针对同一金融票据的所有其他订单,在第一订单被接收之后,按时间顺序,这些订单被接收。当(i)这些订单对于所竞争的票据都是价格相配时且(ii)这些订单在批处理时段内被输入时,批处理引擎126可将一个或多个订单分组到一起。在一个实现方式中,如果订单取消请求在批处理时段内被接收,其也可包括在该批次中。可包括取消,使得当所有价格接受者订单都从属于批处理时段时,较快的价格制定者不能取消他们的订单。在一个实现方式中,批处理时段之外接收的订单不被群集在一起,并可按照它们被接收的时间顺序存储。关于更换订单,批处理引擎126可将更换订单分裂为取消消息和新订单消息,该取消消息和新订单消息被批处理引擎126分别地处理。

例如,在初始市场状态T=t毫秒,市场中票据的卖出价是55,则以该价格,1百万单位的票据可以被交易。在T=t+1毫秒,新的被动订单被输入到价差中,其将引起市场参与者之间的市场竞争。新被动订单可包括市场中针对票据的卖出价53,1百万单位的票据被以该价格交易。在T=t+1.5毫秒,参与者A以价格53、针对1百万单位的票据发送即时买入订单或取消买入订单。在T=t+1.6毫秒,参与者B以价格54、针对1百万单位的票据发送即时买入订单或取消买入订单。在T=t+1.7毫秒,参与者C以价格54、针对1百万单位的票据发送即时买入订单或取消买入订单。在T=t+1.8毫秒,参与者D以价格53、针对1百万单位的票据发送撤消前有效买入订单。在T=t+3毫秒,参与者E以价格54、针对1百万单位的票据发送即时买入订单或取消买入订单。如果竞争的批处理时段是1ms,批处理时段被来自参与者A的初始买入订单触发,则来自参与者A、B、C和D的订单被作为批次而分组到一起,因为它们都与所竞争的被动订单价格相配,且他们都在批处理时段内被输入。因为参与者E没有在批处理时段内发送订单(T=t+3毫秒),订单不会与其他市场参与者分组到该批次中。

在一个实现方式中,批次(“竞争”)的多个实例可隶属于单独的票据。必须注意使得任何给定订单仅适于一个这样的实例。这可通过使得触发批处理时段的条件更具体,并使得订单在批处理时段中被分组的条件更具体来实现。总体来说,此类条件可在批次的不同实例之间是互相排斥的,以避免关于订单或消息适用的批次的哪个实例不明确。例如,在存在同时发生或在时间上略微重叠而发生的两个竞争的情况中,特别是都是关于单个票据的攻击卖出价的竞争和攻击买入价的不同的竞争,可以存在一批次的两个实例。触发用于卖出价攻击竞争的批处理时段的条件可以是:与该簿交叉的买入订单。使订单在批处理时段中被分组为批次的条件将是与该簿交叉的买入订单、以及可选地对于卖出订单的取消请求。对于买入价攻击实例,当与卖出价攻击实例比较时,订单和取消请求的交易方可被颠倒。这样,在时间上交错的不同竞争可继续具有在这些竞争中的所有参与者可以具有赢得竞争的相等的机会的特性。批处理引擎126也可被配置成包括根据票据的批处理时段的额外的实例,该票据处理不同交易方的价格制定者订单(即插入到买入价簿或卖出价簿的订单)以处理关于票据的价格制定者竞争。

分组及随机化市场参与者

根据本发明的一个方面,分组引擎128可按照市场参与者来分类在批处理时段内接收的订单。例如,分组引擎128可按照市场参与者分类接收的订单,并按照市场参与者对敲(bucket)所述订单。作为示例,分组引擎128可将市场参与者递交的订单放置在与市场参与者相关联的对敲中。因此,每个在批处理时段内接收的订单可按照市场参与者而相关联和分组。

在一个实现方式中,分组引擎128可生成所产生的在批处理时段内递交订单的市场参与者的列表。所产生的市场参与者的列表可包括市场参与者和他们各自的在批处理时段内递交的订单。在一个实现方式中,每个市场参与者的订单可按照市场参与者递交该订单的时间顺序而被存储。例如,批处理引擎126可提供与每个参与者(A-D)相关联的对敲的列表,其包括在批处理时段期间接收的每个市场参与者的订单。每个对敲可填充有特定市场参与者的各自订单。订单在每个对敲中的排序可保持订单被接收的时间顺序。

在一个实现方式中,随机化引擎130可随机地搅乱市场参与者的所产生的列表,以生成对于市场参与者的处理顺序。例如,随机化引擎130将生成对于在批处理时段内提交订单的市场参与者的随机处理顺序。该处理顺序可用于确定在批处理时段内接收的市场参与者的订单被处理的顺序。例如,随机化引擎130可搅乱对敲的所产生的列表,使得,在统计学上,每个参与者(或等同地对敲)具有放置在处理顺序中的每一个位置中的大致相等机会。然后,对敲可生成所产生的对敲的列表,其可以反映处理的随机排序。

因此,具有多个信用码、或多个用户或递交多个订单的市场参与者可没有向参与者给予优势。在一个实现方式中,市场参与者可随机化,使得每个市场参与者具有赢得竞争的相等机会。例如,在四个市场参与者竞争的市场竞争中,不论每个市场参与者递交多少订单,每个市场参与者都具有赢得竞争的25%的机会。

处理市场参与者订单

根据本发明的另一个方面,订单处理引擎132可根据市场参与者的处理顺序处理订单。在一个实现方式中,订单处理引擎132可根据随机化引擎生成的随机处理顺序处理来自市场参与者的订单。

处理发生的具体方式可被参数化。对于攻击竞争,在以处理顺序移动到下一个参与者的订单之前,订单可以按照从每个参与者接收参与者订单的时间顺序被处理。价格制定者竞争订单可以不同方式处理,例如,以循环方式,使得处理来自第一参与者的第一订单,然后处理来自第二参与者的第一订单,然后处理来自第三参与者的第一订单,最后回到第一参与者的第二订单(如果存在的话),以此类推,直到所有订单都被处理,或金融票据的数量耗尽。不管处理每个参与者订单的方式如何,在每个订单(或在其他场景中的取消请求/消息)被处理时,其相对于CLOB根据匹配过程(价格兼容性检查、信用检查、TIF检查、MQL检查等)被匹配/处理。在本文中“相对于CLOB被处理”通常意味着或者作为价格制定者订单插入到CLOB中,或作为价格接受者订单匹配于已经在CLOB中的订单,或者修改现有价格制定者订单的价格或数量,或取消该现有的价格制定者订单从而将其从CLOB移除。为了免生疑问,“价格制定者订单”添加或提供流动资产到CLOB;价格接受者订单消耗来自CLOB的流动资产。

在一实现方式中,订单处理引擎132可在市场参与者中划分金融票据的数量。在这种情况下,如果所竞争的数量是5M,则可以试图将1M(或交易场所上的最小的交易规模)匹配于处理顺序上的第一市场参与者的订单,然后,下一个1M匹配于第二市场参与者的订单,下一个1M匹配于第三市场参与者的订单,以此类推。如果第一次处理市场参与者之后还存在更多的数量,来自市场参与者的订单被再次以相同的方式按顺序处理。例如,价格制定者数量的每一“片”被匹配于来自市场参与者的订单列表,直到发现其按照时间顺序可以匹配的订单列表。如果没有发现一个订单列表,则该数量相对于下一参与者的订单而被尝试匹配。当所有的价格制定者数量被耗尽(被匹配)时或因为信用不兼容而不再有价格制定者数量能够匹配于市场参与者订单时,在市场参与者中价格制定者数量的分配结束。这一实现方式有利地在市场参与者中更公平地划分了所竞争的数量。因为在实际中,竞争获胜者和所竞争的数量之间可能不相关,在长时间范围内,赢取相同数目的竞争也将等同于赢取所竞争的相等量的数量。

在一个实现方式中,订单处理引擎132可以以时间顺序处理批处理时段之外接收的订单。例如,订单处理引擎132可以以订单被接收的顺序处理批处理时段之外接收的订单。应该理解,直到那些在批次中的订单被处理,订单处理引擎132才可以处理批处理时段之外接收的订单。

系统架构和配置的示例

可使用不同的系统架构。例如,理想延时交易应用程序120的全部或一部分可以在服务器设备上执行。换言之,如所示的计算设备110可包括服务器设备,该服务器设备获得来自由用户操作的用户设备的用户请求。在理想延时交易应用程序120的全部或一部分在服务器设备上执行的实现方式中,服务器设备可执行理想延时交易应用程序120的功能。

虽然图1示出的是一个单独的部件,但计算机系统104可包括多个独立部件(例如计算机设备),每个独立部件利用如本文所描述的功能的至少一些功能来程序化。这样,如将被理解地,计算机系统104的一些部件可执行一些功能,而其它部件可执行其它功能。一个或多个处理器112的每一者可包括由计算机程序指令程序化的一个或多个物理处理器。本文所描述的各种指令仅是示例性的。只要一个或多个处理器112被程序化以执行本文所描述的功能,可使用其他配置的和其它数量的指令。

此外,应该理解的是,虽然图1中示出的各种指令共同位于一单独的处理单元内,但是在一个或多个处理器112包括多个处理单元的实现方式中,一个或多个指令可相对于其他指令远程地执行。

本文所描述的不同指令所提供的功能的描述仅用于说明,而不旨在限制,因为任何指令可提供比所描述的功能多或少的功能。例如,可清除一个或多个指令,而其功能的一些或全部可由其他指令提供。作为另一个示例,一个或多个处理器112可由一个或多个额外的指令程序化,该一个或多个额外的指令可执行本文中归属于指令的一者的一些或全部功能。

本文所描述的各种指令可存储于存储设备114中,该存储设备114可包括随机存取存储器(RAM)、只读存储器(ROM)和/或其他存储器。存储器设备可存储待由处理器112执行的计算机程序指令(例如,前述指令)以及可由处理器112所操控的数据。存储器设备可包括软盘、硬盘、光盘、磁带或用于存储计算机可执行的指令和/或数据的存储介质。

图1所示出的各种部件可经由网络联接至至少一个其他的部件,该网络可包括例如互联网、内联网、个人局域网络(PAN)、局域网(LAN)、广域网(WAN)、存储区域网(SAN)、城域网(MAN)、无线网络、蜂窝通信网、公用交换电话网络和/或其他网络中的任意一者或多者。在图1和其他附图中,可使用与所示出实体数量不同数量的实体。此外,根据各种实施方式,本文所描述的部件可实现为硬件和/或配置硬件的软件。

例如,本文所描述的各种数据库160可以是甲骨文公司所商售的OracleTM关系数据库、包括甲骨文公司所商售的OracleTM关系数据库或与甲骨文公司所商售的OracleTM关系数据库进行接口连接。也可使用、合并或访问其他数据库,诸如InformixTM、DB2(Database 2)或其他数据存储器,包括基于文件的或查询格式平台或资源(诸如联机分析处理(OLAP)、结构化查询语言(SQL)、存储区域网络(SAN)、Microsoft AccessTM等)。该数据库可包括一个或多个此类数据库,该一个或多个此类数据库存在于一个或多个物理设备中以及一个或多个物理位置中。该数据库可存储多个类型的数据和/或文件、和相关的数据或文件描述、管理信息和其他任何数据。

图2示出了提供根据本发明的实现方式的用于提供理想延时交易机制的过程的示例性图示200。在此对图2(和其它附图中)示出的各种处理操作和/或数据流进行更详细地描述。所描述的操作可利用以上详细描述的系统部件的一些或全部系统部件实现,在一些实现方式中,可以不同的顺序执行各种操作,且各种操作可被省略。额外的操作可以与所示流程图中示出的一些或全部操作一起执行。一个或多个操作可以同时执行。由此,所示出的操作(并将在下文更详细描述)本质上是示例性的,如此,不应被视为限制。

作为示例性实现方式,客户A的针对特定金融票据的订单可以是给定市场竞争类型(例如侵占市场、限制订单簿最高买入价、订单簿最高卖出价等)中的第一订单。一旦接收到客户A的订单,批处理时段(即,订单被处理之前的两毫秒时段)可以开始,且客户A的订单可以被添加至批次[A]。客户B的针对该金融票据的订单可以在批处理时段开始后的t=1.7毫秒时被接收。因为客户B的订单在该批处理时段内,因此客户B的订单可随同客户A的订单被添加到批次[A,B]。在批处理时段开始后的t=1.99毫秒时,客户C的针对该金融票据的订单可被接收。因为客户C的订单在批处理时段内,因此,客户C的订单可随同客户A的订单和客户B的订单被添加到批次[A,B,C]中。在t=2毫秒时,针对该金融票据的批处理时段可结束。在一实现方式中,批次[A,B,C]中的订单可被给予被处理的相等的机会。例如,该批次可被随机地搅乱,并可以以以下这些随机的顺序中的一种顺序被处理:B(Process_Order(A,B,C))、B(Process_Order(A,C,B))、B(Process_Order(B,A,C))、B(Process_Order(B,C,A))、B(Process_Order(C,A,B))或B(Process_Order(C,B,A))。因为客户A、B和C均已在批处理时段内响应,客户A、B和C具有被首先处理的相等的机会。继续参考图2,因为客户D的订单在t=2.1毫秒时被接收并且处于批处理时段之外,客户D的订单将在客户A、B和C的订单之后被处理。在一实现方式中,批处理时段之外接收到的任何订单可按照它们被接收的顺序处理,或附属于一个完全新的批次。

图3示出了根据本发明的实现方式的提供理想延时交易机制的过程的过程流程图300。图3(和其他附图)示出的各种处理操作和/或数据流将在此处更详细描述。所描述的操作可利用以上详细描述的系统部件的一些或全部系统部件实现,在一些实现方式中,可以以不同的顺序执行各种操作,各种操作可被省略。额外的操作可与所示流程图中所示出的操作的一些或全部操作一起执行。一个或多个操作可以同时执行。由此,所示出的(并在下文更详细描述)操作本身为示例性的,如此,不应被视为限制。

在操作302中,接收与第一市场参与者相关联的第一组订单。此处所使用的术语“订单”旨在广泛地涉及电子交易场所从市场参与者接收的所有形式的消息,包括但不限于取消请求、更换请求、新订单请求等。

在操作304中,接收与第二市场参与者相关联的第二组订单。

在操作306中,确定:第一组订单被接收后,第二组订单是否在批处理时段内被接收。

如果第一组订单被接收后,第二组订单在批处理时段内被接收,则在操作308中,随机地选择第一组订单和第二组订单中的一者。该批处理时段可基于预定的条件或事件(诸如市场数据更新或针对金融票据的第一订单被接收)被触发,并可在一个范围内(0.9ms到1.1ms)内被随机地选择。

在操作310中,处理第一组订单和第二组订单中的所选择的一者。应该理解对敲的结果列表可被搅乱,使得在统计学上,每个参与者(或等同地对敲)具有以处理顺序放置每一个位置的相等机会。

如果第一组订单被接收后,第二组订单不在批处理时段内被接收,则在操作312中,第一组订单在第二组订单之前被处理。

考虑本文所公开的本发明的说明和实践,本发明的其它实现方式、用途和优势对于本领域技术人员将是显而易见的。该说明应该被考虑为仅仅示例性的,并且本发明的范围旨在仅通过所附权利要求限制。

图4示出了示出根据本发明的实现方式的延迟机制(诸如理想延时交易机制)的各种状态的示例图。

延迟机制可具有由配置在系统中的各种软件模块处理的数个状态。机制的状态确定它的行为。机制的不同实例彼此独立地操作,通常对于每个票据,可以存在机制的多个实例。由于以上描述的原因,该机制关于以下内容中的每一者被参数化:(1)使该机制进入延迟状态的条件;(2)在延迟状态,该机制所接受的消息,即订单、取消、更换等;以及(3)在抽取状态中,抽取市场参与者对敲的方式。

当关于给定票据实例化时,该机制被初始化为“正常”状态。当系统处于正常状态,且接收的订单(或消息)满足给定条件时,该机制进入“延迟”状态。对于攻击者竞争,该机制实现进入延迟状态的特定条件是接收的订单交叉该簿,即,接收的订单被定价为使得不考虑信用,其可以与市场的相对方相竞争(攻击)。交叉该簿的订单的有效期可以是不重要的,即,其可以是IOC订单或常规GTC订单;关键的观察是订单被定价使得其将基于中央限价订单簿的当前状态(当前状态可以是中央限价订单簿的“真”状态,而不是交易场最后所发出的市场数据更新)攻击(未屏蔽的)市场。

在延迟状态,满足给定标准或条件的初始订单和所有其他订单(或消息)被按照第一订单被接收后的X毫秒(ms)时间段期间它们被接收的顺序排队。X将通常是一个小的数字,并可以是整数或分数。如果需要建立具有一些变化的“延时交易”,X也可以在一些范围(例如0.9ms到1.1ms)内随机地变化。不论怎样,一旦Xms已经敲钟,该机制接下来进入“随机化”状态。对于攻击者竞争,在延迟状态中收集消息的标准是它们是也交叉未屏蔽的簿的订单,并任选地是所有订单取消请求。包括取消的基本原理可以是当所有价格接受者订单经受延迟时段时,我们不想最快的价格制定者能够取消他们的订单;不包括它们的基本原理是在交易场所的先前存在的实现方式中,取消请求可能已经取得了优于订单消息的优先权。

在随机化状态中,订单(或消息)的队列由市场参与者对敲,所以参与者所有的订单(不考虑用户、信用码等)进入针对那个客户的单独对敲中。在一个实施方式中,(市场)参与者是一个组织,诸如银行或主要经纪业务客户,而不是具体用户(人)或信用码。这样,具有多个信用码、或多个用户、或递交多个订单对于参与者是没有优势的。然后,所产生的对敲的列表被随机地搅乱,这样的结果是系统进入“抽取”状态。随机搅乱可被实施使得统计学上,每个参与者(或等同地对敲)具有在对敲的结果列表的每一个位置中结束的相等机会。当订单进入客户的对敲中时,保持经受针对给定参与者的该延迟的订单(或消息)的顺序。

在抽取状态中,该系统以对敲排序确定的顺序从对敲中抽取订单。参数化抽取发生的具体方式。对于这些攻击者竞争,在移动到列表中的下一个参与者之前,以参与者的订单被接收的时间排序,所有订单被从每个参与者的对敲中抽取。该机制可以被有利地用于别处,例如用于可被不同地抽取的价格制定者订单(消息),例如,以循环方式或公平数量方式。不管在其中每个客户订单被从对敲移除的方式,在每个订单(或在其他方案中的取消请求/消息)被移除的时间,其相对于中央显示订单簿根据匹配过程(价格兼容性检查、信用检查、TIF检查、MQL检查等)被匹配/处理。一旦所有的对敲被抽取,该机制恢复为正常状态。

附录A包括用于根据表2中描述的参数实现理想延时交易机制的指令的示例,其通过说明而非限制地提供。如将基于本文所公开而显而易见的,也可使用其它指令集。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1