做市商成交模式的交易系统及方法技术方案

技术编号:24940580 阅读:16 留言:0更新日期:2020-07-17 21:30
本发明专利技术提供一种做市商成交模式的交易系统及方法。其中的交易过程包含获取银行发布的报价消息,将其存入数据库的表中;从数据库捞取最新的报价消息,将其添加至价格队列;循环捞取数据库中记录的有效委托记录,寻找价格队列中是否存在符合条件的价格;将有效委托记录与符合条件的价格进行匹配成交操作。本发明专利技术使用数据流的方式进行匹配成交,可以减小对数据库的依赖,实现针对做市商成交模式的成交引擎。

【技术实现步骤摘要】
做市商成交模式的交易系统及方法
本专利技术涉及交易过程中的信息处理技术,特别涉及一种做市商成交模式的交易系统及方法。
技术介绍
对私账户类投资交易系统,是银行作为做市商,发布对应交易合约的价格;客户根据银行发布的价格,进行对应交易合约的投资操作。交易过程中,有一种交易模式是客户指定成交价格,银行根据客户的交易指令进行对应的成交处理。银行判断客户是否能够成交的依据,是客户指定的价格是否在银行当前报价与上一报价组成的前开后闭的价格区间内,即:当上一报价<当前报价时,客户委托价格大于上一报价,小于等于当前报价的委托可以成交;当上一报价>当前报价时,客户委托价格小于上一报价,大于等于当前报价的委托可以成交。目前实现的技术方案,包括报价任务准备、报价与委托匹配、委托成交处理三部分。一)报价任务准备银行的每笔报价都会包含银行买入价和银行卖出价两个价格,分别对应客户卖出合约和客户买入合约两种操作时的价格。为了将价格与客户委托挂单进行匹配,需要在报价任务准备流程中将银行推送的报价信息进行一定的加工,以方便匹配对应的委托信息。如图1所示,报价任务准备流程,包含:A1.接收银行推送的行情报价信息;A2.将一条报价信息拆分成银行买入和银行卖出两部分;A3.获取对应合约的上一报价信息;A4.将生成的行情任务和上一行情报价信息组合到一起,生成行情成交任务,存入数据库表中,等待下一批推送的报价。生成的行情成交任务由预成交流程使用。二)报价与委托匹配(预成交)预成交流程负责根据报价加工生成的行情成交任务,找到对应的客户委托挂单信息,标记为待成交处理状态,由委托成交处理流程进行最后的加工。如图2所示,预成交流程,包含:B1.循环从数据库行情成交任务表中,获取待处理的行情成交任务;B2.根据获取到的行情成交任务,找到客户委托信息表中委托价格在当前行情成交任务价格区间内的记录;B3.将满足条件的记录状态更新为成交处理中;B4.为提高委托预成交效率,减轻成交处理压力,当捞取到的委托记录很多时,会根据设定的记录数参数,每满指定记录数后就组成一条消息发送给成交处理流程。B5.当前行情任务处理完成后,继续循环获取下一条行情任务。三)委托成交处理通过委托成交处理流程,解析预成交流程传输的委托成交消息,对其中包含的委托挂单按照业务规则进行成交处理,包括合约记账,资金划转等。系统处理客户委托时,需要遵循到价及时成交不漏价,委托先挂先成交的规则。为解决同一时刻大量委托成交的情形,系统实现时引入了多线程并发处理机制。然而,多线程并发执行时,受每笔行情任务成交数据量和数据库IO处理时间的影响,可能会出现后收到的报价比先收到的报价提前处理的情形,与需要遵守的规则相违背。因此,目前预成交流程获取行情成交任务时,人为按交易合约和买卖方向对线程任务进行了分配,保证了每个交易产品对应方向报价的处理顺序性。但与此同时,由于任务是人为分配的,造成系统实现时无法通过增加线程数的方式提高并发处理效率,动态扩展性不足;且由于每个交易合约的客户活跃度不同,人为分配的任务无法平均分配任务执行,造成了一定的资源浪费的现象。为最大限度地利用多线程并发处理的优势,分配线程任务时,会按报价方向拆分为买入价和卖出价两个任务。对应地,系统收到报价消息时,会将收到的一笔报价拆分为买入成交任务和卖出成交任务两条,因而增加数据库数据存储的压力。
技术实现思路
本专利技术提供一种做市商成交模式的交易系统及方法,使用数据流的方式进行匹配成交,减小对数据库的依赖,实现针对做市商成交模式的成交引擎。为了达到上述目的,本专利技术的一个技术方案是提供一种做市商成交模式的交易方法,包含以下过程:S1、获取银行发布的报价消息,将其存入数据库的表中;S2、从数据库捞取最新的报价消息,将其添加至价格队列;S3、循环捞取数据库中记录的有效委托记录,寻找价格队列中是否存在符合条件的价格;将有效委托记录与符合条件的价格进行匹配成交操作。可选地,在步骤S1中,获取到银行最新发布的报价消息后,根据银行报价消息中的报价合约,找到交易系统所记录的对应交易合约的上一报价消息;形成包含上一报价消息与当前报价消息的行情成交任务,并将行情成交任务存入数据库的对应表中。可选地,在步骤S1中,获取到的报价消息,包括报价合约、银行买入价、银行卖出价及报价时间;获取到报价消息后,根据数据压力情况,判断是否需要将报价消息按买入卖出两个方向进行拆分;数据压力情况,对应于银行交易合约的报价频率及报价数据量;若需要拆分的,则对应当前收到的一条报价消息,形成有一条行情成交任务包含上一报价消息中的银行买入价与当前报价信息中的银行买入价,还形成有另一条行情成交任务包含上一报价消息中的银行卖出价与当前报价信息中的银行卖出价;所形成的这两条行情成交任务被存入数据库的对应表中;若不需要拆分的,则对应当前收到的一条报价消息,形成有一条行情成交任务包含上一报价消息和当前的报价消息,且上一报价消息和当前的报价消息均包含银行买入价和银行卖出价;所形成的这一条行情成交任务被存入数据库的对应表中。可选地,每个交易合约有对应的一个价格队列;或者,多个交易合约共用一个价格队列。可选地,在步骤S2中进一步包含以下步骤:C1、从数据库获取一条行情成交任务,所述行情成交任务包含最新的报价消息及上一报价消息;C2、判断获取到的行情成交任务是否满足设定的加载条件:若满足加载条件,则将行情成交任务存入价格队列中;将超过有效期的行情成交任务从价格队列中移除;若不满足加载条件,则不对当前获取到的行情成交任务进行加载,该行情成交任务被留存原地等待下一次循环;继续获取下一条行情成交任务,对其进行步骤C2的处理。可选地,在步骤S2中,价格队列使用对Java的LinkedList封装后的写安全链表,作为报价缓存;行情成交任务是循环从数据库或Java内存队列获取的。可选地,用于判断是否可存入队列的加载条件,包含:报价时间是否在设定的报价时限范围内,和/或当前的价格队列是否已满。可选地,超过有效期的行情成交任务,是指报价时间已经超过设定的报价处理时间的行情成交任务。可选地,步骤S2中,将所述价格队列加载在交易系统的服务器的内存中;步骤S3中,将捞取到的有效委托记录也加载在交易系统的服务器的内存中,在所述内存中进行有效委托记录与价格队列中报价的比较,以及在有符合条件的价格时将有效委托记录与之匹配成交。可选地,在步骤S3中,通过多线程并发方式进行委托挂单与价格的匹配成交处理;其中,单个线程的处理,进一步包含以下步骤:D1.本线程从数据库内获取到指定数量的有效委托记录;D2.对获取到的有效委托记录进行锁定;D3.对获取到的有效委托记录进行循环处理;D4.根据当前一条本文档来自技高网
...

【技术保护点】
1.一种做市商成交模式的交易方法,其特征在于,包含以下过程:/nS1、获取银行发布的报价消息,将其存入数据库的表中;/nS2、从数据库捞取最新的报价消息,将其添加至价格队列;/nS3、循环捞取数据库中记录的有效委托记录,寻找价格队列中是否存在符合条件的价格;将有效委托记录与符合条件的价格进行匹配成交操作。/n

【技术特征摘要】
1.一种做市商成交模式的交易方法,其特征在于,包含以下过程:
S1、获取银行发布的报价消息,将其存入数据库的表中;
S2、从数据库捞取最新的报价消息,将其添加至价格队列;
S3、循环捞取数据库中记录的有效委托记录,寻找价格队列中是否存在符合条件的价格;将有效委托记录与符合条件的价格进行匹配成交操作。


2.如权利要求1所述做市商成交模式的交易方法,其特征在于,
步骤S1中,获取到银行最新发布的报价消息后,根据银行报价消息中的报价合约,找到交易系统所记录的对应交易合约的上一报价消息;形成包含上一报价消息与当前报价消息的行情成交任务,并将行情成交任务存入数据库的对应表中。


3.如权利要求2所述做市商成交模式的交易方法,其特征在于,
步骤S1中,获取到的报价消息,包括报价合约、银行买入价、银行卖出价及报价时间;
获取到报价消息后,根据数据压力情况,判断是否需要将报价消息按买入卖出两个方向进行拆分;数据压力情况,对应于银行交易合约的报价频率及报价数据量;
若需要拆分的,则对应当前收到的一条报价消息,形成有一条行情成交任务包含上一报价消息中的银行买入价与当前报价信息中的银行买入价,还形成有另一条行情成交任务包含上一报价消息中的银行卖出价与当前报价信息中的银行卖出价;所形成的这两条行情成交任务被存入数据库的对应表中;
若不需要拆分的,则对应当前收到的一条报价消息,形成有一条行情成交任务包含上一报价消息和当前的报价消息,且上一报价消息和当前的报价消息均包含银行买入价和银行卖出价;所形成的这一条行情成交任务被存入数据库的对应表中。


4.如权利要求2所述做市商成交模式的交易方法,其特征在于,
每个交易合约有对应的一个价格队列;或者,多个交易合约共用一个价格队列。


5.如权利要求1~4中任意一项所述做市商成交模式的交易方法,其特征在于,步骤S2中进一步包含以下步骤:
C1、从数据库获取一条行情成交任务,所述行情成交任务包含最新的报价消息及上一报价消息;
C2、判断获取到的行情成交任务是否满足设定的加载条件:
若满足加载条件,则将行情成交任务存入价格队列中;将超过有效期的行情成交任务从价格队列中移除;
若不满足加载条件,则不对当前获取到的行情成交任务进行加载,该行情成交任务被留存原地等待下一次循环;继续获取下一条行情成交任务,对其进行步骤C2的处理。


6.如权利要求5所述做市商成交模式的交易方法,其特征在于,
步骤S2中,价格队列使用对Java的LinkedList封装后的写安全链表,作为报价缓存;行情成交任务是循环从数据库或Java内存队列获取的;
用于判断是否可存入队列的加载条件,包含:报价时间是否在设定的报价时限范围内...

【专利技术属性】
技术研发人员:施俊彪裘志强黄予欣朱逸鸣
申请(专利权)人:重庆新致金服信息技术有限公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1