CN109741179A - 全档位行情数据实时计算方法及装置 - Google Patents
全档位行情数据实时计算方法及装置 Download PDFInfo
- Publication number
- CN109741179A CN109741179A CN201811595432.6A CN201811595432A CN109741179A CN 109741179 A CN109741179 A CN 109741179A CN 201811595432 A CN201811595432 A CN 201811595432A CN 109741179 A CN109741179 A CN 109741179A
- Authority
- CN
- China
- Prior art keywords
- commission
- list
- object code
- queue
- data
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开实施例中提供了一种全档位行情数据实时计算方法、装置及电子设备,属于数据处理技术领域,该方法包括设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。本公开的方案保证了行情交易数据的完整性。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种全档位行情数据实时计算方法、装置及电子设备。
背景技术
随着互联网技术的发展,几乎所有的股票交易信息都可以在PC或手机等设备上进行查看,股票交易软件针对单一股票所提供的报价信息称为详细信息例如:实时走势图、个股报价信息、技术分析、实时明细、分时明细、价量统计、五档盘口、个股新闻…等等。
所谓的五档盘口买卖价量(以下简称五档盘口),是指未成交的最高五档买单档位价格与数量(手)以及未成交的最低五档卖单档位价格与数量(手),该信息可帮助投资者做投资决策参考,决定买进或卖出个股的价位,并可得知委托买卖是否以最好的价格成交。而十档盘口买卖价量(以下简称十档盘口)则是指未成交的最高十档买单档位价格与数量以及未成交的最低十档卖单档位价格与数量。
目前大部分交易所(例如,沪深交易所)Level1行情只提供了5档盘口委托数据,精细版的Level2行情提供了10档委托盘口数据,事实上整个大盘用户的委托价格非常之多,交易所只披露了有限的档位,多数档位是不对外进行提供的。因此,众多股票软件在没有获取交易所提供的更多档位数据的情况下,很难获得全档位的行情数据,也无法对全档位的行情数据进行高精度还原及展现。针对全档位行情数据,现有技术中并未有统一的一个外部公开的标准化计算方式和系统实现方法。
发明内容
有鉴于此,本公开实施例提供一种全档位行情数据实时计算方法、装置及电子设备,至少部分解决现有技术中存在的问题。
第一方面,本公开实施例提供了一种全档位行情数据实时计算方法,包括:
设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;
在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;
设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;
当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
根据本公开实施例的一种具体实现方式,所述多元组数据还包括委托量及委托标识中的至少一个。
根据本公开实施例的一种具体实现方式,所述方法还包括:
设置第一目标代码所对应的委托集,所述委托集包含所述第一目标代码在在预设周期内所有的委托队列及其包含的委托表单,基于所述多元组数据,能够确定所述委托集内涵盖的针对所述第一目标代码对象的所有操作。
根据本公开实施例的一种具体实现方式,所述将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,包括:
根据获取到的新委托表单中的第一目标代码和委托方向获取对应的委托集;
从对应的委托集中查找是否存在相应的委托估值队列;
若不存在,则创建委托估值队列,并创建委托估值索引。
根据本公开实施例的一种具体实现方式,所述将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,还包括:
当委托集中存在与新委托表单对应的委托估值时,将新获取到的委托表单推入到委托队列中;
将新委托表单中的委托量累加到与其委托估值对应的委托总量中;
基于新委托表单的委托标识创建查找索引。
根据本公开实施例的一种具体实现方式,所述成交表单还包括委托买单ID及委托卖单ID,所述委托买单ID表示成交对应的委托买单,委托买单ID表示成交对应的委卖单,委托买单ID及委托卖单ID分别与委托表单中的委托标识相对应。
根据本公开实施例的一种具体实现方式,所述将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,包括:
根据所述第二目标代码和所述委托表单中的委托方向标志获取委托集;
利用委托买单ID的索引,从委托集中找到相应的委托队列;
利用委托标识在委托队列中查找对应的委托表单,并将查找到的委托表单作为与新成交表单匹配的委托表单。
根据本公开实施例的一种具体实现方式,所述新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:
将委托表单的委托量减去与之匹配的成交表单的成交量,作为更新后的委托表单的委托量;
删除更新后委托量为0的委托表单。
根据本公开实施例的一种具体实现方式,所述新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:
将委托队列的委托量减去与之匹配的成交表单的成交量,作为更新后的委托队列中同一委托估值的委托量;
删除更新后委托量为0的委托队列的委托估值索引。
根据本发明实施例的一种具体实现方式,所述设置用于接收委托数据的委托表单,包括:
为所述委托表单列表中的第一目标代码进行数据划段处理;
基于划段后的数据,查找第一目标代码所对应的委托集。
根据本发明实施例的一种具体实现方式,所述方法还包括:
通过hash函数将第一目标代码对象打散,将不同的第一目标代码对象映射到不同的数据块上,将同一个第一目标代码对象映射到同一个数据块上;
为每个数据块分配单独的待执行任务,所述待执行任务在不同的块中并行执行,所述待执行任务在同一个数据块上按照次序执行。
根据本发明实施例的一种具体实现方式,所述方法还包括:
将当前状态下没有委托单号的委托表单设置到延迟队列中;
定期对所述延迟队列中的委托表单执行数据匹配操作,若匹配成功,则在所述延迟队列中删除匹配成功的委托表单;
将匹配次数超过预设次数的委托表单判定为异常数据,并对所述异常数据执行删除操作。
第二方面,本公开实施例提供了一种全档位行情数据实时计算装置,包括:
第一设置模块,设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;
聚合模块,用于在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;
第二设置模块,设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;
执行模块,用于当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述任第一方面或第一方面的任一实现方式中的全档位行情数据实时计算方法。
第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面或第一方面的任一实现方式中的全档位行情数据实时计算方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的全档位行情数据实时计算方法。
本公开实施例中的全档位行情数据实时计算方案,包括设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。本公开的方案保证了行情交易数据的完整性。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本公开实施例提供的一种全档位行情数据实时计算流程示意图;
图2为本公开实施例提供的一种将委托表单聚合成委托队列的流程示意图;
图3为本公开实施例提供的一种将新成交表单中的第二目标代码与委托队列中所有的委托表单中的第一目标代码进行匹配的流程示意图;
图4为本公开实施例提供的全档位行情数据实时计算装置结构示意图;
图5为本公开实施例提供的电子设备示意图。
具体实施方式
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本公开实施例提供一种全档位行情数据实时计算方法。本实施例提供的全档位行情数据实时计算方法可以由一计算装置来执行,该计算装置可以实现为软件,或者实现为软件和硬件的组合,该计算装置可以集成设置在服务器、终端设备等中。
参见图1,本公开实施例提供的一种全档位行情数据实时计算方法,包括如下步骤:
S101,设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据。
本方案在实施的过程中,需要获取数据源的数据,具体的,至少获取交易所盘口数据源、委托明细数据源和逐笔成交数据源3路数据源,这3路数据源相互独立,由交易所分别提供,没有协作关系。本方案在实施的过程中的设计,一方面是数据流接入到计算的数据流向过程设计;另一方面是委托集的数据结构设计。
针对每个委托表单数据,可以设置Order{Code,ID,Price,Volume,Flag}四元组,其中,Order表示委托表单,ID表示唯一的委托标识,Price表示委托估值(例如,价格),Volume表示委托量,Flag表示委托方向(买入或者卖出)。
由于交易所发送的委托表单的数据量特别巨大,为此,设置用于接收委托数据的委托表单列表,包括:预先根据委托表单中的第一目标代码的分类结果,将委托表单列表划分为多个子列表,通常,子列表的个数与所述第一目标代码的类别个数相等;当接收到委托表单时,识别委托表单中的第一目标代码的类别,确定该类别对应的子列表,从所述子列表中查找所述委托表单对应的委托集,将所述委托表单插入所述委托集中。具体的,专门设计缓存结构来保存委托表单。缓存(cache)下包括预设长度(例如,30万)列表,列表中每一项属于一个委托集(set)。以深圳股市为例,由于深圳市场股票代码分别是0/2/3开头的6位数字,对列表进行了划段处理,0-10w表示0xxxxx,10-20w表示2xxxxx,20-30w表示3xxxxx。这样通过简单计算,就可以迅速查找到第一目标代码(例如,股票代码)所对应的委托集,时间复杂度为O(1),提高了委托单查找的速度。
S102,在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列。
每次收到一个交易所的一条委托表单(order),将其加入对应的委托集的委托队列上。加入过程如下:
(1)根据第一目标代码(例如,股票代码)和委托方向(例如,买卖方向)获取对应的委托集。
(2)从委托集中找到相应的委托队列,如果该委托估值(例如,价格)尚未有委托表单,则创建委托估值队列,并创建委托估值索引。
(3)在获取到委托表单对应的委托队列之后,将委托表单(例如,订单)推入到相应的委托队列中。
(4)将新委托的成交表单的委托量累加到该价格的委托总量。
(5)为委托表单ID创建查找索引,便于查找。
委托队列有3个前提约束条件:同一第一目标代码对象(例如,同一个股票(Code相同))、同一个委托方向(Flag相同)、同一个委托估值(Price相同),即把具有同样第一目标代码的同一方向下的同一委托估值的所有委托表单组织在一起,形成一个委托队列。
委托队列是一个按ID排序的队列,每次查找一个具体委托表单的时候可以通过二分查找玩法找到具体的订单,查找的时间复杂度为O(logN),其中N为表单的总数目。
除了进行上述设计之外,由于数据流多源接入,并发操作同一个委托队列的概率非常高,在这里采用了分块处理的方式,分块原则如下:
(1)通过hash函数将第一目标代码对象(例如,股票)打散,映射到不同的数据块上;
(2)同一个第一目标代码对象一定会映射到同一个数据块上;
(3)每个块单独拥有一个待执行的任务(例如,执行消费操作),块间并行,块内部按序排队。
通过分块的方式,既保证了数据计算有足够的并发度,保障了性能;又保证同一只股票的数据通过串行化的方式处理,规避了并发处理的需要加锁引发的性能问题,通过无锁化分块的方式为使得数据最快计算出相应的档位。
S103,设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量。
除了从交易所获取委托表单之外,还需要获取成交表单的数据。成交表单用于描述在实际交易中已经达成交易的表单,示例性的,可以将设置委托表单为Deal{Code,ID,Price,Volume,BOrderID,SOrderID},其中Code表示第二目标代码(例如,股票代码),ID表示成交表单的唯一标识,Price表示成交值,Volume表示成交股数,BOrderID表示成交对应的委托买单,SOrderID表示成交对应的委卖单,BOrderID与SOrderID分别与买入和卖出委托集中的唯一一条委托单对应。
S104,当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
每次收到一个交易所的成交表单(deal),将其与对应的委托集进行撮合,撮合委买集和委卖集的过程完全一致,撮合过程如下:
(1)根据第二目标代码(例如,股票代码)和“买”标志获取对应的委托集。
(2)利用委托表单ID的索引,从委托集中找到相应的委托队列。
(3)从委托集中找到相应的委托表单,如果该价格未找到委托表单,等待一段时间后继续尝试,如果尝试多次后还未找到,表示异常发生,直接结束。
(4)更新委托量,具体的,将委托表单的成交量减去成交表单中的成交量。因为某笔委托单会为一笔或者多笔成交单进行成交。如果委托集中的成交量为零,则删除订单。
(5)更新该价位的委托总量,具体的,将委托队列的成交量减去成交表单中的成交量,即:queue.Volume=queue.Volume-deal.Volume。
如果委托队列的成交量为0,即:queue.Volume=0,将委托估值(price)的索引从委托集(set)中剔除,表示该委托估值委托表单已经完全被吃掉。
上面描述的是“买委托”的计算过程,卖过程与之完全相同,每个成交单要计算一次买委托和一次卖委托。
本公开的方案通过委托表单、委托队列、委托集三层结构设计,每次新数据到来进行查找的时间复杂度为O(log(max(m,n))),m表示委托估值(例如,价格)的数目,n表示价格下对应订单的数目,这两个数目量级都不大,查询速度非常快。
由于委托表单和成交表单的数据源独立接入,数据之间不存在任何协作关系,由于网络波动等原因,很有可能某一笔数据,其成交明细到达到系统比委托到达的早,如果查找没有相应单号的委托,就自行丢弃,那么计算结果就会出现偏差,为此设计了延迟消费的同步机制,具体实现方式如下:
(1)如果发现目前没有相应委托单号的委托表单,送入延迟队列;
(2)定期对所述延迟队列中的委托表单执行数据匹配操作(例如,消费操作),若匹配成功,则在所述延迟队列中删除匹配成功的委托表单。具体的,可以采用定时器每隔预设时间(例如2s)检查一次延迟队列,尝试再次消费,如果消费成功,则执行成功并剔除消费队列;
(3)将匹配次数超过预设次数的委托表单判定为异常数据,并对所述异常数据执行删除操作。例如,如果消费预设次数(例如,10次)还未成功,判定为异常数据,直接剔除。
通过延迟消费+超时过期的方式既保证了数据的准确消费,又避免了无效的数据长期积压在内存。
由于交易所会给出预设档位(例如1-10)档的价格和委托量,我们计算的档位很有可能与交易所给出的1-10档在时间上并不同步,因此在其他剩余档位(例如,11-1000档)的确定上,采用了如下方式:
以当前交易所的预设档位的最后一档(例如10档)价格做为标准,如果是买队列就去寻找小于预设档位的最后一档价格的所有价格和其对应的委托量作为剩余档,反之卖队列寻找大于预设档位的最后一档的作为剩余档。
以交易所数据为标杆和同步基准,实现市场档位与计算档位的同步。
通过将每只股票的逐笔明细和委托都存储下来,待收盘之后将存下来的数据按上述算法进行验证,将离线计算的结果与在线计算的结果进行对比,结果完全一致,证明了本方法的可靠性。
委托表单中的多元组数据可以根据实际的需要进行设置,根据本公开实施例的一种具体实现方式,所述多元组数据还包括委托量及委托标识中的至少一个。
为了将委托表单集合在一起,可以设置第一目标代码所对应的委托集,所述委托集包含所述第一目标代码在在预设周期内所有的委托队列及其包含的委托表单,基于所述多元组数据,能够确定所述委托集内涵盖的针对所述第一目标代码对象的所有操作。
委托集包括了某个第一目标代码对象(例如,股票)所有价格及其对应的委托明细,每个委托集是由一个委托队列的列表组成,列表中的每一项表示一个价格的委托队列。因为全档盘口既要求对根据价格进行查找,又要求能够查找某个价格范围的数据,因此价格因子既可以作为索引,又要支持排序。采用跳跃表(skiplist)的结构来保存价格索引,通过查询跳跃表可以得到价格对应在列表中的实际位置,进而进行实际的操作,查找的时间复杂度为O(logn)。
参见图2,根据本公开实施例的一种具体实现方式,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,可以包括如下步骤:
S201,根据获取到的新委托表单中的第一目标代码和委托方向获取对应的委托集。
根据第一目标代码(例如,股票代码)和委托方向(例如,买卖方向)获取对应的委托集。
S202,从对应的委托集中查找是否存在相应的委托估值队列。
S203,若不存在,则创建委托估值队列,并创建委托估值索引。
如果该委托估值(例如,价格)尚未有委托表单,则创建委托估值队列,并创建委托估值索引。通过创建委托估值索引,为后续的估值队列的更新提供了基础。
除了步骤S201-S203之外,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,还可以包括:
S204,当委托集中存在与新委托表单对应的委托估值时,将新获取到的委托表单推入到委托队列中。
在获取到委托表单对应的委托队列之后,将委托表单(例如,订单)推入到相应的委托队列中。
S205,将新委托表单中的委托量累加到与其委托估值对应的委托总量中。
S206,基于新委托表单的委托标识创建查找索引。
为委托表单ID创建查找索引,便于查找。
成交表单中可以包括多种元素,根据本公开实施例的一种具体实现方式,所述成交表单还包括委托买单ID及委托卖单ID,所述委托买单ID表示成交对应的委托买单,委托买单ID表示成交对应的委卖单,委托买单ID及委托卖单ID分别与委托表单中的委托标识相对应。
参见图3,根据本公开实施例的一种具体实现方式,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,可以包括如下步骤:
S301,根据所述第二目标代码和所述委托表单中的委托方向标志获取委托集。
具体的,可以根据第二目标代码(例如,股票代码)和“买”标志获取对应的委托集。
S302,利用委托买单ID的索引,从委托集中找到相应的委托队列。
S303,利用委托标识在委托队列中查找对应的委托表单,并将查找到的委托表单作为与新成交表单匹配的委托表单。
从委托集中找到相应的委托表单,如果该价格未找到委托表单,等待一段时间后继续尝试,如果尝试多次后还未找到,表示异常发生,直接结束。
根据本公开实施例的一种具体实现方式,新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:将委托表单的委托量减去与之匹配的成交表单的成交量,作为更新后的委托表单的委托量;删除更新后委托量为0的委托表单。
根据本公开实施例的一种具体实现方式,新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:将委托队列的委托量减去与之匹配的成交表单的成交量,作为更新后的委托队列中同一委托估值的委托量;删除更新后委托量为0的委托队列的委托估值索引。
与上面的方法实施例相对应,参见图4,本公开实施例还公开了一种全档位行情数据实时计算装置40,包括:
第一设置模块401,设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;
聚合模块402,用于在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;
第二设置模块403,设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;
执行模块404,用于当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
上述全档位行情数据实时计算装置40中的各个模块所执行的内容与上述方法实施例中相应的步骤中执行的内容相同或相对应,在此不再赘述。
参见图5,本公开实施例还提供了一种电子设备50,该电子设备包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述方法实施例中全档位行情数据实时计算方法。
本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述方法实施例中。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述方法实施例中的全档位行情数据实时计算方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备50的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备50操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备50与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种装置的电子设备50,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种全档位行情数据实时计算方法,其特征在于,包括:
设置用于接收委托数据的委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;
在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;
设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;
当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
2.根据权利要求1所述的方法,其特征在于:
所述多元组数据还包括委托量及委托标识中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
设置第一目标代码所对应的委托集,所述委托集包含所述第一目标代码在在预设周期内所有的委托队列及其包含的委托表单,基于所述多元组数据,能够确定所述委托集内涵盖的针对所述第一目标代码对象的所有操作。
4.根据权利要求3所述的方法,其特征在于,所述将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,包括:
根据获取到的新委托表单中的第一目标代码和委托方向获取对应的委托集;
从对应的委托集中查找是否存在相应的委托估值队列;
若不存在,则创建委托估值队列,并创建委托估值索引。
5.根据权利要求4所述的方法,其特征在于,所述将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列,还包括:
当委托集中存在与新委托表单对应的委托估值时,将新获取到的委托表单推入到委托队列中;
将新委托表单中的委托量累加到与其委托估值对应的委托总量中;
基于新委托表单的委托标识创建查找索引。
6.根据权利要求3所述的方法,其特征在于:
所述成交表单还包括委托买单ID及委托卖单ID,所述委托买单ID表示成交对应的委托买单,委托卖单ID表示成交对应的委卖单,委托买单ID及委托卖单ID分别与委托表单中的委托标识相对应。
7.根据权利要求6所述的方法,其特征在于,所述将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,包括:
根据所述第二目标代码和所述委托表单中的委托方向标志获取委托集;
利用委托买单ID的索引,从委托集中找到相应的委托队列;
利用委托标识在委托队列中查找对应的委托表单,并将查找到的委托表单作为与新成交表单匹配的委托表单。
8.根据权利要求7所述的方法,其特征在于,所述新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:
将委托表单的委托量减去与之匹配的成交表单的成交量,作为更新后的委托表单的委托量;
删除更新后委托量为0的委托表单。
9.根据权利要求8所述的方法,其特征在于,所述新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,还包括:
将委托队列的委托量减去与之匹配的成交表单的成交量,作为更新后的委托队列中同一委托估值的委托量;
删除更新后委托量为0的委托队列的委托估值索引。
10.根据权利要求3所述的方法,其特征在于,所述设置用于接收委托数据的委托表单,包括:
预先根据委托表单中的第一目标代码的分类结果,将委托表单列表划分为多个子列表;
所述方法还包括:当接收到委托表单时,识别委托表单中的第一目标代码的类别,确定该类别对应的子列表,从所述子列表中查找所述委托表单对应的委托集,将所述委托表单插入所述委托集中。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过hash函数将第一目标代码对象打散,将不同的第一目标代码对象映射到不同的数据块上,将同一个第一目标代码对象映射到同一个数据块上;
为每个数据块分配单独的待执行任务,所述待执行任务在不同的块中并行执行,所述待执行任务在同一个数据块上按照次序执行。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将当前状态下没有委托单号的委托表单设置到延迟队列中;
定期对所述延迟队列中的委托表单执行数据匹配操作,若匹配成功,则在所述延迟队列中删除匹配成功的委托表单;
将匹配次数超过预设次数的委托表单判定为异常数据,并对所述异常数据执行删除操作。
13.一种全档位行情数据实时计算装置,其特征在于,包括:
第一设置模块,设置用于接收委托数据委托表单,所述表单内包含第一目标代码、委托估值及委托方向的多元组数据;
聚合模块,用于在获取到的委托表单中,将第一目标代码、委托方向及委托估值相同的委托表单聚合成委托队列;
第二设置模块,设置用于接收成交数据的成交表单,所述成交表单包含第二目标代码、成交标识、成交值及成交量;
执行模块,用于当接收到新的成交表单时,将新成交表单中的第二目标代码与所述委托队列中所有的委托表单中的第一目标代码进行匹配,并基于匹配的结果计算包含成交标识、成交值及成交量在内的全档位行情数据。
14.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一权利要求1-12所述的全档位行情数据实时计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595432.6A CN109741179B (zh) | 2018-12-25 | 2018-12-25 | 全档位行情数据实时计算方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811595432.6A CN109741179B (zh) | 2018-12-25 | 2018-12-25 | 全档位行情数据实时计算方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109741179A true CN109741179A (zh) | 2019-05-10 |
CN109741179B CN109741179B (zh) | 2022-07-08 |
Family
ID=66360279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811595432.6A Active CN109741179B (zh) | 2018-12-25 | 2018-12-25 | 全档位行情数据实时计算方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109741179B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861743A (zh) * | 2020-06-29 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
CN112365346A (zh) * | 2020-10-30 | 2021-02-12 | 北京数秦科技有限公司 | 股票交易委托大单的判定及显示方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225672A1 (en) * | 2002-06-05 | 2003-12-04 | Hughes John T | Security transaction matching |
US20060218123A1 (en) * | 2005-03-28 | 2006-09-28 | Sybase, Inc. | System and Methodology for Parallel Query Optimization Using Semantic-Based Partitioning |
CN101510293A (zh) * | 2009-01-14 | 2009-08-19 | 上证所信息网络有限公司 | 证券行情订单队列数据传输方法 |
CN103235974A (zh) * | 2013-04-25 | 2013-08-07 | 中国科学院地理科学与资源研究所 | 一种提高海量空间数据处理效率的方法 |
CN105893566A (zh) * | 2016-03-31 | 2016-08-24 | 北京资配易投资顾问有限公司 | 股票行情数据存储方法及存储装置 |
CN105989539A (zh) * | 2015-09-22 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN106250250A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据通信方法及装置 |
CN107038059A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 虚拟机部署方法及装置 |
CN107748797A (zh) * | 2017-11-07 | 2018-03-02 | 众安信息技术服务有限公司 | 金融行情数据的处理方法 |
-
2018
- 2018-12-25 CN CN201811595432.6A patent/CN109741179B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225672A1 (en) * | 2002-06-05 | 2003-12-04 | Hughes John T | Security transaction matching |
US20060218123A1 (en) * | 2005-03-28 | 2006-09-28 | Sybase, Inc. | System and Methodology for Parallel Query Optimization Using Semantic-Based Partitioning |
CN101510293A (zh) * | 2009-01-14 | 2009-08-19 | 上证所信息网络有限公司 | 证券行情订单队列数据传输方法 |
CN103235974A (zh) * | 2013-04-25 | 2013-08-07 | 中国科学院地理科学与资源研究所 | 一种提高海量空间数据处理效率的方法 |
CN105989539A (zh) * | 2015-09-22 | 2016-10-05 | 盛立金融软件开发(杭州)有限公司 | 一种金融交易行情获取系统以及获取方法 |
CN107038059A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 虚拟机部署方法及装置 |
CN105893566A (zh) * | 2016-03-31 | 2016-08-24 | 北京资配易投资顾问有限公司 | 股票行情数据存储方法及存储装置 |
CN106250250A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据通信方法及装置 |
CN107748797A (zh) * | 2017-11-07 | 2018-03-02 | 众安信息技术服务有限公司 | 金融行情数据的处理方法 |
Non-Patent Citations (1)
Title |
---|
青春信仰: ""全息高速盘口"", 《HTTPS://WWW.DOC88.COM/P-7764498581279.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861743A (zh) * | 2020-06-29 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
WO2022001131A1 (zh) * | 2020-06-29 | 2022-01-06 | 浪潮电子信息产业股份有限公司 | 一种基于逐笔数据重构市场行情的方法、装置及设备 |
CN112365346A (zh) * | 2020-10-30 | 2021-02-12 | 北京数秦科技有限公司 | 股票交易委托大单的判定及显示方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109741179B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299348B (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN110334091A (zh) | 一种数据分片分布式处理方法、系统、介质和电子设备 | |
CN110147398A (zh) | 一种数据处理方法、装置、介质和电子设备 | |
CN110135901A (zh) | 一种企业用户画像构建方法、系统、介质和电子设备 | |
CN109844855A (zh) | 任务的多重计算代理执行 | |
CN109508805B (zh) | 航班改签信息的提供方法、系统、存储介质及电子设备 | |
CN109344336A (zh) | 搜索方法、搜索集生成方法、装置、介质、终端及服务器 | |
CN110209677A (zh) | 更新数据的方法和装置 | |
CN110309469A (zh) | 一种用户点击行为可视化分析方法、系统、介质和电子设备 | |
CN109359237A (zh) | 一种用于搜索寄宿程序的方法与设备 | |
CN109510874A (zh) | 基于lbs的电子凭证推送方法、装置及电子设备 | |
CN109766365A (zh) | 基于redis的运行事件控制方法、装置及电子设备 | |
CN106326243A (zh) | 一种数据处理方法及装置 | |
CN115455161A (zh) | 对话处理方法、装置、电子设备及存储介质 | |
CN108932625A (zh) | 用户行为数据的分析方法、装置、介质和电子设备 | |
CN109741179A (zh) | 全档位行情数据实时计算方法及装置 | |
CN110097397A (zh) | 基于反馈的信息推送方法、装置及电子设备 | |
CN110135903A (zh) | 广告位排位方法、系统、介质和电子设备 | |
CN109118225A (zh) | 基于区块链的收藏品管理方法、装置、介质及电子设备 | |
CN106557590A (zh) | 一种智能问答系统 | |
CN109284452A (zh) | 电子协议在线展示方法、装置、电子设备、存储介质 | |
CN109492831A (zh) | 营销路径的推荐方法、装置、介质及电子设备 | |
CN114115796A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN106447456A (zh) | 一种旅游系统 | |
CN110135905A (zh) | 广告投放方法、系统、介质和电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |