CN109409990A - 交易撮合方法及装置 - Google Patents
交易撮合方法及装置 Download PDFInfo
- Publication number
- CN109409990A CN109409990A CN201811180227.3A CN201811180227A CN109409990A CN 109409990 A CN109409990 A CN 109409990A CN 201811180227 A CN201811180227 A CN 201811180227A CN 109409990 A CN109409990 A CN 109409990A
- Authority
- CN
- China
- Prior art keywords
- price
- commission
- currently
- array
- agreed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0611—Request for offers or quotes
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及交易撮合技术领域,提供一种交易撮合方法及装置。其中,交易撮合方法应用于议价空间数组,具体包括:获得和当前委托同类型的委托当前能够成交的最优交易价格;对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;若可进行成交,以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量;持续遍历过程,直至满足遍历结束条件。该方法显著提高了交易撮合的性能,可适用于需要进行实时交易撮合的应用场景。
Description
技术领域
本发明涉及交易撮合技术领域,具体而言,涉及一种交易撮合方法及装置。
背景技术
撮合交易是指买卖双方在交易市场按照价格优先、时间优先的原则确定双方成交价格并生成电子交易合同的交易方式。目前的交易撮合技术开始从数据库撮合技术向内存撮合技术发展,以满足金融交易对于高可靠性、高性能、强安全性、可扩展性以及易维护性的需求。
然而,在现有技术中,用于交易撮合的数据结构未能进行良好的设计,导致交易配对的性能低下,无法满足实时交易的需求。
发明内容
有鉴于此,本发明实施例提供一种交易撮合方法及装置,通过良好的数据结构设计,以改善交易撮合的性能。
为实现上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种交易撮合装置,应用于议价空间数组,议价空间数组中的每个数组元素的数组索引依次对应议价空间中的一个价格,相邻的数组索引对应的价格相差一个最小价格单位,每个等待交易的委托均和与该委托的价格对应的数组元素关联,方法包括:
获得和当前委托同类型的委托当前能够成交的最优交易价格;
对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
若可进行成交,以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量;
持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及议价空间数组已经被遍历完。
第二方面,本发明实施例提供一种交易撮合方法,应用于议价空间索引表,议价空间索引表的每个表项均能够与一个第一方面或第一方面的任意一种可能的实现方式提供的议价空间数组关联,相邻的表项能够关联的议价空间数组对应的议价空间是价格连续的,方法包括:
获得和当前委托同类型的委托当前能够成交的最优交易价格;
对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
若可进行成交,确定最优交易价格对应的议价空间索引表的当前表项,获得与当前表项关联的当前议价空间数组;
以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历当前议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量;
持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及当前议价空间数组已经被遍历完。
第三方面,本发明实施例提供一种交易撮合方法,包括:
判断当前委托的价格是否超过预设范围;
若未超过预设范围,执行第一方面、第二方面或两方面的任意一种可能的实现方式提供的方法的步骤。
第四方面,本发明实施例提供一种交易撮合装置,应用于议价空间数组,议价空间数组中的每个数组元素的数组索引依次对应议价空间中的一个价格,相邻的数组索引对应的价格相差一个最小价格单位,每个等待交易的委托均和与该委托的价格对应的数组元素关联,装置包括:
价格获取模块,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块,用于对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
遍历模块,用于若可进行成交,以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及议价空间数组已经被遍历完。
第五方面,本发明实施例提供一种交易撮合装置,应用于议价空间索引表,议价空间索引表的每个表项均能够与一个第一方面或第一方面的任意一种可能的实现方式提供的议价空间数组关联,相邻的表项能够关联的议价空间数组对应的议价空间是价格连续的,装置包括:
价格获取模块,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块,用于对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
数组获取模块,用于若可进行成交,确定最优交易价格对应的议价空间索引表的当前表项,获得与当前表项关联的当前议价空间数组;
遍历模块,用于以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历当前议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及当前议价空间数组已经被遍历完。
第六方面,本发明实施例提供一种交易撮合装置,包括:
价格范围判断模块,用于判断当前委托的价格是否超过预设范围;
撮合模块,用于若未超过预设范围,执行第一方面、第二方面或两方面的任意一种可能的实现方式提供的方法的步骤。
第七方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面、第二方面、第三方面或三方面的任意一种可能的实现方式提供的方法的步骤。
第八方面,本发明实施例提供一种电子设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面、第二方面、第三方面或三方面的任意一种可能的实现方式提供的方法的步骤。
本发明提供的技术方案至少包括如下有益效果:本发明实施例提供的交易撮合方法及装置,利用议价空间数组实现议价空间内的价格与数组索引的一一映射,从而根据委托价格对应的数组索引,能够在该数组中快速地添加等待交易的委托,同时通过遍历数组还能够实现当前委托与等待成交的委托之间的快速匹配,因此显著提高了交易撮合的性能,可适用于需要进行实时交易撮合的应用场景。
为使本发明的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了一种可应用于本发明实施例中的电子设备的结构框图;
图2示出了交易撮合的原理示意图;
图3示出了本发明实施例提供的议价空间数组的示意图;
图4示出了本发明实施例提供一种交易撮合方法的流程图;
图5示出了本发明实施例提供一种交易撮合方法的流程图;
图6示出了本发明实施例提供一种交易撮合方法的流程图;
图7示出了本发明实施例提供的一种交易撮合装置的功能模块图;
图8示出了本发明实施例提供的一种交易撮合装置的功能模块图;
图9示出了本发明实施例提供的一种交易撮合装置的功能模块图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
图1示出了一种可应用于本发明实施例中的电子设备100的结构框图。参照图1,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106以及输出装置108,这些组件通过总线系统112和/或其他形式的连接机构(未示出)互连。
处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备 100中的其他组件以执行期望的功能。
存储装置104可以各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行计算机程序指令,以实现下文的本发明实施例提供的交易撮合方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如应用程序使用和/或产生的各种数据等。
输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。于本发明实施例中,电子设备100可以是服务器、个人计算机、移动设备、智能穿戴设备、车载设备等设备,也可以不限于物理设备,例如可以是虚拟机、云服务器等。
需要指出,在后文中阐述阐述本发明实施例提供的交易撮合方法时,均该方法应用于电子设备100的处理器102为例,即方法步骤的执行主体均为电子设备100的处理器102,不再特别说明。
交易撮合过程的本质就是买卖价格以及交易数量的匹配。委托 (也称订单)是交易撮合的基本对象,包括买委托和卖委托两种类型,委托是指买方或卖方提出的一种交易需求,每个委托对应一个委托价格和一个委托数量(交易量),意思是希望以委托价格成交委托数量的物品。例如,对于买委托,就是希望以委托价格买入委托数量的物品,对于卖委托,就是希望以委托价格卖出委托数量的物品。每个委托可以和一个或多个相对类型的委托进行匹配,以实现交易,这里的相对类型,对于买委托就是卖委托,对于卖委托就是买委托。
从经济学角度来看,参与市场交易者都是理性的,所有市场交易规则均基于理性制定。因此交易撮合应当包含以下两条原则:
第一,买方一定优先选择最低卖价成交(买委托优先匹配价格最低的卖委托),只有在最低卖价的成交数量无法满足买方需求时,才会选择次低卖价成交,以此类推;卖方一定优先选择最高买价成交(卖委托优先匹配价格最高的买委托),只有在最高买价的成交数量无法满足卖方需求时,才会选择次高买价成交,以此类推。
第二,当买卖双方的价格出现偏离时,交易无法达成,买卖委托将进入等待队列(注意这里的队列并不表示数据结构意义上的队列),直至买卖双方的价格达成一致。
图2示出了交易撮合的原理示意图,本发明实施例提供的交易撮合方法均遵循图2中的原理。在正常情况下,买卖双方的出价会围绕一定的价格基线上下浮动,形成一个合理范围内的价格区间,称之为议价空间,如图2中左侧所示。
卖委托等待队列包括所有等待交易的卖委托(当前无法卖出),最低卖价即这些卖委托中的最低委托价格;买委托等待队列包括所有等待交易的买委托(当前无法买入),最高买价即这些买委托中的最高委托价格。
当新来的买委托的价格高于最低卖价时,从最低卖价到买委托的价格之间形成卖委托撮合区间,在该区间中交易能够进行,即至少有部分等待交易的卖委托将与新来的买委托匹配;当新来的卖委托的价格高于最高买价时,从卖委托的价格到最高买价之间形成买委托撮合区间,在该区间中交易能够进行,即至少有部分等待交易的买委托将与新来的卖委托匹配。
价格基线处于最高买价和最低卖价之间,并会随着时间及交易趋势上下浮动,如图2右侧所示。随着价格基线的浮动,议价空间在全局价格空间内的位置也相应地变化。
从上述交易撮合原理可知,交易撮合的核心任务是:
第一,对无法成交的买卖委托放入买卖委托等待队列进行排序管理。
第二,当有新来的委托时,遍历买卖委托等待队列,进行交易匹配。
为实现交易撮合,本发明实施例提供一种如图3所示的议价空间数组。参照图3,议价空间数组与议价空间中的价格对应,具体而言,数组中的每个数组元素的数组索引对应议价空间中的一个价格并按照数组索引的顺序(如从小到大)以及价格的顺序(如从低到高)一一对应,相邻的数组索引对应的价格相差一个最小价格单位。价格基线对应的数组索引可以设置在该数组的中间,确定了价格基线的对应的数组索引后,议价空间中的每个价格都可以议价空间数组中的数组索引进行表示。
每个等待交易的委托均和与该委托的价格对应的数组元素关联,其关联的具体方式不作限定,例如,可以链表、数组等方式。图3 示出的是链表方式,为表述方便,不妨称之为委托链表,每个等待交易的委托均存储在与该委托的价格对应的委托链表的节点中,委托链表的头部为与该委托的价格对应的数组元素,图3中每个数组元素都可以视为一个委托链表的头部,但只有标记为灰色的数组元素对应的委托链表是非空的。
委托链表中的节点是依次追加到链表尾部的,因此节点在链表中的顺序即委托产生的时间顺序,在进行委托的匹配时,在委托价格相同的情况下,通常应当按照时间顺序进行匹配,即先产生的委托先匹配,后产生的委托后匹配,以保障交易的合理性。可以理解的,在等待交易的委托与数组元素之间采用其他方式进行关联时,也可以增加专门的字段描述委托产生的顺序。
在图3中,位于价格基线上方的等待交易的委托为卖委托,这些卖委托构成图2中的卖委托等待队列;位于价格基线下方的等待交易的委托为买委托,这些买委托构成图2中的买委托等待队列。在进行交易撮合时,议价空间数组保存在内存中,最低卖价和最高买价对应的数组索引可以保存在全局的变量中,在交易撮合过程中可以随时获取并更新。
本发明实施例提供一种如图4所示的交易撮合方法。参照图4,该方法包括:
步骤S10:获得和当前委托同类型的委托当前能够成交的最优交易价格。
当前委托即新来的委托,若当前委托为买委托,最优交易价格为任一买委托能够成交的最低卖价,也即等待交易的卖委托中的最低价格;若当前委托为卖委托,最优交易价格为任一卖委托能够成交的最高买价,也即等待交易的买委托中的最低价格。
步骤S11:对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交。
以当前委托是买委托的情况为例,若当前委托的价格低于最低卖价,表明并不存在等待交易的卖委托可与当前委托匹配,判断结果为否,表明当前委托应当作为一个等待交易的委托,即将当前委托和与该委托的价格对应的数组元素关联;若当前委托的价格不低于最低卖价,表明并存在等待交易的卖委托可与当前委托匹配,判断结果为是,执行步骤S12。当前委托是买委托的情况类似。
步骤S12:遍历议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,直至满足遍历结束条件。
遍历的起点是最优交易价格对应的数组索引,遍历方向是根据当前委托的类型确定的,例如,若当前委托为买委托,则在议价空间数组中按照对应的价格从低到高的方向遍历,若当前委托为卖委托,则在议价空间数组中按照对应的价格从高到低的方向遍历。
由于并不是每个数组元素都关联有等待交易的委托,对于未关联有等待交易的委托的数组元素,在遍历时可以直接跳过,只需要处理关联有等待交易的委托的数组元素。对这样的数组元素,按照等待交易的委托产生的时间顺序依次进行匹配,由于对于同一数组元素,其关联的等待交易的委托的价格都是相同的,因此此时只需要将等待交易的委托的交易量与当前委托的交易量进行匹配。即若等待交易的委托的交易量小于当前委托的交易量,该等待交易的委托将成功匹配(成交),此时更新当前委托的交易量,若还有剩余的交易量,继续将当前委托的交易量和下一个等待交易的委托的交易量进行匹配。对于成功匹配的等待交易的委托,应解除其与数组元素的关联。
以关联通过链表实现的方式为例,只需要处理那些作为非空的委托链表的头部的数组元素。对每个这样的数组元素,从委托链表的头部开始,依次遍历委托链表中的节点,将每个节点中存储的等待交易的委托的交易量与当前委托的交易量进行匹配。对于成功匹配的节点,可以将其从委托链表中删除。
持续上述遍历过程,直至满足遍历结束条件,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及议价空间数组已经被遍历完。
其中,条件“当前数组索引对应的价格当前已经不能成交”表示当前能够匹配的等待交易的委托都已经完全匹配,但当前委托的交易量还有剩余,因此继续遍历下去已经无意义。例如,对于当前委托是买委托的情况,当前数组索引对应的价格高于买委托的价格时,已经没有必要继续遍历。
同时,既然当前委托的交易量还有剩余,表示当前委托未能完全匹配,应当将其作为一个等待交易的委托进行处理。即将当前委托和与该委托的价格对应的数组元素关联,同时更新最优交易价格。以当前委托是买委托的情况为例,应当将最低卖价更新为高于当前委托的价格的,且最接近于当前委托的价格的等待交易的委托的价格。同时,最高买价也应更新为当前委托的委托价格,虽然最高买价不是买委托的最优交易价格,但在以后处理新来的卖委托时会用到最高买价,因此也需要更新。当前委托是卖委托的情况类似。
条件“当前委托的交易量已经完全匹配”容易理解,即匹配到某个等待交易的委托时,该委托的交易量大于等于当前委托的交易量,在本次匹配完后,当前委托已经成功匹配。此时仍然需要更新最优交易价格。以当前委托是买委托的情况为例,若还存在与当前委托的价格相同的等待交易的委托,应当将最低卖价更新为当前委托的价格;若不存在与当前委托的价格相同的等待交易的委托,应当将最低卖价更新为高于当前委托的价格的,且最接近于当前委托的价格的等待交易的委托的价格。
条件“议价空间数组已经被遍历完”表示在当前议价空间数组内当前委托未能完全匹配,但由于其委托价格超过了当前议价空间的表示范围,因此也无法继续遍历下去,同时当前委托也不能作为等待交易的委托与当前议价空间数组的数组元素关联。对于这种情况,在后文的实施例中会有相应的解决方式。
综上所述,本实施例提供的交易撮合方法,利用议价空间数组实现议价空间内的价格与数组索引的一一映射,从而根据委托价格对应的数组索引,能够在该数组中快速地添加等待交易的委托,同时数组在存储空间上时连续的,其遍历速度较快,因此通过遍历数组还能够实现当前委托与等待成交的委托之间的快速匹配。该方法显著提高了交易撮合的性能,可适用于需要进行实时交易撮合的应用场景。
本发明实施例还提供一种如图5所示的交易撮合方法。本实施例的方法应用于议价空间索引表,议价空间索引表包括多个表项,每个表项可以和一个议价空间数组关联(也可以不关联),相邻的表项若都关联有议价空间数组,则这两个议价空间数组对应的议价空间在价格上是连续的。可见,议价空间索引表可以对应于图2中的全局价格空间,设计该数据结构的目的主要是为了处理价格基线浮动,导致原来的议价空间失效的情况。参照图5,该方法包括:
步骤S20:获得和当前委托同类型的委托当前能够成交的最优交易价格。
类似于步骤S10,不再重复阐述。
步骤S21:对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交。
若判断结果为是,执行步骤S22。若判断结果为否,表明当前委托应当作为一个等待交易的委托。此时首先确定当前委托的价格对应的议价空间索引表的表项,然后判断该表项是否关联有议价空间数组。若关联有议价空间数组,在议价空间数组中将当前委托和与该委托的价格对应的数组元素关联;若未关联有议价空间数组,创建议价空间数组,并将议价空间数组与该表项关联,之后在该议价空间数组中,将当前委托和与该委托的价格对应的数组元素关联。
步骤S22:确定最优交易价格对应的议价空间索引表的当前表项,获得与当前表项关联的当前议价空间数组。
根据之前的实施例可知,对于当前委托的匹配都是开始于最优交易价格对应的数组索引,因此开始匹配的议价空间数组应当是最优交易价格所在的议价空间对应的议价空间数组,称之为当前议价空间数组。为方便阐述,不妨认为当前议价空间数组已经创建并与当前表项关联。
步骤S23:遍历当前议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,直至满足遍历结束条件。
步骤S23的大部分内容与步骤S12类似,可以参考步骤S12中的阐述,下面只阐述其区别点。若遍历结束条件中的“当前议价空间数组已经被遍历完”的条件被满足,表示在当前议价空间数组内当前委托未能完全匹配,其委托价格超过了当前议价空间的表示范围,可以尝试在其他议价空间数组中继续进行匹配,具体做法如下:
A.首先确定当前表项在遍历方向上的下一个表项,然后判断下一个表项是否关联有议价空间数组。
B.若关联有议价空间数组,获得与下一个表项关联的下一个议价空间数组,以下一个议价空间数组的一端的数组索引为起点,按照遍历方向遍历下一个议价空间数组中的数组元素,继续对当前委托的交易量进行匹配。其中,以下一个议价空间数组的一端是指在价格上与当前议价空间数组被遍历完的一端连续的那一端。若在下一个议价空间数组内当前委托仍然未能完成匹配,跳转至步骤A继续执行。
C.若未关联有议价空间数组,表明当前委托应当作为一个等待交易的委托。同时若当前委托的价格恰好对应下一个表项,创建下一个议价空间数组,并将下一个议价空间数组与下一个表项关联,之后在下一个议价空间数组中,将当前委托和与该委托的价格对应的数组元素关联,关联完成后更新最优交易价格。若当前委托的价格并不对应下一个表项,跳转至步骤A继续执行。
在本实施例中,议价空间数组可以动态地创建,有效地适应议价空间浮动的情况,从而该议价空间索引表可以长期用于交易撮合,不必担心因价格波动导致议价空间失效的问题。
进一步的,可以定期回收不再与任何等待交易的委托关联的议价空间数组,以节约系统资源。具体而言,议价空间索引表的每个表项中可以记录关联的议价空间数组中等待交易的委托的数量(买卖委托的总量,若未关联有议价空间数组,则记录0),在每次进行委托匹配后都要更新该数量,在该数量为0时,表明该议价空间数组不再与任何等待交易的委托关联,若这种状况持续一段时间,表明当前的交易已经不再发生于该议价空间数组对应的议价空间内,因此可以对该议价空间数组进行回收。可以理解的,回收后应解除表项与被回收的议价空间数组之间的关联。
本发明实施例还提供一种如图6所示的交易撮合方法。参照图 6,该方法包括:
步骤S30:判断当前委托的价格是否超过预设范围。
在实际中,有时会出现一些异常的委托,例如价格极低的买委托或价格极高的卖委托。这些委托成交的概率极低,如果用之前的方法处理这些委托,可能导致内存资源浪费(为保存这些等待交易的委托需要创建相应的数据结构,但这些委托几乎不会成交)。因此,可以对新来的委托先进行筛选,只有价格合理的委托才使用之前的方法进行撮合,即执行步骤S31。价格不合理的委托可以认为是恶意委托,丢弃不处理;或者为了谨慎起见,可以采用步骤S32 至步骤S35的方式进行处理。
步骤S31:进行交易撮合。
可以采用前面实施例中的方法,利用议价空间数组或空间价格索引表完成交易撮合,不再重复阐述。
步骤S32:根据当前委托的价格查找AVL树的节点,尝试获得当前委托当前能够成交的最劣交易价格。
AVL树(平衡二叉树)的每个节点均对应一个价格且与具有该价格的等待交易的委托关联,关联的方式不限,例如可以是链表,将节点作为链表的头部。AVL树按照节点对应的价格对节点进行排序,例如,在一种AVL树中,每个非叶子节点的左子树中的节点对应的价格均小于该节点对应的价格,右子树中的节点对应的价格均大于该节点对应的价格。
不难看出,这里AVL树的节点类似于议价空间数组中的数组元素。相对于议价空间数组,AVL树的在添加等待交易的委托以及进行委托匹配时效率要低一些,但是,由于步骤S32中的等待交易的委托是被认为价格不合理的委托,其成交的概率极低,同时数量也不多,因此需要用到AVL树的机会不大,这种效率的牺牲对于整个交易撮合过程来说影响很小。同时,将价格不合理的委托利用AVL 树进行处理,可以减少议价空间数组或空间价格索引表的内存分配,节约存储资源。
若当前委托为买委托,最劣交易价格是指当前委托当前能够成交的最高卖价(不高于当前委托的价格);若当前委托的类型为卖委托,最劣交易价格为当前委托当前能够成交的最低买价(不低于当前委托的价格)。根据AVL树的排序特征,容易找到最劣交易价格,具体过程不进行详细阐述。
若成功获得最劣交易价格,执行步骤S33。若未成功获得最劣交易价格,表明当前委托当前无法成交,应为等待交易的委托,此时可以生成与当前委托的价格对应的节点,并将节点与当前委托关联,然后将该节点插入到AVL树中(AVL树的插入算法会自动平衡 AVL树)。
步骤S33:基于最劣交易价格确定所述AVL树中对应的价格当前能够成交的节点。
凡是对应的价格在与当前委托的匹配过程中优于最劣交易价格的节点都可以作为当前能够成交的节点(理论上能够成交,实际中还要看委托的交易量)。例如,对于当前委托是买委托的情况而言,最劣交易价格对应的节点以及该节点的左子树中的全部节点都可以作为当前能够成交的节点。
步骤S34:获得当前委托当前能够成交的最优交易价格。
若当前委托为买委托,最优交易价格是指当前委托当前能够成交的最低卖价;若当前委托的类型为卖委托,最优交易价格为当前委托当前能够成交的最高买价。根据AVL树的排序特征,容易找到最优交易价格,具体过程不进行详细阐述。需要指出,这里的最优交易价格仅在AVL树中使用,不可与在议价空间数组或价格空间索引表中使用的混为一谈。
步骤S35:遍历当前能够成交的节点,对每个节点,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,直至满足遍历结束条件。
遍历以最优交易价格对应的节点为起点,按照与当前委托的类型对应的遍历顺序进行。例如,对于当前委托是买委托的情况而言,最优交易价格对应的节点可以是最劣交易价格对应的节点的左子树的最左侧的叶子节点,从该节点开始,按照节点对应的价格依次增大的顺序进行遍历。对每个节点,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,其过程和之前阐述的类似,不再重复阐述。
遍历结束条件包括以下条件中的任意一个:当前委托的交易量已经完全匹配以及当前能够成交的节点已经被遍历完。
条件“当前能够成交的节点已经被遍历完”表示在AVL树内当前委托未能完全匹配,此时应将当前委托作为等待交易的委托进行处理。首先判断AVL树中是否已经存在与当前委托的价格对应的节点,若存在这样的节点,直接将该节点与当前委托关联,若不存在这样的节点,生成这样的节点并将该节点与当前委托关联,然后将该节点插入到AVL树中。
进一步的,可以定期删除不再与任何等待交易的委托关联的节点,以节约系统资源。具体而言,AVL树的每个节点中可以记录关联的等待交易的委托的数量(买卖委托的总量,若未等待交易的委托,则记录0),在每次进行委托匹配后都要更新该数量,在该数量为0时,表明该节点不再与任何等待交易的委托关联,可以对该节点进行删除(AVL树的删除算法会自动平衡AVL树)。
本发明实施例还提供一种如图7所示的交易撮合装置200。参照图7,交易撮合装置200应用于议价空间数组,议价空间数组中的每个数组元素的数组索引依次对应议价空间中的一个价格,相邻的数组索引对应的价格相差一个最小价格单位,每个等待交易的委托均和与该委托的价格对应的数组元素关联,该装置包括:
价格获取模块210,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块220,用于对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
遍历模块230,用于若可进行成交,以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及议价空间数组已经被遍历完。
本发明实施例提供的交易撮合装置200,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。
本发明实施例还提供一种如图8所示的交易撮合装置300。参照图8,交易撮合装置300应用于议价空间索引表,议价空间索引表的每个表项均能够与一个第一方面或第一方面的任意一种可能的实现方式提供的议价空间数组关联,相邻的表项能够关联的议价空间数组对应的议价空间是价格连续的,该装置包括:
价格获取模块310,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块320,用于对比最优交易价格以及当前委托的价格,判断当前委托的价格是否可进行成交;
数组获取模块330,用于若可进行成交,确定最优交易价格对应的议价空间索引表的当前表项,获得与当前表项关联的当前议价空间数组;
遍历模块340,用于以最优交易价格对应的数组索引为起点,按照与当前委托的类型对应的遍历方向遍历当前议价空间数组中的数组元素,对每个关联有等待交易的委托的数组元素,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、当前委托的交易量已经完全匹配以及当前议价空间数组已经被遍历完。
本发明实施例提供的交易撮合装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。
本发明实施例还提供一种如图9所示的交易撮合装置400。参照图9,该装置包括:
价格范围判断模块410,用于判断当前委托的价格是否超过预设范围;
撮合模块420,用于若未超过预设范围,执行本发明实施例提供的交易撮合方法的步骤,具体可以采用,但不限于图4或图5示出的方法。
在本实施例的一种实现方式中,该装置还包括:
最劣交易价格获取模块,用于若超过预设范围,根据当前委托的价格查找AVL树的节点,尝试获得当前委托当前能够成交的最劣交易价格,其中,AVL树的每个节点均对应一个价格且与具有该价格的等待交易的委托关联;
遍历节点确定模块,用于若成功获得最劣交易价格,基于最劣交易价格确定AVL树中对应的价格当前能够成交的节点;
最优交易价格获取模块,用于获得当前委托当前能够成交的最优交易价格;
遍历模块,用于以最优交易价格对应的节点为起点,按照与当前委托的类型对应的遍历顺序遍历当前能够成交的节点,对每个节点,将关联的等待交易的委托的交易量与当前委托的交易量进行匹配,在每次匹配后,更新当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,遍历结束条件包括以下条件中的任意一个:当前委托的交易量已经完全匹配以及当前能够成交的节点已经被遍历完。
本发明实施例提供的交易撮合装置400,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的交易撮合方法的步骤。该计算机可读存储介质可以实现为,但不限于图1示出的存储装置104。
本发明实施例还提供一种电子设备,包括存储器以及处理器,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的交易撮合方法的步骤。该电子设备可以实现为,但不限于图1示出的电子设备100。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本发明各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (19)
1.一种交易撮合方法,其特征在于,应用于议价空间数组,所述议价空间数组中的每个数组元素的数组索引依次对应议价空间中的一个价格,相邻的数组索引对应的价格相差一个最小价格单位,每个等待交易的委托均和与该委托的价格对应的数组元素关联,所述方法包括:
获得和当前委托同类型的委托当前能够成交的最优交易价格;
对比所述最优交易价格以及所述当前委托的价格,判断所述当前委托的价格是否可进行成交;
若可进行成交,以所述最优交易价格对应的数组索引为起点,按照与所述当前委托的类型对应的遍历方向遍历所述议价空间数组中的数组元素,对每个关联有所述等待交易的委托的数组元素,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量;
持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、所述当前委托的交易量已经完全匹配以及所述议价空间数组已经被遍历完。
2.根据权利要求1所述的交易撮合方法,其特征在于,在所述判断所述当前委托的价格是否可进行成交之后,所述方法还包括:
若不可进行成交,将所述当前委托和与该委托的价格对应的数组元素关联。
3.根据权利要求1所述的交易撮合方法,其特征在于,若所述当前数组索引对应的价格当前已经不能成交的条件被满足,在所述遍历过程结束后,所述方法还包括:
将所述当前委托和与该委托的价格对应的数组元素关联;
更新所述最优交易价格。
4.根据权利要求1所述的交易撮合方法,其特征在于,若所述当前委托的交易量已经完全匹配的条件被满足,在所述遍历过程结束后,所述方法还包括:
更新所述最优交易价格。
5.根据权利要求1所述的交易撮合方法,其特征在于,每个等待交易的委托均存储在与该委托的价格对应的委托链表的节点中,所述委托链表的头部为与该委托的价格对应的数组元素,所述对每个关联有所述等待交易的委托的数组元素,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,包括:
对每个作为非空的所述委托链表的头部的数组元素,从所述委托链表的头部开始,遍历所述委托链表中的节点,将每个节点中存储的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配。
6.根据权利要求1-5中任一项所述的交易撮合方法,其特征在于,委托的类型包括买委托以及卖委托,若所述当前委托为买委托,所述最优交易价格为买委托当前能够成交的最低卖价,若所述当前委托的类型为卖委托,所述最优交易价格为卖委托当前能够成交的最高买价。
7.一种交易撮合方法,其特征在于,应用于议价空间索引表,所述议价空间索引表的每个表项均能够与一个如权利要求1-6中任一项所述的议价空间数组关联,相邻的表项能够关联的所述议价空间数组对应的议价空间是价格连续的,所述方法包括:
获得和当前委托同类型的委托当前能够成交的最优交易价格;
对比所述最优交易价格以及所述当前委托的价格,判断所述当前委托的价格是否可进行成交;
若可进行成交,确定所述最优交易价格对应的所述议价空间索引表的当前表项,获得与所述当前表项关联的当前议价空间数组;
以所述最优交易价格对应的数组索引为起点,按照与所述当前委托的类型对应的遍历方向遍历所述当前议价空间数组中的数组元素,对每个关联有所述等待交易的委托的数组元素,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量;
持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、所述当前委托的交易量已经完全匹配以及所述当前议价空间数组已经被遍历完。
8.根据权利要求7所述的交易撮合方法,其特征在于,在所述判断所述当前委托的价格是否可进行成交之后,所述方法还包括:
若不可进行成交,确定所述当前委托的价格对应的所述议价空间索引表的表项,判断所述表项是否关联有所述议价空间数组;
若关联有所述议价空间数组,在所述议价空间数组中将所述当前委托和与该委托的价格对应的数组元素关联;
若未关联有所述议价空间数组,创建所述议价空间数组,并将所述议价空间数组与所述表项关联;
在所述议价空间数组中,将所述当前委托和与该委托的价格对应的数组元素关联。
9.根据权利要求7所述的交易撮合方法,其特征在于,若所述当前议价空间数组已经被遍历完的条件被满足,在所述遍历过程结束后,所述方法还包括:
确定所述当前表项在所述遍历方向上的下一个表项;
判断所述下一个表项是否关联有下一个议价空间数组;
若关联有所述下一个议价空间数组,获得与所述下一个表项关联的下一个议价空间数组;
以所述下一个议价空间数组的一端的数组索引为起点,按照所述遍历方向遍历所述下一个议价空间数组中的数组元素,继续对所述当前委托的交易量进行匹配;
若未关联有所述议价空间数组且所述当前委托的价格恰好对应所述下一个表项,创建所述下一个议价空间数组,并将所述下一个议价空间数组与所述下一个表项关联;
在所述下一个议价空间数组中,将所述当前委托和与该委托的价格对应的数组元素关联;
更新所述最优交易价格。
10.根据权利要求7所述交易撮合方法,其特征在于,所述方法还包括:定期回收不再与任何所述等待交易的委托关联的所述议价空间数组。
11.一种交易撮合方法,其特征在于,包括:
判断当前委托的价格是否超过预设范围;
若未超过所述预设范围,执行如权利要求1-10中任一项所述的方法的步骤。
12.根据权利要求11所述的交易撮合方法,其特征在于,在所述判断当前委托的价格是否超过预设范围之后,所述方法还包括:
若超过所述预设范围,根据所述当前委托的价格查找AVL树的节点,尝试获得所述当前委托当前能够成交的最劣交易价格,其中,所述AVL树的每个节点均对应一个价格且与具有该价格的等待交易的委托关联;
若成功获得所述最劣交易价格,基于所述最劣交易价格确定所述AVL树中对应的价格当前能够成交的节点;
获得所述当前委托当前能够成交的最优交易价格;
以所述最优交易价格对应的节点为起点,按照与所述当前委托的类型对应的遍历顺序遍历所述当前能够成交的节点,对每个节点,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量;
持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:所述当前委托的交易量已经完全匹配以及所述当前能够成交的节点已经被遍历完。
13.根据权利要求12所述的交易撮合方法,其特征在于,在所述尝试获得所述当前委托当前能够成交的最劣交易价格之后,所述方法还包括:
若未成功获得所述最劣交易价格,生成与所述当前委托的价格对应的节点,并将所述节点与所述当前委托关联;
将所述节点插入到所述AVL树中。
14.根据权利要求12所述的交易撮合方法,其特征在于,若所述当前能够成交的节点已经被遍历完的条件被满足,在所述遍历过程结束后,所述方法还包括:
判断所述AVL树中是否已经存在与所述当前委托的价格对应的节点;
若存在所述节点,将所述节点与所述当前委托关联;
若不存在所述节点,生成所述节点,并将所述节点与所述当前委托关联;
将所述节点插入到所述AVL树中。
15.根据权利要求12-14中任一项所述的交易撮合方法,其特征在于,委托的类型包括买委托以及卖委托,若所述当前委托为买委托,所述最劣交易价格为所述当前委托当前能够成交的最高卖价,所述最优交易价格为所述当前委托当前能够成交的最低卖价,若所述当前委托的类型为卖委托,所述最劣交易价格为所述当前委托当前能够成交的最低买价,所述最优交易价格为所述当前委托当前能够成交的最高买价。
16.一种交易撮合装置,其特征在于,应用于议价空间数组,所述议价空间数组中的每个数组元素的数组索引依次对应议价空间中的一个价格,相邻的数组索引对应的价格相差一个最小价格单位,每个等待交易的委托均和与该委托的价格对应的数组元素关联,所述装置包括:
价格获取模块,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块,用于对比所述最优交易价格以及所述当前委托的价格,判断所述当前委托的价格是否可进行成交;
遍历模块,用于若可进行成交,以所述最优交易价格对应的数组索引为起点,按照与所述当前委托的类型对应的遍历方向遍历所述议价空间数组中的数组元素,对每个关联有所述等待交易的委托的数组元素,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、所述当前委托的交易量已经完全匹配以及所述议价空间数组已经被遍历完。
17.一种交易撮合装置,其特征在于,应用于议价空间索引表,所述议价空间索引表的每个表项均能够与一个如权利要求1-6中任一项所述的议价空间数组关联,相邻的表项能够关联的所述议价空间数组对应的议价空间是价格连续的,所述装置包括:
价格获取模块,用于获得和当前委托同类型的委托当前能够成交的最优交易价格;
价格判断模块,用于对比所述最优交易价格以及所述当前委托的价格,判断所述当前委托的价格是否可进行成交;
数组获取模块,用于若可进行成交,确定所述最优交易价格对应的所述议价空间索引表的当前表项,获得与所述当前表项关联的当前议价空间数组;
遍历模块,用于以所述最优交易价格对应的数组索引为起点,按照与所述当前委托的类型对应的遍历方向遍历所述当前议价空间数组中的数组元素,对每个关联有所述等待交易的委托的数组元素,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:当前数组索引对应的价格当前已经不能成交、所述当前委托的交易量已经完全匹配以及所述当前议价空间数组已经被遍历完。
18.一种交易撮合装置,其特征在于,包括:
价格范围判断模块,用于判断当前委托的价格是否超过预设范围;
撮合模块,用于若未超过所述预设范围,执行如权利要求1-10中任一项所述的方法的步骤。
19.根据权利要求18所述的交易撮合装置,其特征在于,所述装置还包括:
最劣交易价格获取模块,用于若超过所述预设范围,根据所述当前委托的价格查找AVL树的节点,尝试获得所述当前委托当前能够成交的最劣交易价格,其中,所述AVL树的每个节点均对应一个价格且与具有该价格的等待交易的委托关联;
遍历节点确定模块,用于若成功获得所述最劣交易价格,基于所述最劣交易价格确定所述AVL树中对应的价格当前能够成交的节点;
最优交易价格获取模块,用于获得所述当前委托当前能够成交的最优交易价格;
遍历模块,用于以所述最优交易价格对应的节点为起点,按照与所述当前委托的类型对应的遍历顺序遍历所述当前能够成交的节点,对每个节点,将关联的所述等待交易的委托的交易量与所述当前委托的交易量进行匹配,在每次匹配后,更新所述当前委托的交易量,持续遍历过程,直至满足遍历结束条件,其中,所述遍历结束条件包括以下条件中的任意一个:所述当前委托的交易量已经完全匹配以及所述当前能够成交的节点已经被遍历完。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180227.3A CN109409990B (zh) | 2018-10-10 | 2018-10-10 | 交易撮合方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180227.3A CN109409990B (zh) | 2018-10-10 | 2018-10-10 | 交易撮合方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109409990A true CN109409990A (zh) | 2019-03-01 |
CN109409990B CN109409990B (zh) | 2020-09-08 |
Family
ID=65467470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811180227.3A Active CN109409990B (zh) | 2018-10-10 | 2018-10-10 | 交易撮合方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109409990B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910196A (zh) * | 2019-10-12 | 2020-03-24 | 珠海市闪石科技有限公司 | 一种交易异议处理结算的方法、装置、设备及存储介质 |
CN111402053A (zh) * | 2020-03-16 | 2020-07-10 | 杭州时戳信息科技有限公司 | 交易撮合方法、系统、计算机可读存储介质及计算设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040076677A (ko) * | 2003-02-26 | 2004-09-03 | 한국증권전산주식회사 | 네트워크망을 통한 주식 체결 정보 조회시의 데이터 축소방법 |
CN102567904A (zh) * | 2010-12-08 | 2012-07-11 | 宇汇知识科技股份有限公司 | 网络交易撮合系统与方法 |
CN106570741A (zh) * | 2016-07-08 | 2017-04-19 | 伯禄(上海)商务咨询有限公司 | 自动撮合匹配方法在网络现货交易平台的运用 |
CN107146155A (zh) * | 2017-04-18 | 2017-09-08 | 优品财富管理股份有限公司 | 一种利用红黑树索引提高交易系统撮合效率的方法及系统 |
CN107274284A (zh) * | 2016-04-07 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 双向撮合方法、装置以及交易系统 |
-
2018
- 2018-10-10 CN CN201811180227.3A patent/CN109409990B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040076677A (ko) * | 2003-02-26 | 2004-09-03 | 한국증권전산주식회사 | 네트워크망을 통한 주식 체결 정보 조회시의 데이터 축소방법 |
CN102567904A (zh) * | 2010-12-08 | 2012-07-11 | 宇汇知识科技股份有限公司 | 网络交易撮合系统与方法 |
CN107274284A (zh) * | 2016-04-07 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 双向撮合方法、装置以及交易系统 |
CN106570741A (zh) * | 2016-07-08 | 2017-04-19 | 伯禄(上海)商务咨询有限公司 | 自动撮合匹配方法在网络现货交易平台的运用 |
CN107146155A (zh) * | 2017-04-18 | 2017-09-08 | 优品财富管理股份有限公司 | 一种利用红黑树索引提高交易系统撮合效率的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910196A (zh) * | 2019-10-12 | 2020-03-24 | 珠海市闪石科技有限公司 | 一种交易异议处理结算的方法、装置、设备及存储介质 |
CN111402053A (zh) * | 2020-03-16 | 2020-07-10 | 杭州时戳信息科技有限公司 | 交易撮合方法、系统、计算机可读存储介质及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109409990B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Matsunaga et al. | Exploring graph neural networks for stock market predictions with rolling window analysis | |
Nallur et al. | A decentralized self-adaptation mechanism for service-based applications in the cloud | |
KR101543643B1 (ko) | 주식종목 순위 분석 시스템 및 이를 이용한 주식종목 선택방법 | |
Yeh et al. | Economic-based resource allocation for reliable Grid-computing service based on Grid Bank | |
CN105574649B (zh) | 一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法 | |
EP2377088A1 (en) | Determination of implied orders in a trade matching system | |
Arafah et al. | The application of fuzzy association rule on co-movement analyze of Indonesian stock price | |
Omar et al. | E-commerce in Malaysia: Development, implementation and challenges | |
US11476669B2 (en) | Method and system for building reinforcement learning (RL) based model for generating bids | |
WO2020210974A1 (zh) | 基于改进多目标演化算法的高质量模式挖掘模型及方法 | |
CN110428139A (zh) | 基于标签传播的信息预测方法及装置 | |
CN109409990A (zh) | 交易撮合方法及装置 | |
Ji et al. | The network structure of Chinese finance market through the method of complex network and random matrix theory | |
CN104321800A (zh) | 价格目标生成器 | |
Wang et al. | Economical data-intensive service provision supported with a modified genetic algorithm | |
CN113144624A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109271371B (zh) | 一种基于Spark的分布式多层大数据分析处理模型 | |
CN110321475A (zh) | 数据列表的排序方法、装置、设备及存储介质 | |
Karpio et al. | Mining associations on the warsaw stock exchange | |
CN108256694A (zh) | 基于重复遗传算法的模糊时间序列预测系统、方法及装置 | |
Altuner et al. | A novel deep reinforcement learning based stock price prediction using knowledge graph and community aware sentiments | |
CN113762415A (zh) | 一种基于神经网络的汽车金融产品智能匹配方法和系统 | |
Prasad et al. | Prioritization of e-waste management strategies towards green computing using AHP-QFD approach | |
Anuradha et al. | Market Analysis and Forecasting using Trending Data Analytical Tool | |
Schur | Approximately Optimal Solutions for Nonlinear Dynamic Pricing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing Applicant after: Beijing Zhichuangyu Information Technology Co., Ltd. Address before: Room 311501, Unit 1, Building 5, Courtyard 1, Futong East Street, Chaoyang District, Beijing Applicant before: Beijing Knows Chuangyu Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |