CN118154215A - 基于内存数据库的价格合成方法及其装置、电子设备 - Google Patents
基于内存数据库的价格合成方法及其装置、电子设备 Download PDFInfo
- Publication number
- CN118154215A CN118154215A CN202410262811.2A CN202410262811A CN118154215A CN 118154215 A CN118154215 A CN 118154215A CN 202410262811 A CN202410262811 A CN 202410262811A CN 118154215 A CN118154215 A CN 118154215A
- Authority
- CN
- China
- Prior art keywords
- price
- transaction
- data
- quotation
- queue
- 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
- 238000001308 synthesis method Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008030 elimination Effects 0.000 claims description 15
- 238000003379 elimination reaction Methods 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 11
- 238000003786 synthesis reaction Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 31
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 31
- 230000002194 synthesizing effect Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 230000008859 change Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000010008 shearing Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000035515 penetration Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
Abstract
本发明公开了一种基于内存数据库的价格合成方法及其装置、电子设备,涉及金融科技领域或其他相关技术领域,该方法包括:响应客户端的行情询问请求,读取内存数据库中的行情交易价格,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差;基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表;将行情交易价格表推送至客户端。本发明解决了相关技术中磁盘数据库占用资源多,数据存取速度慢,导致报价生成结果延迟较严重的技术问题。
Description
技术领域
本发明涉及金融科技领域或其他相关领域,具体而言,涉及一种基于内存数据库的价格合成方法及其装置、电子设备。
背景技术
当前,在外汇市场中需要实时生成各种金融产品的报价信息,但是现有的价格合成系统存在多个弊端:
第一个弊端,报价生成延迟较严重。相关技术中,外资金融机构主流的交易平台和交易所价格实时变动,而国内金融机构的各种交易终端、网银的价格行情变化对标交易所的行情变化存在延迟2到3秒的延迟。举个例子:外汇市场价格变化频繁,有些产品价格刷新频率甚至小于1秒,比如美元与非美外币的即时价格变化,会触发所有非美外币兑人民币的即期、远期所有价格的更新,假设每秒的报价报文推送20对币种对价格,引起写数据库的数据笔数达到几千笔条,在价格合成过程还要多次从磁盘数据库中,按币种或者按产品读取各种点差数据参与,如果每一笔数据都要从磁盘数据库获取并写到磁盘数据库,磁盘数据库存在缺陷:占用、消耗的系统资源较多,数据存取速度慢,数据存取时间不一致且难以预测,因为磁盘数据库读写速度慢,T秒的交易所价格,可能T+3秒才落库金融机构的持久性数据库,这种以价格来判断是否达成交易的,由于报价生成延迟较严重,哪怕仅是3秒的延时也会失去商机。
第二个弊端,行情展示按统一标准点差展示价格,对于存在优惠的客户无法从行情展示看到针对个人的定制化交易价格。与国内金融机构实际做市的业务模式,报价策略支持分层带量模型(分层带量:不同交易份额按不同的标准点差模式计算交易价格),针对不同的客户有个性化的点差报价系统,交易价格可以享受七档八优的优惠点差,但基于现有技术方案报价体系,客户看到的行情价都是按统一标准点差计算出来的交易价,未考虑客户的个性化点差的。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于内存数据库的价格合成方法及其装置、电子设备,以至少解决相关技术中磁盘数据库占用资源多,数据存取速度慢,导致报价生成结果延迟较严重的技术问题。
根据本发明实施例的一个方面,提供了一种基于内存数据库的价格合成方法,包括:响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,所述行情询问请求为所述客户端发起的询问目标金融产品的即时交易价格的请求,所述行情交易价格是基于内部基准价格以及交易点差计算得到,所述交易点差为所述内存数据库中预先存储的交易点差表中关联所述目标金融产品的交易点差;基于所述内存数据库反馈的所述目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表;将所述行情交易价格表推送至所述客户端。
可选地,在计算所述行情交易价格时,还包括:读取所述内存数据库中记录的客户等级以及客户交易优惠信息;在所述客户等级指示客户属于金融拓展客户的情况下,基于所述客户交易优惠信息计算所述客户的优惠点差值;基于所述内部基准价格、所述交易点差以及所述优惠点差值,计算所述客户的所述行情交易价格。
可选地,在读取内存数据库中的行情交易价格之前,包括:控制内部报价系统拦截外汇报价系统的基准价格数据,得到当前即期基准价格表;读取所述内部报价系统的内存中预先存储的掉期点差表,其中,所述掉期点差表中记录有预估的不同指定期限内的点差值;对所述当前即期基准价格表以及所述掉期点差表进行筛选,得到关联各金融产品的即期基准价格以及掉期点差;基于所述即期基准价格以及掉期点差,计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格。
可选地,在计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格之后,还包括:将每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格写入所述内存数据库;将所述每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格以及更新后的行情交易价格同步至磁盘数据库。
可选地,在读取内存数据库中的行情交易价格之前,包括:为所述内存数据库构建N个数据队列,其中,每个所述数据队列中包含至少两个数据块,相同所述数据队列中对应的各数据块优先级相同,不同所述数据队列中各数据块的优先级不一致,每个所述数据队列中数据块按照链表结构记录,N为正整数;按照每个数据队列中各数据块的优先级对所有所述数据队列进行排序;对于排序完毕的所有所述数据队列,设置每个所述数据队列对应有一个访问频率;在有新数据块插入时,基于所述新数据块的访问频率查询对应的目标数据队列,并将该新数据块插入至所述目标数据队列的队尾。
可选地,在将该新数据块插入至所述目标数据队列的队尾之后,还包括:计算每种金融产品在预设时间段内的行情交易价格的查询次数;在所述金融产品的查询次数指示该金融产品对应的数据块的访问频率升高时,计算所述金融产品的优先级;在所述金融产品的优先级提升一级时,将该金融产品由当前数据队列插入至高一级的数据队列的队尾。
可选地,还包括:在所述内存数据库中构建历史回存队列,其中,所述历史回存队列中数据块按照链表结构记录;在确认所述数据队列的数据块的数量达到第一预设队列数量阈值的情况下,采用队首淘汰机制将队首数据块剪切至历史回存队列中的队尾;在确认所述历史回存队列的数据块的数量达到第二预设队列数量阈值的情况下,按照队首淘汰机制将队首数据块删除。
可选地,还包括:统计在第一历史指定时间段内每种金融产品的行情交易价格的查询次数;在确认所述金融产品的行情交易价格的查询次数低于预设查询次数阈值的情况下,将该金融产品对应的数据块从所属数据队列中剪切至历史回存队列中的队尾。
可选地,在将该新数据块插入至所述目标数据队列的队尾之后,还包括:读取在第二历史指定时间段内的客户交易明细,其中,所述客户交易明细中至少包括:客户基础信息、各金融产品的交易笔数以及交易时间信息;分析所述客户交易明细,统计各金融产品在当前金融市场的活跃度;统计各金融产品在历史指定时间段内的行情交易价格的查询次数;综合各金融产品在当前金融市场的活跃度以及关联行情交易价格的查询次数,确定当前时间段内每位客户感兴趣的金融产品;根据每位客户感兴趣的金融产品,调整客户交易优惠信息,并向客户持有的客户端推送关联该金融产品的优惠信息。
根据本发明实施例的另一方面,还提供了一种基于内存数据库的价格合成装置,包括:请求响应单元,用于响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,所述行情询问请求为所述客户端发起的询问目标金融产品的即时交易价格的请求,所述行情交易价格是基于内部基准价格以及交易点差计算得到,所述交易点差为所述内存数据库中预先存储的交易点差表中关联所述目标金融产品的交易点差;确定单元,用于基于所述内存数据库反馈的所述目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表;价格推送单元,用于将所述行情交易价格表推送至所述客户端。
可选地,基于内存数据库的价格合成装置在计算所述行情交易价格时,还包括:信息读取单元,用于读取所述内存数据库中记录的客户等级以及客户交易优惠信息;第一计算单元,用于在所述客户等级指示客户属于金融拓展客户的情况下,基于所述客户交易优惠信息计算所述客户的优惠点差值;第二计算单元,用于基于所述内部基准价格、所述交易点差以及所述优惠点差值,计算所述客户的所述行情交易价格。
可选地,基于内存数据库的价格合成装置包括:数据控制单元,用于在读取内存数据库中的行情交易价格之前,控制内部报价系统拦截外汇报价系统的基准价格数据,得到当前即期基准价格表;点差读取单元,用于读取所述内部报价系统的内存中预先存储的掉期点差表,其中,所述掉期点差表中记录有预估的不同指定期限内的点差值;筛选单元,用于对所述当前即期基准价格表以及所述掉期点差表进行筛选,得到关联各金融产品的即期基准价格以及掉期点差;第三计算单元,用于基于所述即期基准价格以及掉期点差,计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格。
可选地,基于内存数据库的价格合成装置还包括:数据价格单元,用于在计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格之后,将每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格写入所述内存数据库;价格同步单元,用于将所述每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格以及更新后的行情交易价格同步至磁盘数据库。
可选地,基于内存数据库的价格合成装置包括:第一队列构建单元,用于在读取内存数据库中的行情交易价格之前,为所述内存数据库构建N个数据队列,其中,每个所述数据队列中包含至少两个数据块,相同所述数据队列中对应的各数据块优先级相同,不同所述数据队列中各数据块的优先级不一致,每个所述数据队列中数据块按照链表结构记录,N为正整数;队列排序单元,用于按照每个数据队列中各数据块的优先级对所有所述数据队列进行排序;频率设置单元,用于对于排序完毕的所有所述数据队列,设置每个所述数据队列对应有一个访问频率;队列查询单元,用于在有新数据块插入时,基于所述新数据块的访问频率查询对应的目标数据队列,并将该新数据块插入至所述目标数据队列的队尾。
可选地,基于内存数据库的价格合成装置还包括:次数计算单元,用于在将该新数据块插入至所述目标数据队列的队尾之后,计算每种金融产品在预设时间段内的行情交易价格的查询次数;优先级计算单元,用于在所述金融产品的查询次数指示该金融产品对应的数据块的访问频率升高时,计算所述金融产品的优先级;队列插入单元,用于在所述金融产品的优先级提升一级时,将该金融产品由当前数据队列插入至高一级的数据队列的队尾。
可选地,基于内存数据库的价格合成装置还包括:第二队列构建单元,用于在所述内存数据库中构建历史回存队列,其中,所述历史回存队列中数据块按照链表结构记录;第一数据块剪切单元,用于在确认所述数据队列的数据块的数量达到第一预设队列数量阈值的情况下,采用队首淘汰机制将队首数据块剪切至历史回存队列中的队尾;数据块删除单元,用于在确认所述历史回存队列的数据块的数量达到第二预设队列数量阈值的情况下,按照队首淘汰机制将队首数据块删除。
可选地,基于内存数据库的价格合成装置还包括:次数统计单元,用于统计在第一历史指定时间段内每种金融产品的行情交易价格的查询次数;第二数据块剪切单元,用于在确认所述金融产品的行情交易价格的查询次数低于预设查询次数阈值的情况下,将该金融产品对应的数据块从所属数据队列中剪切至历史回存队列中的队尾。
可选地,基于内存数据库的价格合成装置还包括:交易读取单元,用于在将该新数据块插入至所述目标数据队列的队尾之后,读取在第二历史指定时间段内的客户交易明细,其中,所述客户交易明细中至少包括:客户基础信息、各金融产品的交易笔数以及交易时间信息;交易分析单元,用于分析所述客户交易明细,统计各金融产品在当前金融市场的活跃度;行情次数统计单元,用于统计各金融产品在历史指定时间段内的行情交易价格的查询次数;综合单元,用于综合各金融产品在当前金融市场的活跃度以及关联行情交易价格的查询次数,确定当前时间段内每位客户感兴趣的金融产品;优惠信息推送单元,用于根据每位客户感兴趣的金融产品,调整客户交易优惠信息,并向客户持有的客户端推送关联该金融产品的优惠信息。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项的基于内存数据库的价格合成方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项的基于内存数据库的价格合成方法。
根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任意一项所述的基于内存数据库的价格合成方法的步骤。
在本公开中,响应客户端的行情询问请求,读取内存数据库中的行情交易价格,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差,基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表,最后将行情交易价格表推送至客户端。
在本公开中,可基于内存数据库和磁盘数据库结合使用,使用内存数据库的快速数据访问速度,及时生成行情交易价格,提升外汇市场价格合成展示的效率,减少报价生成延迟,同时缓解磁盘数据库的访问压力,优化客户行情查询价格计算模式,从而解决相关技术中磁盘数据库占用资源多,数据存取速度慢,导致报价生成结果延迟较严重的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于内存数据库的价格合成方法的流程图;
图2是根据本发明实施例的一种可选的价格处理系统的示意图;
图3是根据本发明实施例的一种可选的当前掉期点表的表结构示意图;
图4是根据本发明实施例的一种可选的当前即期基准价表的表结构示意图;
图5是根据本发明实施例的一种可选的金融产品行情价格表的表结构示意图;
图6是根据本发明实施例的一种可选的内存数据库和磁盘数据库的系统结构图;
图7是根据本发明实施例的一种可选的各数据队列中的数据块索引以及淘汰的示意图;
图8是根据本发明实施例的一种可选的基于内存数据库的价格合成装置的示意图;
图9是根据本发明实施例的一种用于基于内存数据库的价格合成方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对本发明各实施例中涉及的部分术语或名词做出解释:
外汇报价系统:为全球外汇市场提供全面和准确的外汇报价。
路透价格:市场参与者包括银行、金融机构、经纪商和其他外汇交易者报告他们的外汇报价给路透社,路透社再将这些报价归纳整理后最终呈现给市场参与者。由于报价来源广泛,路透社的外汇报价具有广泛的代表性和可信度。
外汇市场的基准汇率:国际货币市场的汇率,也称为官方汇率或中间汇率。基准汇率通常根据供需关系和市场力量确定,根据市场情况调整基准汇率,以维护货币的稳定性和经济的平衡发展。基准汇率并不一定等于实际市场汇率,金融机构的买卖价格是在基准汇率基础上进行浮动。
行情价格:金融机构对客户报告的用于交易的价格,区分买卖价,是在基准汇率基础上进行浮动后,可以用于实际市场买卖的汇率。比如基准汇率是7.0000,金融机构对客买的买入价是基准汇率-浮动点差,卖出价是基准汇率+浮动点差;金融机构会赚取这个点差造成的差价,也就是跟基准汇率比,就是低买高卖,比基准汇率低的价格从客户买入,比基准汇率高的价格卖出给客户。
掉期点:不同期限有不同的点差值,这个点差值称为掉期点。期限代表这笔买卖预测的是未来多长时间(例如,几个月)的时间期限,不同期限代码代表不同时间期限,比如30代表距离当前日期3个月的时间期限,120代表距离当前时间1年的时间期限。未来远期价格就是当日的即期价格加掉期点差值成为未来远期价格。
需要说明的是,本公开中的基于内存数据库的价格合成方法及其装置可用于金融科技领域在提升外汇市场价格合成展示的效率,减少报价生成延迟的情况下,也可用于除金融科技领域之外的任意领域在提升外汇市场价格合成展示的效率,减少报价生成延迟的情况下,本公开中对基于内存数据库的价格合成方法及其装置的应用领域不做限定。
需要说明的是,本公开采集的信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),是经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均遵守相关地区的相关法律法规和标准,采取了必要保密措施,不违背公序良俗,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
需要说明的是,本公开中在采集客户信息,分析客户信息,为用户提供相应的操作入口,供用户选择同意或者拒绝自动化决策结果;若用户选择拒绝,则进入专家决策流程。
本发明下述各实施例可应用于各种基于内存数据库的价格合成的系统/应用/设备中。本发明基于内存数据库和磁盘数据库结合使用,基于内存数据库以及通过设置多个数据块队列且不同队列的数据块优先级不一样的内存管理方案,提升外汇市场价格合成展示的效率,快速合成产品价格,减少报价生成延迟,同时缓解磁盘数据库的访问压力,优化客户行情查询价格计算模式,同时及时获取金融产品的市场活跃度信息,能够主动出击,进行多样化、个性化的金融产品推广。
本发明中,利用内存数据库的优点弥补磁盘数据库存在的缺陷。相对于磁盘数据库存在的缺陷:占用、消耗的系统资源较多,数据存取速度慢,数据存取时间不一致且难以预测。本实施例利用内存数据的优点:数据存取速度快,与磁盘数据库相比,内存数据库的数据访问速度可以高出几个数量级,能大幅度提高运算性能,更节省CPU时间,通过磁盘数据库与内存数据库两者结合,利用彼此的优点,在高并发、低延迟的这种报价生成、行情价更新的业务场景中使用,能够满足客户需求。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种基于内存数据库的价格合成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的基于内存数据库的价格合成方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差。
需要说明的是,本实施例中需要高并发使用内存数据库,利用内存数据库的高速读写能力,提升报价生成以及算价推送。由于高并发多线程的报价生成、算价推送,需要频繁向操作系统申请、释放内存块,每次都向操作系统申请需要发出系统调用,可能引起线程切块,降低系统运行效率。因此,本实施例中,引入动态内存管理系统,以管理内存数据库对内存的申请、释放、使用大小管理,使得申请、释放内存效率更高,能有效了解内存使用情况。
可选地,在计算行情交易价格时,包括:读取内存数据库中记录的客户等级以及客户交易优惠信息;在客户等级指示客户属于金融拓展客户的情况下,基于客户交易优惠信息计算客户的优惠点差值;基于内部基准价格、交易点差以及优惠点差值,计算客户的行情交易价格。
本实施例中,在计算行情交易价格时,使用了内部基准价格、交易点差以及优惠点差值这三个因素参数,其中,内部基准价格保存在对应的基准价格表中,交易点差保存在对应的交易点差表中,优惠点差值关于客户的交易优惠信息是根据客户的交易倾向以及客户的等级确定的,这些客户交易优惠信息可以保存在客户优惠点差表/客户优惠信息表中。
需要说明的是,本实施例中内存数据库中的表设计模式可以按照关系型内存数据库模式建立,支持通过SQL语句方式实现对内存数据库的访问,在实现复杂分析功能的同时,提升数据访问速度。
利用内存数据库的快速存储能力,以及灵活定制数据存取方式,优化行情推送计算模式,对于设置了优惠点差的客户,若客户查询行情价,行情价计算模块同时按客户最优惠的价格计算最终交易价,让客户通过行情模块即时看到最优价格,与标准价格比较,更方便客户综合考虑交易可行性。
步骤S102,基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表。
步骤S103,将行情交易价格表推送至客户端。
通过上述步骤,可以响应客户端的行情询问请求,读取内存数据库中的行情交易价格,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差,基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表,最后将行情交易价格表推送至客户端。在该实施例中,可基于内存数据库和磁盘数据库结合使用,使用内存数据库的快速数据访问速度,及时生成行情交易价格,提升外汇市场价格合成展示的效率,减少报价生成延迟,同时缓解磁盘数据库的访问压力,优化客户行情查询价格计算模式,从而解决相关技术中磁盘数据库占用资源多,数据存取速度慢,导致报价生成结果延迟较严重的技术问题。
下面结合上述各步骤对本发明实施例进行详细说明。
需要说明的是,本实施例在内存数据库保存的内部基准价格是根据实时的外部报价以及掉期点计算得到的,可选地,在读取内存数据库中的行情交易价格之前,包括:控制内部报价系统拦截外汇报价系统的基准价格数据,得到当前即期基准价格表;读取内部报价系统的内存中预先存储的掉期点差表,其中,掉期点差表中记录有预估的不同指定期限内的点差值;对当前即期基准价格表以及掉期点差表进行筛选,得到关联各金融产品的即期基准价格以及掉期点差;基于即期基准价格以及掉期点差,计算每种金融产品对应于不同指定期限以及各类型币种的内部基准价格。
内存拦截到外部基准价格进来时,启动报价生成模块,读取内存中的点差表,生成各个币种对价格。
对于外汇报价系统提供的基准价格数据,可以是指由外汇报价系统提供的各种公开交易信息,包括路透价格。外汇报价系统通过收集全球各大交易所的交易数据,包括股票、债券、货币、商品等市场的数据,根据一定的算法计算出各种金融产品的路透价格,路透价格的计算方法保证了其准确性和实时性,路透价格通常被视为金融市场的基准价格之一,被广泛用于金融市场的分析和决策。金融机构(例如,银行、交易所、基金机构等)的报价系统从外汇报价系统接入路透价格(或者基准价格、即期基准价格)后,即期基准价格结合掉期点差,合成内部基准价格。
可选地,在计算每种金融产品对应于不同指定期限以及各类型币种的内部基准价格之后,还包括:将每种金融产品对应于不同指定期限以及各类型币种的内部基准价格写入内存数据库;将每种金融产品对应于不同指定期限以及各类型币种的内部基准价格以及更新后的行情交易价格同步至磁盘数据库。
内存数据库的数据存在易失性,数据还需要写到磁盘数据库进行数据持久化。价格写完内存数据库时,同时触发:数据变更日志写到磁盘数据库。
可选地,在读取内存数据库中的行情交易价格之前,包括:为内存数据库构建N个数据队列,其中,每个数据队列中包含至少两个数据块,相同数据队列中对应的各数据块优先级相同,不同数据队列中各数据块的优先级不一致,每个数据队列中数据块按照链表结构记录,N为正整数;按照每个数据队列中各数据块的优先级对所有数据队列进行排序;对于排序完毕的所有数据队列,设置每个数据队列对应有一个访问频率;在有新数据块插入时,基于新数据块的访问频率查询对应的目标数据队列,并将该新数据块插入至目标数据队列的队尾。
本实施例中,采用多队列算法,根据访问频率将数据块划分为多个数据队列,不同的队列具有不同的访问优先级,同个队列对应的数据块优先级相同。每次有新数据块插入都从对应访问平率频率的队列的队尾插入,如果队列满了就先从队首开始淘汰,被淘汰的数据块索引进入历史回存队列Q-history队列。每个数据队列算法按最近最少淘汰,最近最少被使用的,那么在未来被使用到的几率也小,如果数据在最近经常被访问,那么在下来也会经常被访问。
可选地,在将该新数据块插入至目标数据队列的队尾之后,还包括:计算每种金融产品在预设时间段内的行情交易价格的查询次数;在金融产品的查询次数指示该金融产品对应的数据块的访问频率升高时,计算金融产品的优先级;在金融产品的优先级提升一级时,将该金融产品由当前数据队列插入至高一级的数据队列的队尾。
按索引键key值对被访问到的价格进行计数,当该key值的价格被访问时频率f加1,把该key数据从当前数据队列插入高一级的队列里的队尾。其中,将该金融产品由当前数据队列插入至高一级的数据队列的队尾的步骤,是指将该金融产品对应的数据块(主要是key数据)由当前数据队列插入至高一级的数据队列的队尾。
同时,为防止高优先级队列的数据块永远不被淘汰,当数据在指定时间内没有被访问,降低该数据优先级,将该key值数据块移到历史回存队列Q-history队列,若Q-history中的数据重新被访问到时,按原先访问频率加1,重新计算优先级,进入对应队列队尾。
需要说明的是,本实施例还构建一个历史回存队列Q-history,是一个先进先出算法的队列,该队列用来记录从数据队列中被淘汰出来的数据块。可选地,还包括:在内存数据库中构建历史回存队列,其中,历史回存队列中数据块按照链表结构记录;在确认数据队列的数据块的数量达到第一预设队列数量阈值的情况下,采用队首淘汰机制将队首数据块剪切至历史回存队列中的队尾;在确认历史回存队列的数据块的数量达到第二预设队列数量阈值的情况下,按照队首淘汰机制将队首数据块删除。
淘汰数据时,从最低一级队列开始按照最近最少被使用应该被淘汰,每个队列淘汰数据时,将该队列的key值对应的数据块加入Q-history队列尾部。若Q-history满了,则删除Q-history队首数据块及对应内存数据库数据。
可选地,还包括:统计在第一历史指定时间段内每种金融产品的行情交易价格的查询次数;在确认金融产品的行情交易价格的查询次数低于预设查询次数阈值的情况下,将该金融产品对应的数据块从所属数据队列中剪切至历史回存队列中的队尾。
可选地,在将该新数据块插入至目标数据队列的队尾之后,还包括:读取在第二历史指定时间段内的客户交易明细,其中,客户交易明细中至少包括:客户基础信息、各金融产品的交易笔数以及交易时间信息;分析客户交易明细,统计各金融产品在当前金融市场的活跃度;统计各金融产品在历史指定时间段内的行情交易价格的查询次数;综合各金融产品在当前金融市场的活跃度以及关联行情交易价格的查询次数,确定当前时间段内每位客户感兴趣的金融产品;根据每位客户感兴趣的金融产品,调整客户交易优惠信息,并向客户持有的客户端推送关联该金融产品的优惠信息。
从最近的客户交易明细可以获取哪些金融产品的交易笔数,对比以往的同个金融产品的交易笔数,可以得出该金融产品在当下金融市场的活跃度提升还是下降,按照有交易倾向才会去查询对应金融产品的行情价格的操作习惯,内存数据库统计某金融产品行情查询次数,综合这两方面数据可以推论出当下客户感兴趣的金融产品。面对客户已经有交易倾向,此时针对该金融产品的交易价也适当推广优惠信息。
为了解决现有技术中对于存在优惠的客户无法从行情展示看到针对自己的交易价格客户看到的行情价都是按统一标准点差计算出来的交易价,未考虑客户的个性化点差信息。本实施例为此提供了个性化服务,支持个性化定制,对于优质客户,为客户设置优惠点差,如果是优质客户查询的行情价,行情价计算模块同时按客户最优惠的价格计算最终交易价,让客户通过行情模块即时看到最优价格,与标准价格比较,更方便客户综合考虑交易可行性。
另外,如果确认客户已经有交易倾向,此时针对该金融产品的交易价也适当推广优惠信息,比如对应客户的交易价设置优惠点差,从被动变主动的推送产品优惠信息,吸引客户达成交易,结合内存数据库数据访问频率捕捉金融市场商机。
下面结合另一种可选的具体实施方式进行详细说明。
本发明将内存数据库和磁盘数据库结合使用,基于内存数据库以及通过设置多个数据块队列且不同队列的数据块优先级不一样的内存管理技术,根据国际市场报价,结合金融机构提供的各类型金融产品,快速合成产品价格。
图2是根据本发明实施例的一种可选的价格处理系统的示意图,如图2所示,该价格处理系统主要分为:报价生成模块和行情价计算模块。
下面分别对两个模块的工作内容进行说明。
对于报价生成模块,其需要获取到有效的路透价格,然后结合内存中的掉期点差表中记录的掉期点差计算各金融产品的内部基准价格。
外汇报价系统通过收集全球各大交易所的交易数据,包括股票、债券、货币、商品等市场的数据,根据一定的算法计算出各种金融产品的路透价格,路透价格的计算方法保证了其准确性和实时性,路透价格通常被视为金融市场的基准价格之一,被广泛用于金融市场的分析和决策。金融机构的报价系统从路透系统或者直接从交易所接入即时基准价格后,合成行情价格。
本发明实施例中,行情价格区分客户买入价、客户卖出价,其中,行情价格之客户买入价=即期基准价+掉期点+交易点差-客户优惠点差,行情价格之客户卖出价=基准中间价+掉期点-交易点差+客户优惠点差。报价生成、行情价计算需使用这些点差数据,将价格生成、行情计算过程使用很频繁的点差表从磁盘数据库迁移到内存数据库中,利用访问内存数据库比访问磁盘数据库速度快的优点提升计算效率。在客户买入和客户卖出时,对各类点差的是加还是减,原理可见行情价格的属于定义举例。点差表诸如:交易点差表、客户优惠点差表。
在生成行情价格时,得到内部基准价格之后,需要将其及时存至内存数据库,如图2所示,内存数据库基于交易点差以及客户优惠点差,可以计算行情价格。
本实施例中,对报价系统内存数据库模式设计进行说明。
内存数据库中的表设计模式按照关系型内存数据库模式建立,支持通过SQL语句方式实现对内存数据库的访问,在实现复杂分析功能的同时,提升数据访问速度。需在内存数据库中建立的数据表有国际市场当前掉期点表(索引字段:基本币种+标价币种+期限代码)、国际市场当前即期基准价表(索引字段:基本币种+标价币种)、金融产品价格表(索引字段:基本币种+标价币种+期限代码),表的数据结构和表的索引字段都跟磁盘数据库保持一致,方便数据同步。
图3是根据本发明实施例的一种可选的当前掉期点表的表结构示意图,如图3所示,当前掉期点表中会包含由基本币种、标价币种、期限、买入掉期点、卖出掉期点、报价日期,报价时间以及报价来源。这样能够提供不同币种在不同期限的各种掉期点。
图4是根据本发明实施例的一种可选的当前即期基准价表的表结构示意图,如图4所示,当前即期基准价表中会包含由基本币种、标价币种、期限代码、即期基准价、报价日期,报价时间以及报价来源。这样能够提供不同币种在不同期限的各种即期基准价。
图5是根据本发明实施例的一种可选的金融产品行情价格表的表结构示意图,如图5所示,金融产品行情价格表中会包含由基本币种、标价币种、期限代码、价格精度、买入基准价、卖出基准价、中间价、买入掉期点和卖出掉期点。这样能够提供不同币种在不同期限的各种行情基准价以及中间价信息。
内存数据库数据存在易失性,数据还需要写到磁盘数据库进行数据持久化。在操作内存数据库时,把操作数据写数据库的redo log日志,也就是内存数据变更日志,再通过应用程序读取redo log,更新到磁盘数据库进行数据持久化。
图6是根据本发明实施例的一种可选的内存数据库和磁盘数据库的系统结构图,如图6所示,应用程序通过调用内存数据库访问API,对内存数据库进行读写操作,应用程序进程通过操作系统的内存映射,将共享内存映射到进程的内存空间中,之后访问内存数据库就像操作普通内存空间一样。如图6所示,对于内存数据库的变更日志信息,需要将数据变更日志及时同步或者写入至磁盘数据库,磁盘数据库中的点差数据会更新同步至内存数据库。
内存拦截到外部基准价格进来时,启动报价生成模块,读取内存中的点差表,生成各个币种对价格。
价格写完内存数据库时,同时触发:
①数据变更日志写到磁盘数据库。
②启动行情价计算模块,读取内存数据库中的交易点差,计算行情交易价,推送各个交易渠道。
③支持个性化定制,对于优质客户,为客户设置优惠点差,如果是优质客户查询的行情价,行情价计算模块同时按客户最优惠的价格计算最终交易价,让客户通过行情模块即时看到最优价格,与标准价格比较,更方便客户综合考虑交易可行性。
在内存中对于价格数据、点差数据的淘汰时,由于内存数据库中的价格,用于解决行情查询、交易算价的延迟问题,无需存储历史数据,只需要存储当前最新一笔报价。通过以往交易明细可以过滤出哪些客户有做交易倾向,还可以过滤出哪些金融产品在当下存在买卖需求,内存数据库中的优惠点差数据只保存这些有交易倾向的客户,内存中的产品当前价格表只保存有买卖需求的金融产品的价格,节省内存空间。对于不活跃的客户优惠点差信息、不活跃的产品价格在内存数据库中淘汰机制,按照数据块的优先级应该基于它们的访问频率,过去访问频繁但现在很少被访问的数据块应该被替换掉的原则。通过设置多个数据块队列,不同队列的数据块优先级不一样的思路,按外汇价格的报价币种对拼期限代码作为key,比如14/13的1个月价格的key值为:014013010,记录每个金融产品的价格被访问到的频率,从最近的客户交易明细可以获取哪些金融产品的交易笔数,对比以往的同个金融产品的交易笔数,可以得出该金融产品在当下金融市场的活跃度提升还是下降,按照有交易倾向才会去查询对应金融产品的行情价格的操作习惯,内存数据库统计某金融产品行情查询次数,综合这两方面数据可以推论出当下客户感兴趣的金融产品。面对客户已经有交易倾向,此时针对该金融产品的交易价也适当推广优惠信息,比如对应客户的交易价设置优惠点差,从被动变主动的推送产品优惠信息,吸引客户达成交易,结合内存数据库数据访问频率捕捉金融市场商机。
需要说明的是,本实施例中内存数据库中采用多队列算法,该算法根据访问频率将数据块划分为多个数据队列,不同的队列具有不同的访问优先级,同个队列对应的数据块优先级相同,设置数据队列分别为Q0,Q1……,Qn,Qn队列的数据块的访问频率高于Qn-1的,Qn-1队列的数据块的访问频率高于Qn-2的。还有一个历史队列Q-history,是一个先进先出算法的队列,该队列用来记录从Qn队列中被淘汰出来的数据块。每次有新数据块插入都从对应访问平率频率的队列的队尾插入,如果队列满了就先从队首开始淘汰,被淘汰的数据块索引进入Q-history队列。每个Qn队列算法按最近最少被使用的,那么在未来被使用到的几率也小;如果数据在最近经常被访问,那么在下来也会经常被访问。
图7是根据本发明实施例的一种可选的各数据队列中的数据块索引以及淘汰的示意图,如图7所示,数据块索引淘汰过程如下:
1)按key值对被访问到的价格进行计数,当该key值的价格被访问时频率f加1,按优先级计算公式log2(f)计算出优先级,把该key数据从当前队列插入高一级的队列里的队尾。
2)为防止高优先级队列的数据块永远不被淘汰,当数据在指定时间内没有被访问,降低该数据优先级,将该key值数据块移到Q-history队列,若Q-history中的数据重新被访问到时,按原先访问频率加1,重新计算优先级,进入对应队列队尾。
3)淘汰数据时,从最低一级队列开始按照最近最少被使用应该被淘汰,每个队列淘汰数据时,将该队列的key值对应的数据块加入Q-history队列尾部。若Q-history满了,则删除Q-history队首数据块及对应内存数据库数据。
6)交易价格查询模块或者行情推送模块,优先查询内存数据库中数据,如果没命中,再查询磁盘数据库,并同时触发磁盘数据库数据同步到内存数据库,该数据重新参与访问频率的计数。
7)报价新进来的数据,按价格主键查找对应的key值,如果在所有数据队列中找不到对应KEY值,数据加入Q0队列头部,参与访问频率计数。
需要说明的是,由于高并发多线程的报价生成、算价推送,需要频繁向操作系统申请、释放内存块,每次都向操作系统申请需要发出系统调用,可能引起线程切块,降低系统运行效率。因此,本实施方式中,引入动态内存管理系统管理内存数据库对内存的申请、释放、使用大小管理,使得申请、释放内存效率更高,能有效了解内存使用情况,易于发现内存泄露和内存写越界问题。数据库实例启动时从操作系统申请一大片内存,作为共享内存,交易终端发起的交易价计算、行情推送、报价生成都在这个共享内存中申请内存块,运算完,把内存块释放回共享内存。
下面说明采用哈希映射、链表结合的最近最少被使用应该被淘汰的机制:
对于链表结构的描述,链表中包含key value,以及prev pnext的前驱和后继域,hashmap用来作为一个检索表,检索get时间复杂度为O(1),双向链表进行set的过程时间复杂度也为O(1)。通过哈希映射快速检索到来的页面是否已经存在,若已存在,直接映射到链表中,将链表中该节点从当前位置移除直接插入到链表的头部,保证链表的尾部是最近最久未使用的页面,头部是最近刚使用过的页面。每次进行删除和插入操作时都需要对hashmap表中的key数据进行调整,而value值保持不变,才能映射正确。
Get:获取元素的操作,通过hashmap可以直接映射到链表中,查看是否有命中的元素,如果有,将元素从当前位置删除,并且将其插入到首位置,如果没有则返回NULL。
Set:插入元素的操作,插入前先通过hashmap查看该元素是否存在,如果存在先从该位置移除,再将其插入到链表首部;如果不存在则没有命中,将元素插入到链表的首部,同时判断容量是否达到最大,如果达到最大,将链表尾部元素进行删除,hashmap同样也要进行更新操作。
通过上述实施例,可以利用内存数据库的优点弥补磁盘数据库存在的缺陷,内存数据存取速度快,能大幅度提高运算性能,更节省CPU时间,通过两者结合,利用彼此的优点,在高并发、低延迟的这种报价生成、行情价更新的业务场景中使用,这样既可以做到数据可靠性,又满足业务需求。
同时,本实施例采用灵活定制数据存取方式,优化行情推送计算模式,对于设置了优惠点差的客户,若客户查询行情价,行情价计算模块同时按客户最优惠的价格计算最终交易价,让客户通过行情模块即时看到最优价格,与标准价格比较,更方便客户综合考虑交易可行性。
在本实施例中,内存数据库中数据淘汰通过设置多个数据块队列且不同队列的数据块优先级不一样的思路,可以有效获取金融产品的市场活跃度,结合行情查询请求,捕捉客户感兴趣的金融产品,据此给对应客户优惠的点差,主动推送产品优惠信息,吸引客户达成交易。
下面结合另一实施例进行详细说明。
实施例二
本实施例中提供的一种基于内存数据库的价格合成装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
图8是根据本发明实施例的一种可选的基于内存数据库的价格合成装置的示意图,如图8所示,该基于内存数据库的价格合成装置可以包括:请求响应单元81,确定单元82,价格推送单元83。
其中,请求响应单元81,用于响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差。
确定单元82,用于基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表。
价格推送单元83,用于将行情交易价格表推送至客户端。
上述基于内存数据库的价格合成装置,可以通过请求响应单元81响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,行情询问请求为客户端发起的询问目标金融产品的即时交易价格的请求,行情交易价格是基于内部基准价格以及交易点差计算得到,交易点差为内存数据库中预先存储的交易点差表中关联目标金融产品的交易点差,通过确定单元82,用于基于内存数据库反馈的目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表,通过价格推送单元82,用于将行情交易价格表推送至客户端。在该实施例中,可基于内存数据库和磁盘数据库结合使用,使用内存数据库的快速数据访问速度,及时生成行情交易价格,提升外汇市场价格合成展示的效率,减少报价生成延迟,同时缓解磁盘数据库的访问压力,优化客户行情查询价格计算模式,从而解决相关技术中磁盘数据库占用资源多,数据存取速度慢,导致报价生成结果延迟较严重的技术问题。
可选地,基于内存数据库的价格合成装置在计算行情交易价格时,还包括:信息读取单元,用于读取内存数据库中记录的客户等级以及客户交易优惠信息;第一计算单元,用于在客户等级指示客户属于金融拓展客户的情况下,基于客户交易优惠信息计算客户的优惠点差值;第二计算单元,用于基于内部基准价格、交易点差以及优惠点差值,计算客户的行情交易价格。
可选地,基于内存数据库的价格合成装置包括:数据控制单元,用于在读取内存数据库中的行情交易价格之前,控制内部报价系统拦截外汇报价系统的基准价格数据,得到当前即期基准价格表;点差读取单元,用于读取内部报价系统的内存中预先存储的掉期点差表,其中,掉期点差表中记录有预估的不同指定期限内的点差值;筛选单元,用于对当前即期基准价格表以及掉期点差表进行筛选,得到关联各金融产品的即期基准价格以及掉期点差;第三计算单元,用于基于即期基准价格以及掉期点差,计算每种金融产品对应于不同指定期限以及各类型币种的内部基准价格。
可选地,基于内存数据库的价格合成装置还包括:数据价格单元,用于在计算每种金融产品对应于不同指定期限以及各类型币种的内部基准价格之后,将每种金融产品对应于不同指定期限以及各类型币种的内部基准价格写入内存数据库;价格同步单元,用于将每种金融产品对应于不同指定期限以及各类型币种的内部基准价格以及更新后的行情交易价格同步至磁盘数据库。
可选地,基于内存数据库的价格合成装置包括:第一队列构建单元,用于在读取内存数据库中的行情交易价格之前,为内存数据库构建N个数据队列,其中,每个数据队列中包含至少两个数据块,相同数据队列中对应的各数据块优先级相同,不同数据队列中各数据块的优先级不一致,每个数据队列中数据块按照链表结构记录,N为正整数;队列排序单元,用于按照每个数据队列中各数据块的优先级对所有数据队列进行排序;频率设置单元,用于对于排序完毕的所有数据队列,设置每个数据队列对应有一个访问频率;队列查询单元,用于在有新数据块插入时,基于新数据块的访问频率查询对应的目标数据队列,并将该新数据块插入至目标数据队列的队尾。
可选地,基于内存数据库的价格合成装置还包括:次数计算单元,用于在将该新数据块插入至目标数据队列的队尾之后,计算每种金融产品在预设时间段内的行情交易价格的查询次数;优先级计算单元,用于在金融产品的查询次数指示该金融产品对应的数据块的访问频率升高时,计算金融产品的优先级;队列插入单元,用于在金融产品的优先级提升一级时,将该金融产品由当前数据队列插入至高一级的数据队列的队尾。
可选地,基于内存数据库的价格合成装置还包括:第二队列构建单元,用于在内存数据库中构建历史回存队列,其中,历史回存队列中数据块按照链表结构记录;第一数据块剪切单元,用于在确认数据队列的数据块的数量达到第一预设队列数量阈值的情况下,采用队首淘汰机制将队首数据块剪切至历史回存队列中的队尾;数据块删除单元,用于在确认历史回存队列的数据块的数量达到第二预设队列数量阈值的情况下,按照队首淘汰机制将队首数据块删除。
可选地,基于内存数据库的价格合成装置还包括:次数统计单元,用于统计在第一历史指定时间段内每种金融产品的行情交易价格的查询次数;第二数据块剪切单元,用于在确认金融产品的行情交易价格的查询次数低于预设查询次数阈值的情况下,将该金融产品对应的数据块从所属数据队列中剪切至历史回存队列中的队尾。
可选地,基于内存数据库的价格合成装置还包括:交易读取单元,用于在将该新数据块插入至目标数据队列的队尾之后,读取在第二历史指定时间段内的客户交易明细,其中,客户交易明细中至少包括:客户基础信息、各金融产品的交易笔数以及交易时间信息;交易分析单元,用于分析客户交易明细,统计各金融产品在当前金融市场的活跃度;行情次数统计单元,用于统计各金融产品在历史指定时间段内的行情交易价格的查询次数;综合单元,用于综合各金融产品在当前金融市场的活跃度以及关联行情交易价格的查询次数,确定当前时间段内每位客户感兴趣的金融产品;优惠信息推送单元,用于根据每位客户感兴趣的金融产品,调整客户交易优惠信息,并向客户持有的客户端推送关联该金融产品的优惠信息。
上述的基于内存数据库的价格合成装置还可以包括处理器和存储器,上述请求响应单元81,确定单元82,价格推送单元83等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来将行情交易价格表推送至客户端。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述实施例一中任意一项的基于内存数据库的价格合成方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述实施例一中任意一项的基于内存数据库的价格合成方法。
本申请还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请各个实施例中所述基于内存数据库的价格合成方法的步骤。
本申请还提供了一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现本申请各个实施例中所述基于内存数据库的价格合成方法的步骤。
图9是根据本发明实施例的一种用于基于内存数据库的价格合成方法的电子设备(或移动设备)的硬件结构框图。如图9所示,电子设备可以包括一个或多个(图9中采用902a、902b,……,902n来示出)处理器902(处理器902可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器904。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种基于内存数据库的价格合成方法,其特征在于,包括:
响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,所述行情询问请求为所述客户端发起的询问目标金融产品的即时交易价格的请求,所述行情交易价格是基于内部基准价格以及交易点差计算得到,所述交易点差为所述内存数据库中预先存储的交易点差表中关联所述目标金融产品的交易点差;
基于所述内存数据库反馈的所述目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表;
将所述行情交易价格表推送至所述客户端。
2.根据权利要求1所述的价格合成方法,其特征在于,在计算所述行情交易价格时,还包括:
读取所述内存数据库中记录的客户等级以及客户交易优惠信息;
在所述客户等级指示客户属于金融拓展客户的情况下,基于所述客户交易优惠信息计算所述客户的优惠点差值;
基于所述内部基准价格、所述交易点差以及所述优惠点差值,计算所述客户的所述行情交易价格。
3.根据权利要求1所述的价格合成方法,其特征在于,在读取内存数据库中的行情交易价格之前,包括:
控制内部报价系统拦截外汇报价系统的基准价格数据,得到当前即期基准价格表;
读取所述内部报价系统的内存中预先存储的掉期点差表,其中,所述掉期点差表中记录有预估的不同指定期限内的点差值;
对所述当前即期基准价格表以及所述掉期点差表进行筛选,得到关联各金融产品的即期基准价格以及掉期点差;
基于所述即期基准价格以及掉期点差,计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格。
4.根据权利要求3所述的价格合成方法,其特征在于,在计算每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格之后,还包括:
将每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格写入所述内存数据库;
将每种所述金融产品对应于不同指定期限以及各类型币种的内部基准价格,以及更新后的行情交易价格同步至磁盘数据库。
5.根据权利要求1所述的价格合成方法,其特征在于,在读取内存数据库中的行情交易价格之前,包括:
为所述内存数据库构建N个数据队列,其中,每个所述数据队列中包含至少两个数据块,相同所述数据队列中对应的各数据块优先级相同,不同所述数据队列中各数据块的优先级不一致,每个所述数据队列中数据块按照链表结构记录,N为正整数;
按照每个数据队列中各数据块的优先级对所有所述数据队列进行排序;
对于排序完毕的所有所述数据队列,设置每个所述数据队列对应有一个访问频率;
在有新数据块插入时,基于所述新数据块的访问频率查询对应的目标数据队列,并将该新数据块插入至所述目标数据队列的队尾。
6.根据权利要求5所述的价格合成方法,其特征在于,在将该新数据块插入至所述目标数据队列的队尾之后,还包括:
计算每种金融产品在预设时间段内的行情交易价格的查询次数;
在所述金融产品的查询次数指示该金融产品对应的数据块的访问频率升高时,计算所述金融产品的优先级;
在所述金融产品的优先级提升一级时,将该金融产品由当前数据队列插入至高一级的数据队列的队尾。
7.根据权利要求5所述的价格合成方法,其特征在于,还包括:
在所述内存数据库中构建历史回存队列,其中,所述历史回存队列中数据块按照链表结构记录;
在确认所述数据队列的数据块的数量达到第一预设队列数量阈值的情况下,采用队首淘汰机制将队首数据块剪切至历史回存队列中的队尾;
在确认所述历史回存队列的数据块的数量达到第二预设队列数量阈值的情况下,按照队首淘汰机制将队首数据块删除。
8.根据权利要求7所述的价格合成方法,其特征在于,还包括:
统计在第一历史指定时间段内每种金融产品的行情交易价格的查询次数;
在确认所述金融产品的行情交易价格的查询次数低于预设查询次数阈值的情况下,将该金融产品对应的数据块从所属数据队列中剪切至历史回存队列中的队尾。
9.根据权利要求5所述的价格合成方法,其特征在于,在将该新数据块插入至所述目标数据队列的队尾之后,还包括:
读取在第二历史指定时间段内的客户交易明细,其中,所述客户交易明细中至少包括:客户基础信息、各金融产品的交易笔数以及交易时间信息;
分析所述客户交易明细,统计各金融产品在当前金融市场的活跃度;
统计各金融产品在历史指定时间段内的行情交易价格的查询次数;
综合各金融产品在当前金融市场的活跃度以及关联行情交易价格的查询次数,确定当前时间段内每位客户感兴趣的金融产品;
根据每位客户感兴趣的金融产品,调整客户交易优惠信息,并向客户持有的客户端推送关联该金融产品的优惠信息。
10.一种基于内存数据库的价格合成装置,其特征在于,包括:
请求响应单元,用于响应客户端的行情询问请求,读取内存数据库中的行情交易价格,其中,所述行情询问请求为所述客户端发起的询问目标金融产品的即时交易价格的请求,所述行情交易价格是基于内部基准价格以及交易点差计算得到,所述交易点差为所述内存数据库中预先存储的交易点差表中关联所述目标金融产品的交易点差;
确定单元,用于基于所述内存数据库反馈的所述目标金融产品对应于不同指定期限以及各类型币种的交易价格,得到行情交易价格表;
价格推送单元,用于将所述行情交易价格表推送至所述客户端。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至9中任意一项所述的基于内存数据库的价格合成方法。
12.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9中任意一项所述的基于内存数据库的价格合成方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任意一项所述的基于内存数据库的价格合成方法的步骤。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118154215A true CN118154215A (zh) | 2024-06-07 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6181727B2 (ja) | トーナメント・スタイルのイベントに基づいたトレーディング・システム | |
US10019675B2 (en) | Actuals cache for revenue management system analytics engine | |
US11941062B2 (en) | Systems and methods of retrospectively determining how submitted data transaction requests operate against a dynamic data structure | |
CN111858742A (zh) | 一种数据可视化方法、装置、存储介质及设备 | |
JP7091500B2 (ja) | 世界的に取得したデータに基づいて、世界企業ランキングをリアルタイムに作成するため方法、及び世界的ネットワークシステム | |
US20230359994A1 (en) | Systems and methods for correlating large datasets of electronic data records | |
US20240161198A1 (en) | Custom data | |
WO2013086409A1 (en) | Portfolio risk manager | |
CN118154215A (zh) | 基于内存数据库的价格合成方法及其装置、电子设备 | |
CN116842106A (zh) | 资源线索的生成方法和装置 | |
US10956369B1 (en) | Data aggregations in a distributed environment | |
CN113822657B (zh) | 业务监督方法、装置、计算机设备以及存储介质 | |
CN111708808A (zh) | 分布式业务系统及其业务汇总查询方法、装置和设备 | |
CN113971007B (zh) | 信息处理方法、装置、电子设备及介质 | |
CN113515374B (zh) | 数据处理方法及装置、电子设备和计算机可读存储介质 | |
CN118153770A (zh) | 虚拟资源的资源量预测方法、装置、设备及存储介质 | |
CN117372152A (zh) | 资源归还计划信息生成方法、装置和计算机设备 | |
CN117149827A (zh) | 一种差旅规则的配置方法及装置 | |
Söylemez | How Do Volatility and Return Series Interact? | |
CN118096362A (zh) | 交易业务处理方法和装置 | |
CN116089682A (zh) | 数据统计挖掘及融合展现方法、系统、设备及存储介质 | |
CN116541396A (zh) | 票据数据处理方法、装置及系统 | |
CN113609192A (zh) | 业务数据的处理方法、装置和服务器 | |
CN112967129A (zh) | 一种金融数据的测算方法、装置、计算机设备及存储介质 | |
CN116385170A (zh) | 业务监控方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |