CN115936875A - 金融产品挂单处理方法和装置 - Google Patents
金融产品挂单处理方法和装置 Download PDFInfo
- Publication number
- CN115936875A CN115936875A CN202211674056.6A CN202211674056A CN115936875A CN 115936875 A CN115936875 A CN 115936875A CN 202211674056 A CN202211674056 A CN 202211674056A CN 115936875 A CN115936875 A CN 115936875A
- Authority
- CN
- China
- Prior art keywords
- list
- node
- price
- hanging
- hang
- 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
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供了一种金融产品挂单处理方法和装置,特别涉及金融领域,所述方法包括:根据当前产品类型信息和当前价格比较方向,确定挂单链表,挂单链表包括k个层级;将挂单链表中第k个节点确定为当前节点,基于挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点;基于目标节点和标准价格,将目标节点的目标挂单二叉堆队列中对应的多个挂单以及挂单链表中对应的多个节点的挂单二叉堆队列的挂单确定为待处理挂单,对待处理挂单进行处理。本发明能够提高挂单处理的速度和准确性,从而提高挂单处理的效率。
Description
技术领域
本发明涉及挂单处理技术领域,特别涉及金融领域,尤其涉及一种金融产品挂单处理方法和装置。
背景技术
在相关金融场景中,往往涉及到客户订立挂单,且有关机构会在合适的时机基于挂单进行对应的诸如买入或卖出等处理。挂单处理涉及到根据对应的市场实时基准价格(可理解为标准价格),扫描对应的挂单明细,并取与基准价格对应价格区间的挂单进行处理。
现有的挂单处理中,获取对应挂单的方式主要为通过对应的数据查询语句来匹配对应的挂单。但是,上述方式需要使用基准价格和每个已报出挂单进行频繁比对,且数据查询语句难以充分匹配索引并容易出现回表等问题,因此,会导致获取挂单的耗时较长,且不易准确、全面地匹配到预期的挂单,致使获取挂单的速度较慢且准确性较低,从而导致整体挂单处理的速度较慢且准确性较低。
综上所述,现有技术中存在挂单处理的速度较慢且准确性较低,从而不利于提高挂单处理的效率的问题。
发明内容
本发明的一个目的在于提供一种金融产品挂单处理方法,以解决现有技术中存在的挂单处理的速度较慢且准确性较低,从而不利于提高挂单处理的效率的问题。本发明的另一个目的在于提供一种金融产品挂单处理装置。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明的一方面公开了一种金融产品挂单处理方法,所述方法包括:
根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级;
将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点;
基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
可选的,所述根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,包括:
根据所述当前产品类型信息,得到产品挂单类型信息和产品性质类型信息;
根据所述产品挂单类型信息、产品性质类型信息和当前价格比较方向,确定对应的挂单链表;其中,所述挂单链表中多个节点的顺序为按对应价格区间的下限或上限从小到大的顺序。
可选的,所述判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,包括:
判断所述标准价格是否大于所述价格区间的下限且小于或等于所述价格区间的上限,其中,所述挂单链表中多个节点对应的价格区间之间不存在交集;
若是,将所述当前节点确定为所述目标节点;
若否,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点。
可选的,所述基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格;
在所述当前价格比较方向为获利买入或止损卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;
在所述当前价格比较方向为止损买入或获利卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单。
可选的,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
基于所述目标挂单二叉堆队列,重复执行第一出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格小于所述标准价格,其中,所述第一出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最大堆队列。
可选的,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
基于所述目标挂单二叉堆队列,重复执行第二出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格大于或等于所述标准价格,其中,所述第二出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最小堆队列。
可选的,进一步包括:
在对所述待处理挂单进行处理之后,清空所有所述待处理挂单。
可选的,所述将所述挂单链表中第k个节点确定为当前节点,包括:
将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点。
可选的,所述将所述当前节点的后k个节点中最后的节点作为当前节点,包括:
将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点。
可选的,所述将所述当前节点的前一个节点作为当前节点,包括:
将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点。
可选的,进一步包括:
在确定对应的挂单链表之前,
基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,并基于多个所述价格区间和挂单,形成对应的多个挂单链表。
可选的,所述基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,包括:
基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息;
基于所述预估正态分布信息和队列数量,得到对应的所述价格区间;其中,所述预估正态分布信息包括所述可选产品类型信息对应的多个预估产品价格,所述可选产品类型信息对应的预估产品价格落入对应的不同价格区间的概率相同,且所述价格区间与挂单二叉堆队列一一对应,所述挂单二叉堆队列与挂单链表中的节点一一对应。
为了达到以上目的,本发明的另一方面公开了一种金融产品挂单处理装置,所述装置包括:
链表定位模块,用于根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级;
节点查找模块,用于将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点;
挂单处理模块,用于基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述方法。
本发明提供的金融产品挂单处理方法和装置,通过根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级,能够充分考虑挂单性质与其产品类型信息以及挂单价格比较方向密切相关的规律,准确地定位到包含有对应性质挂单信息的挂单链表,从而为后续准确获取预期挂单做好了合理的挂单范围限定,提高了整体挂单处理的速度和准确性;通过将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点,能够有利于减少比对标准价格和价格区间的次数,从而能够更快速地定位到与标准价格准确对应的、表征挂单范围边界的目标节点,因此能够进一步快速且准确地缩小了对应的目标挂单范围,便于快速且准确地定位到对应的待处理挂单,减少了比对次数,进而提高了整体挂单处理的速度和准确性;通过基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理,能够更细化地从表征挂单范围边界的目标节点以及链表中与对应比较方向和边界范围对应的多个其他节点下手,具体且准确地确定与标准价格和比较方向对应的挂单,由于已经事先划定了链表中的对应节点范围,因此能够大幅度提高获取挂单的速度,从而提高了整体挂单处理的速度和准确性。
本发明提供的金融产品挂单处理方法和装置,能够以有关算法查找原理为基础,凭借基于节点聚类的范围定位方式,显著减少了获取对应挂单时基准价格和有关挂单信息比对的次数及耗时,无需使基准价格和每个已有挂单均进行比对,且克服了数据查询语句机动性差、不能充分匹配索引且全面性差的问题,实现了准确地获取到与预期比对方向和当前基准价格相适应的挂单,从而提高了整体挂单处理的速度和准确性。
综上所述,本发明提供的金融产品挂单处理方法和装置,能够提高挂单处理的速度和准确性,从而提高挂单处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例的一种金融产品挂单处理方法的流程示意图;
图2示出了本发明实施例的一种可选的确定对应挂单链表的步骤示意图;
图3示出了本发明实施例的一种可选的确定待处理挂单的步骤示意图;
图4示出了本发明实施例的另一种可选的确定待处理挂单的步骤示意图;
图5示出了本发明实施例的一种可选的挂单链表的示意图;
图6示出了本发明实施例的一种金融产品挂单处理装置的模块示意图;
图7示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
需要说明的是,本发明技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
需要说明的是,本申请公开的一种金融产品挂单处理方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本申请公开的一种金融产品挂单处理方法和装置的应用领域不做限定。
本发明实施例公开了一种金融产品挂单处理方法,如图1所示,该方法具体包括如下步骤:
S101:根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级。
S102:将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点。
S103:基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
示例性的,所述挂单,可以为但不限于撮合挂单或做市商挂单,优选为做市商挂单。挂单的相关场景,可以为但不限于客户向有关金融机构订立一个挂单,未来某个金融产品的中间价(标准价格)满足该订单对应的买入或者卖出价格时,则进行完成该挂单对应的交易处理或金额处理等,从而实现自动帮客户买入或卖出。需要说明的是,对于挂单的性质和具体相关金融场景等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述标准价格,可以为但不限于对应的金融机构从有关市场或做市商等获取的相关金融产品的基准价格等。相关机构还可以在有关基准价格的基础上加上对应的买入或卖出点差,形成对客户的买入和卖出价格,从而能够实现盈利,对应的,本发明实施例中的标准价格,可以为但不限于上述基准价格或上述基准价格加上对应点差后的价格,优选为基准价格。需要说明的是,对于标准价格的性质和来源,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例中挂单以及标准价格等名词的含义和性质,在现有的挂单成交机制或挂单交易情景中均能够体现,这里不再继续赘述。
示例性的,本发明实施例的金融产品挂单处理方法,其相关执行逻辑(除对所述待处理挂单进行处理的逻辑)可以设置到但不限于对应的高速缓存中(例如,可以为但不限于redis)实现,所述高速缓存可以为但不限于有关挂单成交处理集群的高速缓存。这样,能够凭借高速缓存负荷低且能快速进行处理的优势,进一步提高整体金融产品挂单获取和筛选的速度,且相比现有技术中需要频繁读取相关数据库的方式,可以提高解耦性,从而进一步提高了整体效率。需要说明的是,对于相关执行逻辑的设置方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述挂单链表的节点数量为k的整数倍。需要说明的是,对于挂单链表节点的数量,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述挂单,其具体形式可以为但不限挂单信息等,所述挂单信息包括但不限于客户预期的挂单价格上限、挂单价格下限、挂单产品信息以及辅助说明信息等。需要说明的是,对于挂单的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,本发明实施例中的挂单,其来源可以为但不限于现有的挂单业务核心处理集群等,对应的,可每隔一段时间进行一次整体的挂单获取和处理,具体获取对象范围可以为但不限于当前时间点和上个时间点之间的时间段内的有关挂单。需要说明的是,对于挂单在业务方面的来源和有关处理时间,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,一个挂单可对应有一个挂单编号,这样,便于对特定挂单的标识和信息解析。
示例性的,所述对待处理挂单进行处理,可以为但不限于基于客户预期的交易方向(可以为但不限于买入或卖出等),对挂单进行对应的交易处理,例如,可以对挂单进行对应的平仓入账等一系列操作。需要说明的是,对于对待处理挂单进行处理的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,对挂单进行处理后,还可以对挂单相关的状态信息进行更新,以实现有关信息的时效性提高,便于整体工作的协调进行。
优选的,有关挂单的提取和移动,可通过但不限于诸如Array.Copy(该方法是静态方法,有多个重载版本,可指定复制和存储开始处的索引,以及要复制的元素)等方法或函数实现,对应的,可以将获取的挂单移动到对应的挂单处理集群中进行挂单处理。
本发明提供的金融产品挂单处理方法和装置,通过根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级,能够充分考虑挂单性质与其产品类型信息以及挂单价格比较方向密切相关的规律,准确地定位到包含有对应性质挂单信息的挂单链表,从而为后续准确获取预期挂单做好了合理的挂单范围限定,提高了整体挂单处理的速度和准确性;通过将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点,能够有利于减少比对标准价格和价格区间的次数,从而能够更快速地定位到与标准价格准确对应的、表征挂单范围边界的目标节点,因此能够进一步快速且准确地缩小了对应的目标挂单范围,便于快速且准确地定位到对应的待处理挂单,减少了比对次数,进而提高了整体挂单处理的速度和准确性;通过基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理,能够更细化地从表征挂单范围边界的目标节点以及链表中与对应比较方向和边界范围对应的多个其他节点下手,具体且准确地确定与标准价格和比较方向对应的挂单,由于已经事先划定了链表中的对应节点范围,因此能够大幅度提高获取挂单的速度,从而提高了整体挂单处理的速度和准确性。
本发明提供的金融产品挂单处理方法和装置,能够以有关算法查找原理为基础,凭借基于节点聚类的范围定位方式,显著减少了获取对应挂单时基准价格和有关挂单信息比对的次数及耗时,无需使基准价格和每个已有挂单均进行比对,且克服了数据查询语句机动性差、不能充分匹配索引且全面性差的问题,实现了准确地获取到与预期比对方向和当前基准价格相适应的挂单,从而提高了整体挂单处理的速度和准确性。
综上所述,本发明提供的金融产品挂单处理方法和装置,能够提高挂单处理的速度和准确性,从而提高挂单处理的效率。
在一个可选的实施方式中,如图2所示,所述根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,包括如下步骤:
S201:根据所述当前产品类型信息,得到产品挂单类型信息和产品性质类型信息。
S202:根据所述产品挂单类型信息、产品性质类型信息和当前价格比较方向,确定对应的挂单链表;其中,所述挂单链表中多个节点的顺序为按对应价格区间的下限或上限从小到大的顺序。
示例性的,所述步骤S201,可以为但不限于读所述当前产品类型信息进行解析,得到所述当前类型信息包括或对应的产品挂单类型信息和产品性质类型信息。其中,所述产品挂单类型信息,可以为但不限于挂单对应的金融业务类型信息等,例如,所述挂单类型信息对应的挂单类型,可以为但不限于诸如“账户外汇”等。其中,所述产品性质类型信息,可以为但不限于表征产品金融性质的信息等,例如,所述产品性质类型信息,为“甲币种兑换乙币种”等,所述产品性质类型信息,其具体形式可以为但不限于对应的产品代码等。当前产品类型信息可以为但不限于当前挂单获取时,有关机构等所定位的产品类型信息(机构预期处理挂单对应的产品类型信息),例如,针对某种产品类型信息进行对应的挂单获取和挂单处理等。需要说明的是,对于步骤S201的具体实现方式、当前产品类型信息的性质与来源、产品挂单类型信息的性质和产品性质类型信息的性质等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述当前价格比较方向,可以为但不限于挂单相关机制或情景中的、对于相关机构而言的挂单趋向。其中,所述当前价格比较方向可取为但不限于获利买入(趋向为让标准价格小于(或小于等于)客户对于某挂单的期望交易价格下限)、获利卖出(趋向为让标准价格大于(或大于等于)客户对于某挂单的期望交易价格上限)、止损买入(趋向为让标准价格大于(或大于等于)客户对于某挂单的期望交易价格上限)以及止损卖出(趋向为让标准价格小于(或小于等于)客户对于某挂单的期望交易价格下限)等。上述价格比较方向的具体性质,可以参考现有的挂单成交机制或金融挂单交易场景等,这里不再赘述。当前价格比较方向可以为但不限于当前挂单获取时,有关机构等所定位的价格比较方向,例如,针对某种价格比较方向(机构预期处理挂单的价格比较方向)进行对应的挂单获取和挂单处理等。需要说明的是,当前价格比较方向的具体性质、内容和来源等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述步骤S202,可以为但不限于以产品挂单类型信息、产品性质类型信息和当前价格比较方向作为综合查询标识依据,进行查询或搜索等从当前的多个已有挂单链表中(可以为但不限于当前能够获取到的有关挂单链表或当前能够获取到的有关挂单链表中对应时间节点处于预设时间段内的挂单链表)确定到对应的挂单链表。需要说明的是,对于步骤S202的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述挂单链表中多个节点的顺序为按对应价格区间的下限或上限从小到大的顺序,有如下例子:
某个挂单链表,具有4个主要的挂单节点甲、乙、丙和丁。其中,甲对应的价格区间的下限为4.895,乙对应的价格区间的下限为5.616,丙对应的价格区间的下限为6.108,丁对应的价格区间的下限为6.895,则挂单链表中,主要节点的顺序为甲乙丙丁。以上限为依据的情况同理。
需要说明的是,对应节点的具体顺序,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够综合考虑有关挂单产品的性质和挂单处理的性质,以可以起到标识作用的多方面相关性质信息为依据进行综合定位,快速准确地确定符合获取需求的、记载有对应挂单信息的挂单链表,从而提高了整体挂单处理的速度和准确性。
在一个可选的实施方式中,所述判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,包括:
判断所述标准价格是否大于所述价格区间的下限且小于或等于所述价格区间的上限,其中,所述挂单链表中多个节点对应的价格区间之间不存在交集;
若是,将所述当前节点确定为所述目标节点;
若否,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点。
示例性的,所述挂单链表中多个节点对应的价格区间之间在不存在交集的基础上,一个节点的上限等于下一个节点的下限,例如,某个节点对应的价格区间为(4.895,5.616],则该节点的下一个节点的价格区间为(5.616,6.108]。需要说明的是,对于价格区间的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够通过将定位节点的粒度细化到具体的价格区间,提高定位节点的准确性,从而提高整体挂单获取的准确性,进而提高整体挂单处理的准确性。
在一个可选的实施方式中,所述基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格;
在所述当前价格比较方向为获利买入或止损卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;
在所述当前价格比较方向为止损买入或获利卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单。
示例性的,所述确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格,可以为但不限于将对应的挂单信息进行解析,得到对应的挂单价格。其中,所述目标挂单价格,可以为/包括但不限于对应挂单的下限价格和/或上限价格。后续确定待处理挂单时,根据比较方向选用下限价格或上限价格(由于确定链表时已经以比较方向为依据,对应链表节点中的挂单价格一般已经为与比较方向对应的下限价格或上限价格)。其中,在比较方向为获利买入或止损卖出时,选用下限价格参与有关运算处理;如果比较方向为获利卖出或止损买入,选用上限价格参与有关运算处理。需要说明的是,对于确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够从不同的价格比较方向出发,分别采用适合于对应比较方向和有关性质的挂单确定方式确定待处理挂单,提高了整体获取挂单的准确性,从而提高了整体挂单处理的准确性。
在一个可选的实施方式中,如图3所示,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括如下步骤:
S301:基于所述目标挂单二叉堆队列,重复执行第一出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格小于所述标准价格,其中,所述第一出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单。
S302:将所有所述已出堆挂单和所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最大堆队列。
示例性的,一个节点对应一个挂单二叉堆队列,一个挂单二叉堆队列包括多个对应价格(如果比较方向为获利买入或止损卖出,则对应挂单的下限价格处于相应价格区间;如果比较方向为获利卖出或止损买入,则对应挂单的上限价格处于相应的价格区间;某个挂单的上限价格和下限价格为客户给出的预期交易的上限价格和下限价格)处于相应价格区间的挂单。其中,所述二叉堆队列,为计算机领域中现有的一种元素排序符合特定二叉堆规则的的队列,其性质和规律这里不再赘述。需要说明的是,对于有关对应关系,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
其中,二叉堆以最大堆为例,任何一个父元素的值,都大于或等于它左、右子元素的值。若父元素在相应二叉堆队列中的下标是parent的话,那么它的左子元素下标就是(2parent+1),右子元素下标就是(2parent+2)。假设n为二叉堆队列的元素数量,则二叉堆的构建生成的时间复杂度可为但不限于O(n),其更新、查询的时间复杂度则可为但不限于O(log n)。
示例性的,对二叉堆队列(或二叉堆)进行出堆操作,为有关领域的常规技术手段,这里不再赘述。其中,进行出堆操作,除了包括提取出当前队列堆顶的元素信息外,还包括重新调整二叉堆队列的结构,以使其符合对应二叉堆队列的特定格式或排布等。对应的,一个最大堆队列中,其堆顶元素对应的值为队列中已有元素值的最大值。
示例性的,一个队列元素,对应或直接表征一个挂单,其元素值可以为但不限于对应的挂单价格(视情况取下限价格或上限价格)。
示例性的,所述目标节点之后的所有节点,有如下例子:
某个挂单链表中,存在如下顺序的多个节点:节点G、节点E、节点C、节点A、节点H、节点F、节点D、节点B。已确定目标节点为节点F,则节点F之后的所有节点包括节点D和节点B。需要说明的是,对于目标节点之后的所有节点的性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在当前价格比较方向为获利买入或止损卖出时,凭借二叉堆有关计算复杂度较小的优势和更细化的提取处理过程,快速准确地将目标节点对应队列中符合机构处理预期的挂单以及对应比较方向的其他节点的挂单进行提取,从而提高了整体挂单处理的速度和准确性。其中,由于当前价格比较方向为获利买入或止损卖出,则对应预期的挂单为下限价格大于或等于所述标准价格的挂单(由于定位到的链表为对应比较方向的链表,所以节点元素对应的挂单价格此时为下限价格),因此,以标准价格为判断依据,将二叉堆队列中对应价格大于或等于标准价格的挂单元素直接出堆,完成目标节点的挂单获取,是合适的,且由于链表中节点的顺序与其对应挂单价格的整体大小对应(节点从前到后对应挂单价格从小到大,具体体现为但不限于节点从前到后对应价格区间整体从小到大,而节点中的相应挂单价格又均处于对应的价格区间),则在基于标准价格已经确定目标节点的基础上,目标节点之后的节点中的挂单的对应挂单价格也是肯定大于标准价格的,符合机构的处理预期,所以将目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单也是合理的。
在一个可选的实施方式中,如图4所示,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括如下步骤:
S401:基于所述目标挂单二叉堆队列,重复执行第二出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格大于或等于所述标准价格,其中,所述第二出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单。
S402:将所有所述已出堆挂单和所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最小堆队列。
示例性的,一个节点对应一个挂单二叉堆队列,一个挂单二叉堆队列包括多个对应价格(如果比较方向为获利买入或止损卖出,则对应挂单的下限价格处于相应价格区间;如果比较方向为获利卖出或止损买入,则对应挂单的上限价格处于相应的价格区间;某个挂单的上限价格和下限价格为客户给出的预期交易的上限价格和下限价格)处于相应价格区间的挂单。其中,所述二叉堆队列,为计算机领域中现有的一种元素排序符合特定二叉堆规则的的队列,其性质和规律这里不再赘述。需要说明的是,对于有关对应关系,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
其中,二叉堆以最小堆为例,任何一个父元素的值,都小于或等于它左、右子元素的值。若父元素在相应二叉堆队列中的下标是parent的话,那么它的左子元素下标就是(2parent+1),右子元素下标就是(2parent+2)。假设n为二叉堆队列的元素数量,则二叉堆的构建生成的时间复杂度可为但不限于O(n),其更新、查询的时间复杂度则可为但不限于O(log n)。
示例性的,对二叉堆队列(或二叉堆)进行出堆操作,为有关领域的常规技术手段,这里不再赘述。其中,进行出堆操作,除了包括提取出当前队列堆顶的元素信息外,还包括重新调整二叉堆队列的结构,以使其符合对应二叉堆队列的特定格式或排布等。对应的,一个最小堆队列中,其堆顶元素对应的值为队列中已有元素值的最小值。
示例性的,一个队列元素,对应或直接表征一个挂单。
示例性的,所述目标节点之后的所有节点,有如下例子:
某个挂单链表中,存在如下顺序的多个节点:节点G、节点E、节点C、节点A、节点H、节点F、节点D、节点B。已确定目标节点为节点F,则节点F之后的所有节点包括节点D和节点B。需要说明的是,对于目标节点之后的所有节点的性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够在当前价格比较方向为止损买入或获利卖出时,凭借二叉堆有关计算复杂度较小的优势和更细化的提取处理过程,快速准确地将目标节点对应队列中符合机构处理预期的挂单以及对应比较方向的其他节点的挂单进行提取,从而提高了整体挂单处理的速度和准确性。其中,由于当前价格比较方向为止损买入或获利卖出,则对应预期的挂单为上限价格小于所述标准价格的挂单(由于定位到的链表为对应比较方向的链表,所以节点元素对应的挂单价格此时为上限价格),因此,以标准价格为判断依据,将二叉堆队列中对应价格小于标准价格的挂单元素直接出堆,完成目标节点的挂单获取,是合适的,且由于链表中节点的顺序与其对应挂单价格的整体大小对应(节点从前到后对应挂单价格从小到大,具体体现为但不限于节点从前到后对应价格区间整体从小到大,而节点中的相应挂单价格又均处于对应的价格区间),则在基于标准价格已经确定目标节点的基础上,目标节点之前的节点中的挂单的对应挂单价格也是肯定小于标准价格的,符合机构的处理预期,所以将目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单也是合理的。
在一个可选的实施方式中,进一步包括:
在对所述待处理挂单进行处理之后,清空所有所述待处理挂单。
示例性的,所述清空所有所述待处理挂单,可以为但不限于将待处理挂单对应的挂单元素从对应的挂单二叉堆队列中清除。需要说明的是,对于清空所有所述待处理挂单的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够更准确地间接更新对应已处理挂单的相应状态,从而能够使后续获取挂单时,不会受到已处理挂单相关元素或信息的干扰造成处理出错,仅能够获取到真正待处理的挂单而非已处理完却没有及时清理掉相关记录的挂单,提高了整体挂单处理的准确性和效率。
在一个可选的实施方式中,所述将所述挂单链表中第k个节点确定为当前节点,包括:
将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点。
示例性的,本发明实施例中的挂单链表,其具体可以为但不限于类似图5所示形式的多层级跳表。具体的,该跳表类型的挂单链表,有k个层级。其中:
第k个层级的头指针指向所述链表的第k个节点,第k个节点对应第k个层级的指针指向第2k个节点,第2k个节点对应第k个层级的指针指向第3k个节点……以此类推;
第k-1个层级的头指针指向所述链表的第k-1个节点,第k-1个节点对应第k-1个层级的指针指向第k个节点,第k个节点对应第k-1个层级的指针指向第2k-1个节点,第2k-1个节点对应第k-1个层级的指针指向第2k个节点,第2k个节点对应第k-1个层级的指针指向第3k-1个节点,第3k-1个节点对应第k-1个层级的指针指向第3k个节点……以此类推;
第k-2个层级的头指针指向所述链表的第k-2个节点,第k-2个节点对应第k-2个层级的指针指向第k-1个节点,第k-1个节点对应第k-2个层级的指针指向第k个节点,第k个节点对应第k-2个层级的指针指向第2k-2个节点,第2k-2个节点对应第k-2个层级的指针指向第2k-1个节点,第2k-1个节点对应第k-2个层级的指针指向第2k个节点,第2k个节点对应第k-2个层级的指针指向第3k-2个节点,第3k-2个节点对应第k-2个层级的指针指向第3k-1个节点,第3k-1个节点对应第k-2个层级的指针指向第3k个节点……以此类推;
……
以此类推
第一个层级的头指针指向所述链表的第1个节点,对应的,在第一个层级中,每个节点均有指向后面相邻节点的指针。
具体的,一个示例性的挂单链表,如图5所示,此时k=4,且挂单链表的节点数量(记载有对应挂单的节点的数量)等于8,则如图5所示,该挂单链表的最高层级为第四层T4,层级T4的头指针指向所述链表的第4个节点A,节点A对应层级T4的指针指向第8个节点B;
对应的,第三层为层级T3,层级T3的头指针指向所述链表的第3个节点C,节点C对应层级T3的指针指向第4个节点A,节点A对应层级T3的指针指向第7个节点D,节点D对应层级T3的指针指向第8个节点B;
对应的,第二层为层级T2,层级T2的头指针指向所述链表的第2个节点E,节点E对应层级T2的指针指向第3个节点C,节点C对应层级T2的指针指向第4个节点A,节点A对应层级T2的指针指向第6个节点F,节点F对应层级T2的指针指向第7个节点D,节点D对应层级T2的指针指向第8个节点B;
对应的,第一层(最下层)为层级T1,层级T1的头指针指向所述链表的第1个节点G,节点G对应层级T1的指针指向第2个节点E,节点E对应层级T1的指针指向第3个节点C,节点C对应层级T1的指针指向第4个节点A,节点A对应层级T1的指针指向第5个节点H,节点H对应层级T1的指针指向第6个节点F,节点F对应层级T1的指针指向第7个节点D,节点D对应层级T1的指针指向第8个节点B。
需要说明的是,对于挂单链表的具体形式、结构和指针情况等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,在挂单链表为多层级跳表时,不同层级表征同一二叉堆队列的节点还可以是不同的节点,例如,T3层级的A节点和T2层级的A节点,可以分别为两个节点,但是,该两个节点还均存在对应指向相同的对应二叉堆队列(可通俗地理解为A队列)的队列定位指针。
优选的,所述挂单链表,还可以为单层链表,其中,该单层链表的头指针指向第1个节点,每个节点可以包括多个对应的指针,以至少能够指向该节点后k个节点中最后的节点以及该节点的前一个节点。
示例性的,所述将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点,可以参考但不限于图5,在图5所示的挂单链表中,第k个层级(k取4)为T4层级,则当前层级为T4层级,其头指针指向的节点为链表的第4个节点(节点A),则将节点A确定为当前节点。需要说明的是,对于将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,在所述挂单链表为单层链表时,还可以直接将单层链表中所有包括挂单的节点中的第k个节点确定为当前节点。
通过上述步骤,能够充分考虑链表的有关结构性质和遍历性质,以具体的指针为依据,更准确快速地定位到对应的当前节点,从而提高了整体挂单获取的速度和准确性,进而提高了整体挂单处理的速度和准确性。
在一个可选的实施方式中,所述将所述当前节点的后k个节点中最后的节点作为当前节点,包括:
将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点。
示例性的,所述将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点,可以参考但不限于图5,若当前层级为T4层级,且当前节点为节点A,则当前节点对应当前层级的指针指向的节点则为节点B,确定节点B为更新后的当前节点。需要说明的是,对于将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,在所述挂单链表为单层链表时,还可以直接将单层链表中在当前节点后面且与所述当前节点间隔k-1个节点的节点作为新的当前节点。
示例性的,在本发明实施例中,标准价格不大于挂单链表中最后一个节点对应的价格区间的上限,且不小于挂单链表中最前一个节点对应的价格区间的下限。需要说明的是,对于标准价格的取值范围,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能够充分考虑链表的有关结构性质和遍历性质,以具体的指针为依据,更准确快速地定位到对应的新当前节点,从而提高了整体挂单获取的速度和准确性,进而提高了整体挂单处理的速度和准确性。
在一个可选的实施方式中,所述将所述当前节点的前一个节点作为当前节点,包括:
将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点。
示例性的,所述将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点,可以参考但不限于图5,若当前层级为T4层级且当前节点为节点B,则其前一个层级为位于其下层的T3层级,重新确定当前层级为T3层级,在T3层级中指向当前节点B的指针所属的节点为节点D,则将节点D确定为更新后的当前节点。需要说明的是,对于将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
优选的,在所述挂单链表为单层链表时,还可以直接将单层链表中在当前节点之前且相邻于当前节点的节点确定为更新后的当前节点。
通过上述步骤,能够充分考虑链表的有关结构性质和遍历性质,以具体的指针为依据,更准确快速地定位到对应的新当前节点,从而提高了整体挂单获取的速度和准确性,进而提高了整体挂单处理的速度和准确性。
这里结合图5所示的挂单链表,给出一个节点查找步骤的具体示例:
标准价格取值为5.802,且k=4;
将当前层级确定为最高的层级T4,定位到第4个(第k个)节点A,而节点A对应的价格区间为(xxx,4.895],由此可见,标准价格不与节点A对应的价格区间相符且大于该价格区间的上限,然后跳转至的8个节点B(相对于节点A的后k个节点中最后的节点),而节点B对应的价格区间为(6.895,xxx],由此可见,标准价格不与节点B对应的价格区间相符且不大于该价格区间的下限。
将当前层级下移至第3层级T3,回退到节点A,然后定位到其指向的第7个(节点B的前一个节点,其指针指向节点B)节点D,而节点D对应的价格区间为(6.108,6.895],由此可见,标准价格不与节点D对应的价格区间相符且不大于该价格区间的下限。
将当前层级下移至第2层级T2,回退到节点A,然后定位到其指向的第6个(节点D的前一个节点,其指针指向节点D)节点F,而节点F对应的价格区间为(5.616,6.108],由此可见,标准价格与节点F对应的价格区间相符,定位节点F为目标节点。
再者,若挂单链表为单层链表,此处给出另一个节点查找步骤的具体示例:
标准价格取值为5.802,且k=4;
挂单链表中,对应有挂单的节点依次为节点G、节点E、节点C、节点A、节点H、节点F、节点D和节点B。其中,以节点G为第1个节点,则作为当前节点的第k个节点为第4个节点A,而节点A对应的价格区间为(xxx,4.895],由此可见,标准价格不与节点A对应的价格区间相符且大于该价格区间的上限,因此,将节点A的后k个节点中最后的节点B作为当前节点。
节点B对应的价格区间为(6.895,xxx],由此可见,标准价格不与节点B对应的价格区间相符且不大于该价格区间的下限,将当前节点B的前一个节点D作为当前节点。
节点D对应的价格区间为(6.108,6.895],由此可见,标准价格不与节点D对应的价格区间相符且不大于该价格区间的下限,将当前节点D的前一个节点F作为当前节点。
节点F对应的价格区间为(5.616,6.108],由此可见,标准价格与节点D对应的价格区间相符,将节点F确定为目标节点。
需要说明的是,对于节点查找的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,层级数量k和链表中对应挂单的节点的数量(由于一个节点对应一个挂单队列,所以这里亦即链表对应的挂单二叉堆队列的数量,在这里可用n表示),可由本领域技术人员根据与实际情况确定,本发明实施例并不做出限制。其中,n和k的大小关系可以为但不限于n>>k。由于每个节点相应指针数量会对应增多,因此,k越大,在链表为跳表时空间复杂度也会越大,但定位到目标节点的时间就越小。比如以图5所示的链表为例,查找目标节点F花了4个时间单位,而若k=1,则需要6个时间单位。如果要定位的挂单队列(对应的目标节点)在整体链表的后半部,则减少的时间复杂度会更多,最理想情况可以达到logkn的时间复杂度,但是,若k仅等于1,则时间复杂度会高达n。在实际应用中,k优选取值为32,可以视当前生产环境实际的空间占用情况和时间效率进行平衡调整。而挂单节点数量n的值,需要根据有关挂单历史数量确定,一般来说,所确定的挂单节点数量n,优选为令链表中每个节点对应的队列中挂单元素个数在100至500之间的数量。由此可见,通过本发明实施例中重复执行节点查找的步骤,能够极大程度上减少获取预期挂单所需的时间,从而大幅度提高获取预期挂单的速度,且无需进行频繁比对,可以做到批量获取,进而提高了整体挂单处理的速度和效率。
需要说明的是,对于层级数量k和链表中对应挂单的节点的数量(由于一个节点对应一个挂单队列,所以这里亦即链表对应的挂单二叉堆队列的数量,在这里可用n表示)的数量关系,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
在一个可选的实施方式中,进一步包括:
在确定对应的挂单链表之前,
基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,并基于多个所述价格区间和挂单,形成对应的多个挂单链表。
示例性的,所述可选产品类型信息,包括或对应不限于可选的产品挂单类型信息和产品性质类型信息等。需要说明的是,对于可选产品类型信息的具体内容,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述风险计量模型,可以为但不限于VAR模型等,其中,所述VAR模型专用于金融领域,可每一个金融机构提供的挂单产品的未来一段时间的价格进行预估,该模型可以通过历史模拟法或蒙特卡洛输出每个产品的未来一段时间的价格正态分布图,并能输出该分布图的平均值u,和标准差δ。根据该分布图的对应的标准正态分布概率表以及可设置的队列数量参数n(对应后续生成链表中节点数量,即链表对应的挂单队列数量),得到各队列的区间值,各区间内的分布概率为1/n。需要说明的是,对于风险计量模型的具体类型和性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述队列数量,可由本领域技术人员根据实际情况确定,本发明实施例对此并不做出限制。其具体性质可以参考但不限于本发明实施例中对于层级数量k和链表中对应挂单的节点的数量(由于一个节点对应一个挂单队列,所以这里亦即链表对应的挂单二叉堆队列的数量,在这里可用n表示)的数量关系的描述,这里不再赘述。
通过上述步骤,能够事先对现存的挂单进行对应整理,得到准确对应产品类型信息和价格比较方向的挂单链表,从而能够为后续按机构预期获取特定挂单并进行特定处理的过程做好准备,间接提高了整体挂单处理的速度和准确性。
在一个可选的实施方式中,所述基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,包括:
基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息;
基于所述预估正态分布信息和队列数量,得到对应的所述价格区间;其中,所述预估正态分布信息包括所述可选产品类型信息对应的多个预估产品价格,所述可选产品类型信息对应的预估产品价格落入对应的不同价格区间的概率相同,且所述价格区间与挂单二叉堆队列一一对应,所述挂单二叉堆队列与挂单链表中的节点一一对应。
示例性的,所述基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息,可以为但不限于将所述产品信息输入到所述风险计量模型中进行运算处理,得到对应的预估正态分布信息。其中,所述产品信息,包括但不限于对应可选产品类型信息的产品的诸如汇率、利率等产品变动信息或风险因素信息等,所述预估正态分布信息,包括但不限于预估的对应挂单产品在未来一段时间内的价格正态分布(一般情况下式标准正态分布u)信息等。需要说明的是,对于基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息的具体实现方式、产品信息的性质和预估正态分布信息的性质等,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述基于所述预估正态分布信息和队列数量,得到对应的所述价格区间,也可以通过但不限于对应的风险计量模型进行相关计算和处理实现,以正态分布信息和队列数量为输入,使用风险计量模型(例如VAR模型)计算得到对应的多个价格区间,是通用的处理,具体可参考与VAR模型相关的标准正态分布概率表的资料,这里不再赘述。其中,每个价格区间对应的概率分布区间相同。需要说明的是,对于基于所述预估正态分布信息和队列数量,得到对应的所述价格区间的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
通过上述步骤,能充分凭借风险计量模型能够准确预估对应价格分布情况的特性,使价格区间与风险计量模型的预测结果对应,从而有利于使后续在基于价格区间分配挂单来建立对应的链表时,使每个价格区间分配的挂单的数量较为均匀,从而使得后续对应二叉堆队列(对应节点)的挂单元素数量较为均匀,进而能够间接减少后续挂单获取过程中计算的复杂度,并因此提高整体挂单获取的速度。
对应的,本场景下,由于客户挂单基本是围绕中间价去进行挂单的订立,无论是客户预期的挂单价格下限还是挂单价格上限,其分布跟对应风险计量模型的输出基本是一致的,所以可直接复用风险计量模型的输出进行计算,以让后期各队列的挂单的数量尽量平均,比如后续链表中某个节点的区间内挂单的数量的差距在未来一段时间都是较小的,不会有极值出现。
在一个优选的实施方式中,所述基于多个所述价格区间和挂单,形成对应的多个挂单链表,包括:
基于所述队列数量,确定层级数量k;
确定所述挂单对应的预期价格比较方向,并将预期价格比较方向为获利买入和止损卖出的挂单确定为多个第一待插入挂单,将预期价格比较方向为止损买入或获利卖出的挂单确定为多个第二待插入挂单;
形成对应所述价格区间的多个节点,并将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第一初始挂单链表,其中,所述第一初始挂单链表的节点对应有预设第一挂单二叉堆队列,所述第一挂单二叉堆队列为最大堆队列;
将所述第一待插入挂单的下限价格作为对应的第一挂单价格,并将所述第一待插入挂单插入到第一初始挂单链表中所述第一挂单价格对应的价格区间的第一挂单二叉堆队列中,得到对应预期价格比较方向为获利买入和止损卖出的一个挂单链表;
将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第二初始挂单链表,其中,所述第二初始挂单链表的节点对应有预设第二挂单二叉堆队列,所述第二挂单二叉堆队列为最小堆队列;
将所述第二待插入挂单的上限价格作为对应的第二挂单价格,并将所述第二待插入挂单插入到第二初始挂单链表中所述第二挂单价格对应的价格区间的第二挂单二叉堆队列中,得到对应预期价格比较方向为止损买入或获利卖出的一个挂单链表。
示例性的,所述基于所述队列数量,确定层级数量k的具体实现方式,可由本领域技术人员根据实际情况确定,本发明实施例对此并不做出限制。具体性质和原理可以参考本发明实施例中对于层级数量k和链表中对应挂单的节点的数量(由于一个节点对应一个挂单队列,所以这里亦即链表对应的挂单二叉堆队列的数量,在这里可用n表示)的数量关系的描述,这里不再赘述。
示例性的,所述确定所述挂单对应的预期价格比较方向,可以为但不限于对挂单或挂单对应的有关客户请求信息等进行解析,确定所述挂单对应的预期价格比较方向。其中,所述预期价格比较方向,其性质可以为但不限于客户所期望的对于其挂单的处理方式所对应的价格比较方向。需要说明的是,对于确定所述挂单对应的预期价格比较方向的具体实现方式以及预期价格比较方向的性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述形成对应所述价格区间的多个节点,可以为但不限于按形成链表节点的方式形成对应所述价格区间的多个节点。需要说明的是,对于形成对应所述价格区间的多个节点的具体实现方式,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第一初始挂单链表,可以为但不限于将所述节点按对应价格区间的下限或上限从小到大的顺序排列后,进行相关处理形成类似图5所示的结构的、层级数量为k的多层级跳表为第一初始挂单链表,或者形成对应的单层链表为第一初始挂单链表。其中,所述第一初始挂单链表为多层级调表时,其结构具体可以为但不限于:
第k个层级的头指针指向所述链表的第k个节点,第k个节点对应第k个层级的指针指向第2k个节点,第2k个节点对应第k个层级的指针指向第3k个节点……以此类推;
第k-1个层级的头指针指向所述链表的第k-1个节点,第k-1个节点对应第k-1个层级的指针指向第k个节点,第k个节点对应第k-1个层级的指针指向第2k-1个节点,第2k-1个节点对应第k-1个层级的指针指向第2k个节点,第2k个节点对应第k-1个层级的指针指向第3k-1个节点,第3k-1个节点对应第k-1个层级的指针指向第3k个节点……以此类推;
第k-2个层级的头指针指向所述链表的第k-2个节点,第k-2个节点对应第k-2个层级的指针指向第k-1个节点,第k-1个节点对应第k-2个层级的指针指向第k个节点,第k个节点对应第k-2个层级的指针指向第2k-2个节点,第2k-2个节点对应第k-2个层级的指针指向第2k-1个节点,第2k-1个节点对应第k-2个层级的指针指向第2k个节点,第2k个节点对应第k-2个层级的指针指向第3k-2个节点,第3k-2个节点对应第k-2个层级的指针指向第3k-1个节点,第3k-1个节点对应第k-2个层级的指针指向第3k个节点……以此类推;
……
以此类推
第一个层级的头指针指向所述链表的第1个节点,对应的,在第一个层级中,每个节点均有指向后面相邻节点的指针。
其中,在第一初始挂单链表为单层链表时,其头指针指向排列后的第1个节点,且除排列后的第1个节点和最后一个节点外的每个对应节点,至少包括指向所述对应节点的后k个节点中最后的节点的指针以及指向所述对应节点的前一个节点的指针;且排列后的第1个节点至少包括指向所述第1个节点的后k个节点中最后的节点的指针,排列后的最后一个节点至少包括指向所述最后一个节点的前一个节点的指针。
需要说明的是,将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第一初始挂单链表的具体实现方式以及第一初始挂单链表的结构性质,可由本领域技术人员根据实际情况确定,上述说明仅为举例,对此并不构成限制。
示例性的,所述将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第二初始挂单链表的具体原理以及第二初始挂单链表的性质和结构等,可以参考本发明实施例中对于将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第一初始挂单链表的步骤的描述,这里不再赘述。
示例性的,一个挂单链表对应一个特定的产品挂单类型信息和一个特定的价格比较方向。
通过上述步骤,能够更准确、更缜密且更细化地形成对应的挂单链表,使挂单链表的层次结构更加清晰且对应节点能够准确映射到对应价格区间的、按对应顺序排列的挂单,提高了形成的挂单链表的全面性、准确性和便于使用性,从而间接提高了整体挂单处理的速度和准确性。
在一个优选的实施方式中,所述将所述第一待插入挂单插入到第一初始挂单链表中所述第一挂单价格对应的价格区间的第一挂单二叉堆队列中,包括:
将所述第一初始挂单链表中第k个节点确定为第一定位节点;
重复执行第一节点定位的步骤,直到完成所述第一待插入挂单的插入,其中,所述第一节点定位的步骤包括:判断所述第一定位节点对应的第一挂单二叉堆队列的价格区间是否与所述第一待插入挂单的第一挂单价格相符,若相符,将所述第一待插入挂单插入到所述第一定位节点对应的第一挂单二叉堆队列中;若不相符,判断所述第一待插入挂单的第一挂单价格是否大于所述第一定位节点对应的第一挂单二叉堆队列的价格区间的上限,若大于,将所述第一定位节点的后k个节点中最后的节点作为第一定位节点,若不大于,将所述第一定位节点的前一个节点作为第一定位节点。
示例性的,在确定二叉堆队列为最小堆队列还是最大堆队列的基础上,将对应数据插入到二叉堆队列为本领域常规技术手段,这里不再赘述。其中,将挂单插入到二叉堆队列的过程,不仅仅包括将挂单填入到对应的二叉堆队列,还至少包括二叉堆队列在接收新的挂单元素后,对应根据该挂单元素的价格值调整二叉堆队列元素的顺序和二叉堆队列结构以使其符合二叉堆结构特性的过程(现有手段)。
示例性的,所述将所述第一初始挂单链表中第k个节点确定为第一定位节点以及重复执行第一节点定位的步骤的具体原理,可以参考本发明实施例中对于节点查找步骤的具体示例的内容的描述以及将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点的步骤的描述,这里不再赘述。
通过上述步骤,能够提高定位节点的速度和准确性,实现了快速准确地将对应的挂单插入到合适的节点中,从而提高了整体形成挂单链表的速度和准确性,进而提高整体挂单处理的速度和准确性。
在一个优选的实施方式中,所述将所述第二待插入挂单插入到第二初始挂单链表中所述第二挂单价格对应的价格区间的第二挂单二叉堆队列中,包括:
将所述第二初始挂单链表中第k个节点确定为第二定位节点;
重复执行第二节点定位的步骤,直到完成所述第二待插入挂单的插入,其中,所述第二节点定位的步骤包括:判断所述第二定位节点对应的第二挂单二叉堆队列的价格区间是否与所述第二待插入挂单的第二挂单价格相符,若相符,将所述第二待插入挂单插入到所述第二定位节点对应的第二挂单二叉堆队列中;若不相符,判断所述第二待插入挂单的第二挂单价格是否大于所述第二定位节点对应的第二挂单二叉堆队
列的价格区间的上限,若大于,将所述第二定位节点的后k个节点中最后的节点作为5第二定位节点,若不大于,将所述第二定位节点的前一个节点作为第二定位节点。
示例性的,在确定二叉堆队列为最小堆队列还是最大堆队列的基础上,将对应数据插入到二叉堆队列为本领域常规技术手段,这里不再赘述。其中,将挂单插入到二叉堆队列的过程,不仅仅包括将挂单填入到对应的二叉堆队列,还至少包括二叉堆队
列在接收新的挂单元素后,对应根据该挂单元素的价格值调整二叉堆队列元素的顺序0和二叉堆队列结构以使其符合二叉堆结构特性的过程(现有手段)。
示例性的,所述将所述第二初始挂单链表中第k个节点确定为第二定位节点以及重复执行第二节点定位的步骤的具体原理,可以参考本发明实施例中对于节点查找步骤的具体示例的内容的描述以及将所述挂单链表中第k个节点确定为当前节点,基于
所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节5点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点的步骤的描述,这里不再赘述。
0通过上述步骤,能够提高定位节点的速度和准确性,实现了快速准确地将对应的挂单插入到合适的节点中,从而提高了整体形成挂单链表的速度和准确性,进而提高整体挂单处理的速度和准确性。
基于相同原理,本发明实施例公开了一种金融产品挂单处理装置600,如图6所示,该金融产品挂单处理装置600包括:
5链表定位模块601,用于根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级;
节点查找模块602,用于将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点;
挂单处理模块603,用于基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
在一个可选的实施方式中,所述链表定位模块601,用于:
根据所述当前产品类型信息,得到产品挂单类型信息和产品性质类型信息;
根据所述产品挂单类型信息、产品性质类型信息和当前价格比较方向,确定对应的挂单链表;其中,所述挂单链表中多个节点的顺序为按对应价格区间的下限或上限从小到大的顺序。
在一个可选的实施方式中,所述节点查找模块602,用于:
判断所述标准价格是否大于所述价格区间的下限且小于或等于所述价格区间的上限,其中,所述挂单链表中多个节点对应的价格区间之间不存在交集;
若是,将所述当前节点确定为所述目标节点;
若否,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点。
在一个可选的实施方式中,所述挂单处理模块603,用于:
确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格;
在所述当前价格比较方向为获利买入或止损卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;
在所述当前价格比较方向为止损买入或获利卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单。
在一个可选的实施方式中,所述挂单处理模块603,用于:
基于所述目标挂单二叉堆队列,重复执行第一出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格小于所述标准价格,其中,所述第一出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最大堆队列。
在一个可选的实施方式中,所述挂单处理模块603,用于:
基于所述目标挂单二叉堆队列,重复执行第二出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格大于或等于所述标准价格,其中,所述第二出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最小堆队列。
在一个可选的实施方式中,进一步包括清空模块,用于:
在对所述待处理挂单进行处理之后,清空所有所述待处理挂单。
在一个可选的实施方式中,所述节点查找模块602,用于:
将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点。
在一个可选的实施方式中,所述节点查找模块602,用于:
将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点。
在一个可选的实施方式中,所述节点查找模块602,用于:
将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点。
在一个可选的实施方式中,进一步包括挂单链表构建模块,用于:
在确定对应的挂单链表之前,
基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,并基于多个所述价格区间和挂单,形成对应的多个挂单链表。
在一个可选的实施方式中,所述挂单链表构建模块,用于:
基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息;
基于所述预估正态分布信息和队列数量,得到对应的所述价格区间;其中,所述预估正态分布信息包括所述可选产品类型信息对应的多个预估产品价格,所述可选产品类型信息对应的预估产品价格落入对应的不同价格区间的概率相同,且所述价格区间与挂单二叉堆队列一一对应,所述挂单二叉堆队列与挂单链表中的节点一一对应。
在一个优选的实施方式中,所述挂单链表构建模块,用于:
基于所述队列数量,确定层级数量k;
确定所述挂单对应的预期价格比较方向,并将预期价格比较方向为获利买入和止损卖出的挂单确定为多个第一待插入挂单,将预期价格比较方向为止损买入或获利卖出的挂单确定为多个第二待插入挂单;
形成对应所述价格区间的多个节点,并将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第一初始挂单链表,其中,所述第一初始挂单链表的节点对应有预设第一挂单二叉堆队列,所述第一挂单二叉堆队列为最大堆队列;
将所述第一待插入挂单的下限价格作为对应的第一挂单价格,并将所述第一待插入挂单插入到第一初始挂单链表中所述第一挂单价格对应的价格区间的第一挂单二叉堆队列中,得到对应预期价格比较方向为获利买入和止损卖出的一个挂单链表;
将所述节点按对应价格区间的下限或上限从小到大的顺序进行排列,形成对应的第二初始挂单链表,其中,所述第二初始挂单链表的节点对应有预设第二挂单二叉堆队列,所述第二挂单二叉堆队列为最小堆队列;
将所述第二待插入挂单的上限价格作为对应的第二挂单价格,并将所述第二待插入挂单插入到第二初始挂单链表中所述第二挂单价格对应的价格区间的第二挂单二叉堆队列中,得到对应预期价格比较方向为止损买入或获利卖出的一个挂单链表。
在一个优选的实施方式中,所述挂单链表构建模块,用于:
将所述第一初始挂单链表中第k个节点确定为第一定位节点;
重复执行第一节点定位的步骤,直到完成所述第一待插入挂单的插入,其中,所述第一节点定位的步骤包括:判断所述第一定位节点对应的第一挂单二叉堆队列的价格区间是否与所述第一待插入挂单的第一挂单价格相符,若相符,将所述第一待插入挂单插入到所述第一定位节点对应的第一挂单二叉堆队列中;若不相符,判断所述第一待插入挂单的第一挂单价格是否大于所述第一定位节点对应的第一挂单二叉堆队列的价格区间的上限,若大于,将所述第一定位节点的后k个节点中最后的节点作为第一定位节点,若不大于,将所述第一定位节点的前一个节点作为第一定位节点。
在一个优选的实施方式中,所述挂单链表构建模块,用于:
将所述第二初始挂单链表中第k个节点确定为第二定位节点;
重复执行第二节点定位的步骤,直到完成所述第二待插入挂单的插入,其中,所述第二节点定位的步骤包括:判断所述第二定位节点对应的第二挂单二叉堆队列的价格区间是否与所述第二待插入挂单的第二挂单价格相符,若相符,将所述第二待插入挂单插入到所述第二定位节点对应的第二挂单二叉堆队列中;若不相符,判断所述第二待插入挂单的第二挂单价格是否大于所述第二定位节点对应的第二挂单二叉堆队列的价格区间的上限,若大于,将所述第二定位节点的后k个节点中最后的节点作为第二定位节点,若不大于,将所述第二定位节点的前一个节点作为第二定位节点。
由于该金融产品挂单处理装置600解决问题的原理与以上方法类似,因此本金融产品挂单处理装置600的实施可以参见以上的方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述方法。
下面参考图7,其示出了适于用来实现本申请实施例的计算机设备700的结构示意图。
如图7所示,计算机设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的工作和处理。在RAM703中,还存储有系统700操作所需的各种程序和数据。CPU701、ROM702、以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装如存储部分708。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由记录“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种金融产品挂单处理方法,其特征在于,包括:
根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级;
将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点;
基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,包括:
根据所述当前产品类型信息,得到产品挂单类型信息和产品性质类型信息;
根据所述产品挂单类型信息、产品性质类型信息和当前价格比较方向,确定对应的挂单链表;其中,所述挂单链表中多个节点的顺序为按对应价格区间的下限或上限从小到大的顺序。
3.根据权利要求1所述的方法,其特征在于,所述判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,包括:
判断所述标准价格是否大于所述价格区间的下限且小于或等于所述价格区间的上限,其中,所述挂单链表中多个节点对应的价格区间之间不存在交集;
若是,将所述当前节点确定为所述目标节点;
若否,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点。
4.根据权利要求2所述的方法,其特征在于,所述基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
确定所述目标挂单二叉堆队列中多个挂单的目标挂单价格;
在所述当前价格比较方向为获利买入或止损卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;
在所述当前价格比较方向为止损买入或获利卖出时,基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格大于或等于所述标准价格的挂单以及所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
基于所述目标挂单二叉堆队列,重复执行第一出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格小于所述标准价格,其中,所述第一出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之后的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最大堆队列。
6.根据权利要求4所述的方法,其特征在于,所述基于所述目标节点的目标挂单二叉堆队列,将所述目标挂单二叉堆队列中对应目标挂单价格小于所述标准价格的挂单以及所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单,包括:
基于所述目标挂单二叉堆队列,重复执行第二出堆的步骤,直到所述目标挂单二叉堆队列的堆顶元素对应的挂单的目标挂单价格大于或等于所述标准价格,其中,所述第二出堆的步骤,包括:将所述目标挂单二叉堆队列的堆顶元素进行出堆操作,得到一个已出堆挂单;
将所有所述已出堆挂单和所述挂单链表中所述目标节点之前的所有节点的挂单二叉堆队列的所有挂单确定为待处理挂单;其中,所述目标挂单二叉堆队列为最小堆队列。
7.根据权利要求1所述的方法,其特征在于,进一步包括:
在对所述待处理挂单进行处理之后,清空所有所述待处理挂单。
8.根据权利要求1所述的方法,其特征在于,所述将所述挂单链表中第k个节点确定为当前节点,包括:
将所述挂单链表的第k个层级作为当前层级,并将所述当前层级的头指针指向的节点确定为当前节点。
9.根据权利要求8所述的方法,其特征在于,所述将所述当前节点的后k个节点中最后的节点作为当前节点,包括:
将所述当前节点的对应所述当前层级的指针指向的节点确定为更新后的当前节点。
10.根据权利要求8所述的方法,其特征在于,所述将所述当前节点的前一个节点作为当前节点,包括:
将当前层级的前一个层级作为更新后当前层级,并将对应所述更新后当前层级的指向所述当前节点的指针所属的节点确定为更新后的当前节点。
11.根据权利要求1所述的方法,其特征在于,进一步包括:
在确定对应的挂单链表之前,
基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,并基于多个所述价格区间和挂单,形成对应的多个挂单链表。
12.根据权利要求11所述的方法,其特征在于,所述基于多个可选产品类型信息、预设的风险计量模型和预设的队列数量,得到所述可选产品类型信息对应的多个价格区间,包括:
基于所述可选产品类型信息对应的产品信息和所述风险计量模型,得到所述可选产品类型信息对应的预估正态分布信息;
基于所述预估正态分布信息和队列数量,得到对应的所述价格区间;其中,所述预估正态分布信息包括所述可选产品类型信息对应的多个预估产品价格,所述可选产品类型信息对应的预估产品价格落入对应的不同价格区间的概率相同,且所述价格区间与挂单二叉堆队列一一对应,所述挂单二叉堆队列与挂单链表中的节点一一对应。
13.一种金融产品挂单处理装置,其特征在于,包括:
链表定位模块,用于根据当前产品类型信息和当前价格比较方向,确定对应的挂单链表,其中,所述挂单链表包括k个层级;
节点查找模块,用于将所述挂单链表中第k个节点确定为当前节点,基于所述挂单链表,重复执行节点查找的步骤,直到确定与预设的标准价格对应的目标节点,所述节点查找的步骤包括:判断当前节点对应的挂单二叉堆队列的价格区间是否与所述标准价格相符,若相符,将所述当前节点确定为所述目标节点;若不相符,判断所述标准价格是否大于所述价格区间的上限,若大于,将所述当前节点的后k个节点中最后的节点作为当前节点,若不大于,将所述当前节点的前一个节点作为当前节点;
挂单处理模块,用于基于所述目标节点和标准价格,将所述目标节点的目标挂单二叉堆队列中对应所述当前价格比较方向的多个挂单以及所述挂单链表中对应所述当前价格比较方向的多个节点的挂单二叉堆队列的所有挂单确定为待处理挂单,对所述待处理挂单进行处理。
14.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-12中任一项所述方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674056.6A CN115936875A (zh) | 2022-12-26 | 2022-12-26 | 金融产品挂单处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211674056.6A CN115936875A (zh) | 2022-12-26 | 2022-12-26 | 金融产品挂单处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115936875A true CN115936875A (zh) | 2023-04-07 |
Family
ID=86557367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211674056.6A Pending CN115936875A (zh) | 2022-12-26 | 2022-12-26 | 金融产品挂单处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115936875A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342171A (zh) * | 2023-05-31 | 2023-06-27 | 北京中科江南信息技术股份有限公司 | 一种通信产品多级组件供应价格监测方法、装置及设备 |
-
2022
- 2022-12-26 CN CN202211674056.6A patent/CN115936875A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342171A (zh) * | 2023-05-31 | 2023-06-27 | 北京中科江南信息技术股份有限公司 | 一种通信产品多级组件供应价格监测方法、装置及设备 |
CN116342171B (zh) * | 2023-05-31 | 2023-08-29 | 北京中科江南信息技术股份有限公司 | 一种通信产品多级组件供应价格监测方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8364517B2 (en) | Computer-implemented systems and methods for forecast reconciliation | |
US20200218737A1 (en) | Method, system and program product for matching of transaction records | |
CN103748579B (zh) | 在映射化简框架中处理数据 | |
US8631040B2 (en) | Computer-implemented systems and methods for flexible definition of time intervals | |
US8296224B2 (en) | Constrained optimized binning for scorecards | |
CN110832514A (zh) | 由个别的海关交易记录临近预报抽象的调查 | |
CN109961198B (zh) | 关联信息生成方法和装置 | |
CN111858742A (zh) | 一种数据可视化方法、装置、存储介质及设备 | |
CN113869801A (zh) | 一种企业数字中台的成熟状态评估方法和装置 | |
US11182364B2 (en) | Data analysis support apparatus and data analysis support method | |
US20150142646A1 (en) | Configurable invoice matching optimization system | |
CN115936875A (zh) | 金融产品挂单处理方法和装置 | |
WO2021222413A1 (en) | Resource capacity planning system | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN106844320B (zh) | 一种财务报表整合方法和设备 | |
CN102496126B (zh) | 一种托管资产交易数据监控设备 | |
US8494895B1 (en) | Platform maturity analysis system | |
CN112348420A (zh) | 储位信息获取方法及系统、存储介质和电子设备 | |
JP2019175435A (ja) | 取引支援システム、取引支援方法および取引支援プログラム | |
CN113342843A (zh) | 大数据在线分析方法和系统 | |
US20050010459A1 (en) | Project pre-review estimate method | |
CN111723004A (zh) | 敏捷软件开发的度量方法,度量数据输出方法以及装置 | |
CN116049140A (zh) | 一种基于电商数据的数据仓库建立方法及系统 | |
Goldmann et al. | A new ordinal mixed-data sampling model with an application to corporate credit rating levels | |
CN110858355A (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 |