CN111861743A - 一种基于逐笔数据重构市场行情的方法、装置及设备 - Google Patents
一种基于逐笔数据重构市场行情的方法、装置及设备 Download PDFInfo
- Publication number
- CN111861743A CN111861743A CN202010609099.0A CN202010609099A CN111861743A CN 111861743 A CN111861743 A CN 111861743A CN 202010609099 A CN202010609099 A CN 202010609099A CN 111861743 A CN111861743 A CN 111861743A
- Authority
- CN
- China
- Prior art keywords
- data
- order
- gear
- stroke
- entrusted
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 11
- 238000002910 structure generation Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于逐笔数据重构市场行情的方法,能够针对目标证券生成盘口跳表和订单哈希表,其中盘口跳表包括按照委托价格划分的多个档位,每个档位包括委托价格和委托数量,订单哈希表包括多个订单数据项,订单数据项包括未成交数量、盘口档位指针和作为键的委托订单号。可见,该方法使用跳表保存盘口的量价关系,利用跳表第一层的线性结构提高市场行情输出时的性能,使用订单哈希表加速接收逐笔成交后定位扣减档位的速度,因此,能够提高基于逐笔数据重构市场行情的性能,降低后端交易系统接收行情的延迟。此外,本申请还提供了一种基于逐笔数据重构市场行情的装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种基于逐笔数据重构市场行情的方法、装置、设备及可读存储介质。
背景技术
近年来,随着我国证券市场的快速发展,相关的交易技术也突飞猛进。为了更好的服务市场,上海证券交易所和深圳证券交易所都对交易系统进行了大幅度的升级改造。在行情发布方面,相继推出了包含十档行情和逐笔数据的Level-2行情(沪深交易所提供的收费行情服务)。目前深圳证券交易所的Level-2逐笔数据包含逐笔委托和逐笔成交,这就使得深圳证券交易所Level-2行情的接收方可以利用逐笔数据和交易规则自行重构市场行情,与交易所每三秒发布一次的十档快照行情相比,自行重构的市场行情可以随时保持与交易所撮合机一致的全部档位,这种行情可以使其用户对整个市场有更加深入和细致的了解。
基于逐笔数据自行重构市场行情的核心思路是自行维护盘口的量价关系。在当前深圳证券交易所存在一万余只证券的情况下,接收快速产生的逐笔数据并自行维护盘口的量价关系,对于保存盘口和订单的数据结构以及更新算法的性能要求极高。在市场交易非常活跃时,性能不足的方法和程序会在大量的逐笔数据的冲击下崩溃。
在维护盘口的量价关系的过程中,需要在保存盘口的数据结构上频繁执行大量的增加、删除、修改、查询、遍历操作,但多数数据结构都只能优化上述操作中的某些方面。在常用的撮合引擎的开源实现中,用于保存盘口的数据结构包括链表、平衡树、哈希表等。如果使用链表来保存盘口,有利于增加、删除、遍历,不利于查询;如果使用平衡树来保存盘口,有利于查询,不利于增加、删除、遍历;如果使用哈希表来保存盘口,有利于查询、增加、删除,但是在生成行情时无法直接以价格优先的顺序遍历盘口。
可见,在基于逐笔数据重构市场行情的过程中,需要频繁进行多种类型的数据操作,单一的数据结构无法满足当前的性能需求。
发明内容
本申请的目的是提供一种基于逐笔数据重构市场行情的方法、装置、设备及可读存储介质,用以解决在基于逐笔数据重构市场行情的过程中,需要频繁进行多种类型的数据操作,单一的数据结构无法满足当前的性能需求的问题。其具体方案如下:
第一方面,本申请提供了一种基于逐笔数据重构市场行情的方法,包括:
针对目标证券,生成盘口跳表和订单哈希表,其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;
接收逐笔数据;
在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
优选的,所述针对目标证券,生成盘口跳表和订单哈希表,包括:
针对目标证券,生成盘口跳表、订单哈希表和档位哈希表,其中所述档位哈希表包括多个档位数据项,所述档位数据项的键为委托价格,所述档位数据项的值为盘口档位指针;
相应的,所述在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,包括:
在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据中的委托价格,确定所述档位哈希表中相应的目标档位数据项;根据目标档位数据项的盘口档位指针,确定所述盘口跳表中相应的目标档位,更新目标档位的委托数量。
优选的,所述根据所述逐笔委托数据中的委托价格,确定所述档位哈希表中相应的目标档位数据项,包括:
判断所述档位哈希表中是否存在所述逐笔委托数据的委托价格;
若存在,确定与所述逐笔委托数据的委托价格相对应的目标档位数据项;
若不存在,则在所述盘口跳表增加与所述逐笔委托数据的委托价格相对应的档位,在所述档位哈希表增加与所述逐笔委托数据的委托价格相对应的档位数据项。
优选的,在所述更新目标订单数据项中的未成交数量之后,还包括:
若更新后的未成交数量为0,则删除所述目标订单数据项。
优选的,在所述根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量之后,还包括:
若更新后的委托数量为0,则删除所述目标档位。
优选的,所述按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据,包括:
按照预设周期,以委托价格的大小顺序遍历更新后的盘口跳表,选取预设数量的档位,以作为所述目标证券的市场行情数据。
优选的,所述盘口跳表包括买入盘口跳表和卖出盘口跳表,所述按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据,包括:
判断买入盘口跳表的委托价格是否低于卖出盘口跳表的委托价格;
若是,按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
第二方面,本申请提供了一种基于逐笔数据重构市场行情的装置,包括:
数据结构生成模块:用于针对目标证券,生成盘口跳表和订单哈希表,其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;
逐笔数据接收模块:用于接收逐笔数据;
第一数据更新模块:用于在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
第二数据更新模块:用于在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
市场行情生成模块:用于按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
第三方面,本申请提供了一种基于逐笔数据重构市场行情的设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上所述的基于逐笔数据重构市场行情的方法的步骤。
第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于逐笔数据重构市场行情的方法的步骤。
本申请所提供的一种基于逐笔数据重构市场行情的方法,包括:针对目标证券,生成盘口跳表和订单哈希表,其中盘口跳表包括按照委托价格划分的多个档位,每个档位包括委托价格和委托数量,订单哈希表包括多个订单数据项,订单数据项的键为委托订单号,订单数据项的值包括未成交数量和盘口档位指针;接收逐笔数据;在逐笔数据为逐笔委托数据时,根据逐笔委托数据更新盘口跳表,在订单哈希表中增加与逐笔委托数据的委托订单号相对应的订单数据项;在逐笔数据为逐笔成交数据时,根据逐笔成交数据中的委托订单号,确定订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定盘口跳表中相应的目标档位,更新目标档位中的委托数量;按照委托价格的大小顺序遍历更新后的盘口跳表,生成目标证券的市场行情数据。
可见,该方法使用跳表保存盘口的量价关系,利用跳表第一层的线性结构提高市场行情输出时的性能,使用订单哈希表加速接收逐笔成交后定位扣减档位的速度,因此,能够提高基于逐笔数据重构市场行情的性能,降低后端交易系统接收行情的延迟。
此外,本申请还提供了一种基于逐笔数据重构市场行情的装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种基于逐笔数据重构市场行情的方法实施例一的实现流程图;
图2为本申请所提供的跳表结果示意图;
图3为本申请所提供的一种基于逐笔数据重构市场行情的方法实施例二的实现流程图;
图4为本申请所提供的一种基于逐笔数据重构市场行情的方法应用实施例的实现流程图;
图5为本申请所提供的一种基于逐笔数据重构市场行情的装置实施例的功能框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,基于逐笔数据重构市场行情的过程中,需要频繁对盘口数据进行各种数据操作,因此,在证券数量较大时,对保存盘口的数据结构以及更新算法的性能要求极高。
针对该问题,本申请提供一种基于逐笔数据重构市场行情的方法、装置、设备及可读存储介质,生成盘口跳表保存盘口数据,且生成订单哈希表以方便更新订单,支持快速增、删、改、查的盘口和订单数据,基于上述数据结构实现了对市场行情的快速重构。
下面对本申请提供的一种基于逐笔数据重构市场行情的方法实施例一进行介绍,参见图1,实施例一包括:
S101、针对目标证券,生成盘口跳表和订单哈希表;
其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项。在市场行情重构的场景下,除了要保存盘口,还要保存每笔尚未全部成交的订单。在具体实施时,本实施例使用订单哈希表,订单哈希表的键为订单编号,值包括未成交数量和对应档位的跳表节点指针。
S102、接收逐笔数据;
S103、在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
具体的,在接收到逐笔委托数据之后,根据逐笔委托数据中的委托价格从盘口跳表中查找对应的档位,根据逐笔委托数据中的数量更新该档位的委托数量。这种利用盘口跳表查询对应的档位的方式,时间复杂度为对数时间。此外,还需要在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项。
S104、在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
S105、按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
在市场行情数据中,买方盘口由价格由高到底的多个档位组成,卖方盘口则由价格由低到高的多个档位组成,每个档位上都是委托价格和对应的委托数量。
在市场行情重构的场景中,收到逐笔成交数据之后,需要查找对应的订单数据项,并进行未成交数量的更新。具体的,对于逐笔成交消息中的成交数据,根据买方或卖方的委托订单号和成交数量更新相应订单数据项的未成交数量和档位的委托数量;对于逐笔成交消息中的撤单数据,则根据是买方或卖方的委托订单编号和撤单数量做出相应更新。
可以理解的是,如果更新后的未成交数量为零,还要删除对应的订单数据项。同理,如果更新后的委托数量为零,则删除对应的档位。
在发送市场行情时,需要遍历买卖两个方向的盘口。具体的,每次收到逐笔数据并更新盘口之后,如果盘口的价格不存在交叉关系,就可以对外发送市场行情。
本实施例所提供一种基于逐笔数据重构市场行情的方法,采用跳表保存盘口,如图2所示,跳表是一种概率化的多层次索引的链表,能够在保持链表的线性结构的基础上,增加多个层次的索引提高查询效率,所以跳表查询、增加、删除的效率在概率上与平衡树相当,且增加和删除操作不需要保持子树平衡。而且,由于跳表第一层是线性结构,比平衡树更适合发送市场行情时的遍历操作,能够达到对数时间复杂度。
可见,该方法使用跳表保存盘口的量价关系,利用跳表第一层的线性结构提高市场行情输出时的性能,使用订单哈希表加速接收逐笔成交后定位扣减档位的速度,因此,能够提高基于逐笔数据重构市场行情的性能,降低后端交易系统接收行情的延迟。
下面开始详细介绍本申请提供的一种基于逐笔数据重构市场行情的方法实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。
实施例一对根据逐笔委托数据和逐笔成交数据更新盘口的过程进行了说明,其中根据逐笔委托数据在盘口跳表查找对应档位的过程的时间复杂度为对数时间,本实施例对该过程做进一步优化,减少查询时间。具体的,本实施例设置了档位哈希表,利用其存储委托价格与盘口节点指针的对应关系,从而将查询时间从对数时间降低到单位时间。
参见图3,实施例二具体包括:
S301、针对目标证券,生成盘口跳表、订单哈希表和档位哈希表;
其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量;所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;所述档位哈希表包括多个档位数据项,所述档位数据项的键为委托价格,所述档位数据项的值为盘口档位指针。
S302、接收逐笔数据;
S303、在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据中的委托价格,确定所述档位哈希表中相应的目标档位数据项;根据目标档位数据项的盘口档位指针,确定所述盘口跳表中相应的目标档位,更新目标档位的委托数量;在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
在实际的证券交易中,交易者报出独立档位价格,由于成交和撤单造成档位数量扣减到零的情况不多,大部分操作仍然是针对现有的档位修改数量。针对这种操作特点,本实施例使用一个档位哈希表保存委托价格和对应档位的跳表节点指针,将查询时间由跳表的对数时间复杂度降低到在单位时间内完成。
收到逐笔委托数据之后,根据委托价格查找对应的档位数据项,若存在对应的档位数据项,根据该档位数据项的盘口档位指针确定对应的档位,对该档位上的委托数量进行更新,并在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;若不存在对应的档位数据项,需要增加一个档位数据项,并增加一个档位以记录委托价格和委托数量,同时需要增加一个订单数据项以记录委托订单编号、未成交数量以及对应档位。
具体的,判断所述档位哈希表中是否存在所述逐笔委托数据的委托价格;若存在,确定与所述逐笔委托数据的委托价格相对应的目标档位数据项,在所述订单哈希表增加与所述逐笔委托数据的委托订单号相对应的订单数据项,在订单哈希表中增加与逐笔委托数据的委托订单号相对应的订单数据项;若不存在,则在所述盘口跳表增加与所述逐笔委托数据的委托价格相对应的档位,在所述档位哈希表增加与所述逐笔委托数据的委托价格相对应的档位数据项,在所述订单哈希表增加与所述逐笔委托数据的委托订单号相对应的订单数据项。
S304、在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
可以理解的是,若更新后的未成交数量为0,则删除所述目标订单数据项。同理,若更新后的委托数量为0,则删除所述目标档位。
S305、判断更新后的盘口跳表是否存在交叉关系,若不存在,则进入S306;
具体的,判断买入盘口跳表的委托价格是否低于卖出盘口跳表的委托价格,若低于,则判定不存在交叉关系,否则判定存在交叉关系。
S306、按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
在发送行情时,如果后端交易系统无法处理连续输出的包含全部档位的市场行情,可以每次只输出预设数量的档位,例如输出与Level-2行情快照相同的十个档位,还可以增加一个计时器以固定的时间间隔输出市场行情,或综合使用上述两种方法。
具体的,在同时采用以上两种方式时,S306具体包括:按照预设周期,以委托价格的大小顺序遍历更新后的盘口跳表,选取预设数量的档位,以作为所述目标证券的市场行情数据。
可见,本实施例提供的一种基于逐笔数据重构市场行情的方法,利用一个跳表和两个哈希表相互配合的数据结构,共同完成基于逐笔数据重构市场行情的过程。具体的,使用跳表保存盘口,利用跳表第一层的线性结构提高市场行情输出时的性能,同时在需要增加和删除操作时在概率上达到与平衡树一致的对数时间复杂度;使用档位哈希表加速接收逐笔委托后定位现有档位的速度;使用订单哈希表加速接收逐笔成交后定位扣减档位的速度。因此,本实施例能够提高市场行情重构性能,降低后端交易系统接收行情的延迟。
基于以上实施例,下面以具体应用为例,对本申请的基于逐笔数据重构市场行情的方法进行说明。
用于单只证券的市场行情重构的数据结构如表1所示,包括买卖双向的盘口跳表、档位哈希表、订单哈希表,盘口跳表的每个节点用于存储一个档位的价格和数量。顶层使用一个证券哈希表保存证券代码和六个数据结构实例的对应关系。
表1
基于以上数据结构,本实施例的基于逐笔数据快速重构市场行情的过程如图4所示,包括:
第一步,根据开盘前的证券信息文件,为当天交易的所有证券创建对应的数据结构,将证券代码和对应数据结构写入到证券哈希表。
第二步,接收逐笔数据,使用证券哈希表根据证券代码查询对应数据结构。
第三步,判断逐笔数据类型,如果是逐笔委托消息并且不是市价委托,则使用委托价格作为键值查找档位哈希表。如果存在对应档位就将委托数量累加到对应档位的跳表节点的委托数量上;如果不存在对应档位就创建新的跳表节点记录委托的价格和数量,并将跳表节点插入跳表,同时在档位哈希表中增加价格和对应档位的跳表节点指针的记录。最后,在订单哈希表中记录订单编号和对应档位的跳表节点指针。
第四步,如果是逐笔成交消息,当成交类型是成交时,使用买入和卖出订单编号作为键查询订单哈希表,买入和卖出订单分别扣减成交数量,再根据订单哈希表的值查找对应档位,在对应档位上扣减成交数量。当成交类型是撤单时,使用买入订单编号或者卖出订单编号作为键查询订单哈希表,买入或卖出订单扣减成交数量,再根据订单哈希表的值查找对应档位,在对应档位上扣减成交数量。当对应订单或档位在扣减后数量为零时,删除对应订单和档位。
第五步,判断买一档价格是否小于卖一档价格,如果是则发送行情,不是则等待进一步的成交消息。
第六步,返回第二步,直到全天交易时间结束。
下面对本申请实施例提供的一种基于逐笔数据重构市场行情的装置进行介绍,下文描述的一种基于逐笔数据重构市场行情的装置与上文描述的一种基于逐笔数据重构市场行情的方法可相互对应参照。
如图5所示,本实施例的基于逐笔数据重构市场行情的装置,包括:
数据结构生成模块501:用于针对目标证券,生成盘口跳表和订单哈希表,其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;
逐笔数据接收模块502:用于接收逐笔数据;
第一数据更新模块503:用于在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
第二数据更新模块504:用于在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
市场行情生成模块505:用于按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
本实施例的基于逐笔数据重构市场行情的装置用于实现前述的基于逐笔数据重构市场行情的方法,因此该装置中的具体实施方式可见前文中的基于逐笔数据重构市场行情的方法的实施例部分,例如,数据结构生成模块501、逐笔数据接收模块502、第一数据更新模块503、第二数据更新模块504、市场行情生成模块505,分别用于实现上述基于逐笔数据重构市场行情的方法中步骤S101,S102,S103,S104,S105。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的基于逐笔数据重构市场行情的装置用于实现前述的基于逐笔数据重构市场行情的方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本申请还提供了一种基于逐笔数据重构市场行情的设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如上文所述的基于逐笔数据重构市场行情的方法的步骤。
最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的基于逐笔数据重构市场行情的方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于逐笔数据重构市场行情的方法,其特征在于,包括:
针对目标证券,生成盘口跳表和订单哈希表,其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;
接收逐笔数据;
在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
2.如权利要求1所述的方法,其特征在于,所述针对目标证券,生成盘口跳表和订单哈希表,包括:
针对目标证券,生成盘口跳表、订单哈希表和档位哈希表,其中所述档位哈希表包括多个档位数据项,所述档位数据项的键为委托价格,所述档位数据项的值为盘口档位指针;
相应的,所述在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,包括:
在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据中的委托价格,确定所述档位哈希表中相应的目标档位数据项;根据目标档位数据项的盘口档位指针,确定所述盘口跳表中相应的目标档位,更新目标档位的委托数量。
3.如权利要求2所述的方法,其特征在于,所述根据所述逐笔委托数据中的委托价格,确定所述档位哈希表中相应的目标档位数据项,包括:
判断所述档位哈希表中是否存在所述逐笔委托数据的委托价格;
若存在,确定与所述逐笔委托数据的委托价格相对应的目标档位数据项;
若不存在,则在所述盘口跳表增加与所述逐笔委托数据的委托价格相对应的档位,在所述档位哈希表增加与所述逐笔委托数据的委托价格相对应的档位数据项。
4.如权利要求1所述的方法,其特征在于,在所述更新目标订单数据项中的未成交数量之后,还包括:
若更新后的未成交数量为0,则删除所述目标订单数据项。
5.如权利要求1所述的方法,其特征在于,在所述根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量之后,还包括:
若更新后的委托数量为0,则删除所述目标档位。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据,包括:
按照预设周期,以委托价格的大小顺序遍历更新后的盘口跳表,选取预设数量的档位,以作为所述目标证券的市场行情数据。
7.如权利要求6所述的方法,其特征在于,所述盘口跳表包括买入盘口跳表和卖出盘口跳表,所述按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据,包括:
判断买入盘口跳表的委托价格是否低于卖出盘口跳表的委托价格;
若是,按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
8.一种基于逐笔数据重构市场行情的装置,其特征在于,包括:
数据结构生成模块:用于针对目标证券,生成盘口跳表和订单哈希表,其中所述盘口跳表包括按照委托价格划分的多个档位,所述档位包括委托价格和委托数量,所述订单哈希表包括多个订单数据项,所述订单数据项的键为委托订单号,所述订单数据项的值包括未成交数量和盘口档位指针;
逐笔数据接收模块:用于接收逐笔数据;
第一数据更新模块:用于在所述逐笔数据为逐笔委托数据时,根据所述逐笔委托数据更新所述盘口跳表,在所述订单哈希表中增加与所述逐笔委托数据的委托订单号相对应的订单数据项;
第二数据更新模块:用于在所述逐笔数据为逐笔成交数据时,根据所述逐笔成交数据中的委托订单号,确定所述订单哈希表中相应的目标订单数据项;更新目标订单数据项中的未成交数量;根据目标订单数据项的盘口档位指针确定所述盘口跳表中相应的目标档位,更新目标档位中的委托数量;
市场行情生成模块:用于按照委托价格的大小顺序遍历更新后的盘口跳表,生成所述目标证券的市场行情数据。
9.一种基于逐笔数据重构市场行情的设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序,以实现如权利要求1-7任意一项所述的基于逐笔数据重构市场行情的方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如权利要求1-7任意一项所述的基于逐笔数据重构市场行情的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010609099.0A CN111861743A (zh) | 2020-06-29 | 2020-06-29 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
PCT/CN2021/076925 WO2022001131A1 (zh) | 2020-06-29 | 2021-02-19 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010609099.0A CN111861743A (zh) | 2020-06-29 | 2020-06-29 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111861743A true CN111861743A (zh) | 2020-10-30 |
Family
ID=72989930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010609099.0A Pending CN111861743A (zh) | 2020-06-29 | 2020-06-29 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111861743A (zh) |
WO (1) | WO2022001131A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529705A (zh) * | 2020-12-04 | 2021-03-19 | 深圳市富途网络科技有限公司 | 港股订单的处理方法及相关产品 |
CN112965860A (zh) * | 2021-03-11 | 2021-06-15 | 中科驭数(北京)科技有限公司 | 一种快照行情分发方法、装置、设备及存储介质 |
CN113065964A (zh) * | 2021-04-13 | 2021-07-02 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储系统及方法 |
CN113468080A (zh) * | 2021-06-10 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种全闪元数据的缓存方法、系统及相关装置 |
WO2022001131A1 (zh) * | 2020-06-29 | 2022-01-06 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
CN114238209A (zh) * | 2021-11-16 | 2022-03-25 | 上海金仕达软件科技有限公司 | 快照行情数据的测试方法、装置、电子设备及存储介质 |
CN114549129A (zh) * | 2022-02-22 | 2022-05-27 | 上海金融期货信息技术有限公司 | 一种低延时高吞吐的实时订单簿生成方法 |
CN115686869A (zh) * | 2022-12-29 | 2023-02-03 | 杭州迈拓大数据服务有限公司 | 资源处理方法、系统、电子装置和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114742652A (zh) * | 2022-04-14 | 2022-07-12 | 上海宽睿信息科技有限责任公司 | 一种k线数据的生成方法及装置 |
CN115378847B (zh) * | 2022-08-23 | 2023-10-31 | 国联证券股份有限公司 | 证券行情时延测量系统和方法 |
CN117391860A (zh) * | 2023-11-07 | 2024-01-12 | 中科驭数(北京)科技有限公司 | 风控撤单处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160062954A1 (en) * | 2012-09-15 | 2016-03-03 | Numbergun Llc | Flexible high-speed generation and formatting of application-specified strings |
US10055449B2 (en) * | 2010-04-08 | 2018-08-21 | Microsoft Technology Licensing, Llc | In-memory database system |
CN109741179A (zh) * | 2018-12-25 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 全档位行情数据实时计算方法及装置 |
CN109934582A (zh) * | 2019-02-25 | 2019-06-25 | 矩阵元技术(深圳)有限公司 | 数字货币交易数据处理方法、服务器、客户端及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691696B2 (en) * | 2017-01-31 | 2020-06-23 | Salesforce.Com, Inc. | Key-value storage using a skip list |
CN109255710B (zh) * | 2018-09-20 | 2021-06-29 | 海南新软软件有限公司 | 一种行情交易软件上标记挂单的方法、装置及系统 |
CN109683811B (zh) * | 2018-11-22 | 2020-05-19 | 华中科技大学 | 一种混合内存键值对存储系统的请求处理方法 |
CN111861743A (zh) * | 2020-06-29 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
-
2020
- 2020-06-29 CN CN202010609099.0A patent/CN111861743A/zh active Pending
-
2021
- 2021-02-19 WO PCT/CN2021/076925 patent/WO2022001131A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055449B2 (en) * | 2010-04-08 | 2018-08-21 | Microsoft Technology Licensing, Llc | In-memory database system |
US20160062954A1 (en) * | 2012-09-15 | 2016-03-03 | Numbergun Llc | Flexible high-speed generation and formatting of application-specified strings |
CN109741179A (zh) * | 2018-12-25 | 2019-05-10 | 北京字节跳动网络技术有限公司 | 全档位行情数据实时计算方法及装置 |
CN109934582A (zh) * | 2019-02-25 | 2019-06-25 | 矩阵元技术(深圳)有限公司 | 数字货币交易数据处理方法、服务器、客户端及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022001131A1 (zh) * | 2020-06-29 | 2022-01-06 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
CN112529705A (zh) * | 2020-12-04 | 2021-03-19 | 深圳市富途网络科技有限公司 | 港股订单的处理方法及相关产品 |
CN112965860A (zh) * | 2021-03-11 | 2021-06-15 | 中科驭数(北京)科技有限公司 | 一种快照行情分发方法、装置、设备及存储介质 |
CN113065964A (zh) * | 2021-04-13 | 2021-07-02 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储系统及方法 |
CN113065964B (zh) * | 2021-04-13 | 2024-05-03 | 上证所信息网络有限公司 | 一种采用可变步长跳表的数据存储系统及方法 |
CN113468080A (zh) * | 2021-06-10 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种全闪元数据的缓存方法、系统及相关装置 |
CN113468080B (zh) * | 2021-06-10 | 2024-02-09 | 山东英信计算机技术有限公司 | 一种全闪元数据的缓存方法、系统及相关装置 |
CN114238209A (zh) * | 2021-11-16 | 2022-03-25 | 上海金仕达软件科技有限公司 | 快照行情数据的测试方法、装置、电子设备及存储介质 |
CN114549129A (zh) * | 2022-02-22 | 2022-05-27 | 上海金融期货信息技术有限公司 | 一种低延时高吞吐的实时订单簿生成方法 |
CN115686869A (zh) * | 2022-12-29 | 2023-02-03 | 杭州迈拓大数据服务有限公司 | 资源处理方法、系统、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022001131A1 (zh) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111861743A (zh) | 一种基于逐笔数据重构市场行情的方法、装置及设备 | |
US10713654B2 (en) | Enterprise blockchains and transactional systems | |
US20090063527A1 (en) | Processing of database statements with join predicates on range-partitioned tables | |
EP0877327A2 (en) | Method and apparatus for performing a join query in a database system | |
US11048423B2 (en) | Method and system for synchronizing requests related to key-value storage having different portions | |
US20100257180A1 (en) | System and method to perform data indexing in a transaction processing environment | |
CN111815445A (zh) | 一种行情数据的重构方法及相关装置 | |
CN105684020A (zh) | 硬件平台中的订单账簿管理设备 | |
US11748357B2 (en) | Method and system for searching a key-value storage | |
CN112015741A (zh) | 一种海量数据的分库分表存储方法与装置 | |
US7529750B2 (en) | Accessing information on a network | |
CN108874950A (zh) | 一种基于er关系的数据分布存储方法及装置 | |
CN111292178B (zh) | 需求的匹配方法、装置、存储介质及电子设备 | |
US8396858B2 (en) | Adding entries to an index based on use of the index | |
CN115618949A (zh) | 基于沉浸式元宇宙服务的用户兴趣分析方法及系统 | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
US9081578B1 (en) | System and method for graph conditioning with non-overlapping orderable values for efficient graph evaluation | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
EP4421653A1 (en) | Data query request processing method and apparatus, device and storage medium | |
CN111488343A (zh) | 基于业务数据区块链的电商数据上链方法及装置 | |
CN111488352A (zh) | 基于业务数据区块链的积分兑换方法及装置 | |
CN110928923A (zh) | 一种基于区块链的数据存储方法及系统 | |
US20230005474A1 (en) | Method and device for compressing finite-state transducers data | |
CN110309235B (zh) | 一种数据处理方法、装置、设备及介质 | |
US8458214B1 (en) | Taxonomy-based database partitioning |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201030 |
|
RJ01 | Rejection of invention patent application after publication |