一种金融产品柜台交易方法及系统与流程

文档序号:12366733
一种金融产品柜台交易方法及系统与流程

本发明涉及一种金融领域的柜台交易方法及系统。



背景技术:

随着证券交易的程序化日益普及,越来越多的证券交易通过计算机程序自动完成,这极大的提高了交易速度,更快地提高了单子的成功概率,但通过计算机程序完成的证券交易的系统时延都在几百微秒以上,无法在交易市场抢占先机,同时现有的柜台交易方法及系统为了提高交易速度,基本采用事后风险控制管理,等到柜台交易系统反应过来,出问题的用户订单已经发往市场,因而柜台交易系统只能拦截后续的用户订单,因而存在极大的交易风险。市场迫切地需要一个既能保障交易安全又能保障交易速度的柜台交易方法及系统。



技术实现要素:

为了解决以上问题,本发明提供一种柜台交易方法包括订单接收与判断步骤、风控管理步骤以及订单执行步骤,其中:所述风控管理步骤采用多条独立式风控规则并行计算。

优选地,当所述订单接收与判断步骤判断接收到的订单为用户订单时:所述订单接收与判断步骤包括对订单进行以下处理,解析用户订单,建立并维护用户订单的会话数据传输,查询用户订单所关联的用户属性,对用户订单进行合法性检查,对检查通过的用户订单建立订单号和生命簿,维护所述用户订单的生命周期,对检查不通过的用户订单反馈拒绝处理的消息到用户端并停止后续步骤;所述风控管理步骤还包括根据计算结果预测到订单无风险时进入订单执行步骤,预测到订单有风险时停止后续步骤,并将用户订单拦截消息反馈至用户端;所述订单执行步骤包括将用户订单进行格式转换并投放至交易市场。

优选地,所述订单接收与判断步骤,通过利用FPGA实现的全卸载式TCP协议栈,独立完成TCP/IP协议数据的处理和传输,并行维护多路用户订单的会话数据传输。

优选地,所述用户订单接收与判断步骤、风控管理步骤和订单执行步骤中至少其中之一通过内置逻辑电路的FPGA装置进行处理。

优选地,所述解析用户订单包括:解包步骤,将接收到的包含用户订单的网络数据包解包为包头数据和除包头外的包含用户订单的传输数据;TCP维护管理步骤,对所述包头数据进行TCP维护和管理;组包步骤,将所述包头数据与所述除包头外的包含用户订单的传输数据进行组包。

优选地,所述查询用户订单所关联的用户属性包括:查询用户订单所对应的用户资金账户、用户登录账号、和TCP session号三者之间的关系。

优选地,当订单接收与判断步骤判断接收到的订单为市场回单时:所述订单接收与判断步骤包括对订单进行以下处理,将市场回单转换为柜台交易系统能够识别和处理的消息格式,对市场回单进行合法性检查并进行处理;所述风控管理步骤还包括根据计算结果修改用户的风控属性;所述订单执行步骤包括将所述市场回单反馈至用户端。

优选地,所述对市场回单进行合法性检查并进行处理,包括根据所述市场回单消息的属性,检查其对应的原始用户订单是否存在:若其原始用户订单不存在,则所述市场回单不属于本系统,对所述市场回单采取系统外部用户订单处理方案;若所述市场回单所对应的原始用户订单存在,则查找出该原始用户订单的所有属性。

优选地,所述对市场回单进行合法性检查并进行处理,还包括检查所述市场回单对应的原始用户订单状态:若所述原始用户订单的状态为已完结,则所述市场回单为非法,直接丢弃;若所述原始用户订单的状态为非完结,则分析所述市场回单的成交量与挂单量的关系。

优选地,若所述市场回单的成交量小于挂单量,则该市场回单为非法,直接丢弃;若所述市场回单的成交量不小于挂单量,则判断所述市场回单的成交单号是否重复;若所述成交单号重复,则所述市场回单为重复的市场回单,直接丢弃;若所述成交单号不重复,则根据所述市场回单管理对应原始用户订单的生命簿。

根据上述金融产品柜台交易方法,本发明提供一种金融产品柜台交易系统,包括订单接收与判断模块、风控管理模块以及订单执行模块,其中,所述风控管理模块采用多条独立式风控规则并行计算。

优选地,所述订单接收与判断模块包括:网络协议处理模块,用于接收包含用户消息或用户订单消息的网络数据包,解析出用户消息或用户订单消息,建立并维护用户消息或用户订单消息的会话数据传输;用户管理模块,用于在进行每个用户订单分派过程中,查询每个用户订单所对应的用户资金账户、订单用户登录账号、和TCP session号三者之间的关系;订单处理模块,用于对用户订单或市场回单进行合法性检查,根据市场回单消息的属性查找原始用户订单,并根据原始用户订单属性处理订单。

优选地,所述网络协议处理模块包括解包单元、TCP维护管理单元、存储单元和组包单元,其中:所述解包单元,用于将接收到的包含有用户订单的网络数据包解包为包头数据和除包头以外的包含用户订单的传输数据,并分别转发至所述TCP维护管理单元和存储单元;所述TCP维护管理单元,用于对包头数据进行TCP维护及管理,并将包头数据转发至组包单元;所述存储单元,用于缓存所述除包头数据以外的包含用户订单的传输数据;所述组包单元,用于将包头数据与存储单元中缓存的数据进行组包。

本发明提供一种基于硬件实现的用于金融产品交易的柜台交易方法及系统,利用FPGA的并行计算能力,完成用户订单/撤单的处理、交易市场回单的自动管理,同时通过事前风控管理对用户订单投放至交易市场之前进行多条独立式风控规则的检查,预测用户订单一旦成交后可能引发的问题,以便进行实时拦截,保证柜台交易系统的风险最小化。利用FPGA实现的全卸载式TCP协议栈,完全独立于CPU工作,独立完成TCP/IP协议数据的处理和传输,整条传输路径都由硬件独立完成,不消耗CPU资源,大大降低了网络传输消耗的时间,能够第一时间将用户订单传送到柜台交易系统的其它模块进行处理。以自带16G内存的硬件系统为例,其能够实时处理2000万数量级的用户订单量,且保证每一条用户订单/交易市场回单的处理时间保持一致且保持在5微秒以内,不会因为订单处理数量增加而递增处理时间。

附图说明

图1为本发明实施例涉及的柜台交易方法的流程图。

图2为本发明实施例涉及的柜台交易方法中对用户订单的订单接收与判断步骤的流程图。

图3为本发明实施例涉及的柜台交易方法中对来自交易市场的市场回单进行合法性判断的流程图。

图4为本发明实施例涉及的柜台交易系统中网络层处理单元的结构示意图。

具体实施方式

下面根据附图所示实施方式阐述本发明。此次公开的实施方式可以认为在所有方面均为例示,不具限制性。本发明的范围不受以下实施方式的说明所限,仅由权利要求书的范围所示,而且包括与权利要求范围具有同样意思及权利要求范围内的所有变形。

下面结合附图,根据具体的实施例说明本发明涉及的柜台交易方法。

图1为本发明实施例涉及的柜台交易方法的流程图。如图1所示,所述柜台交易方法具体包括如下处理步骤:

步骤100,订单接收与判断步骤。

用户通过用户端输入用户登录账号及用户密码,登录柜台交易系统,来自用户端的用户消息经过网络以网络数据包的形式被柜台交易系统接收并处理,柜台交易系统建立并维护该用户登录的会话,柜台交易系统对该用户端登录账号进行合法性判断,对用户输入的密码进行认证,若用户端登录账号不合法或者用户密码认证不通过,则用户通过用户端登录失败,返回至用户端登录界面要求用户重新输入账号信息;若用户端登录账号合法且用户密码认证通过,则提示用户端登录成功。

订单接收与判断步骤还包括对通过用户端发起的用户订单的处理和来自交易市场的市场回单的自动管理。其中,用户订单的处理和市场回单的自动管理分属两块,利用订单处理硬件的并行特性,并行处理两路不同的消息,大大降低了订单处理的时间。

其中,在步骤100中,若柜台交易系统接收用户通过用户端发起的订单,则对所述用户订单进行接收与判断步骤中包括如下处理步骤:

图2为本发明实施例涉及的柜台交易方法中对用户订单的订单接收与判断步骤的流程图。

如图2所示,步骤111,解析用户订单。

将接收包含有用户订单的网络数据包在数据链路层进行处理获取相应的含有用户订单的IP数据包和MAC地址,将所述IP数据包发送至网络层进行处理,并根据配置选择是否过滤MAC地址。在网络层,首先对接收到的包含有用户订单的IP数据包进行TCP包头解包,解析出包头数据中含有的IP地址、TCP头文件以及端口等数据信息,并将除TCP包头数据外的包含用户订单的传输数据缓存至存储单元中,同时对该TCP包头数据进行校验,随后对TCP包头数据进行TCP维护管理,对所述TCP包头数据分配动态session号,并通过定时器对其进行TCP传输序列号、TCP传输窗口和TCP数据定时重传等维护及管理,最后将TCP包头数据与缓存的除TCP包头外的包含用户订单的传输数据进行组包。

在解析用户订单步骤中,采用FPGA实现的全卸载式TCP协议栈对包含用户订单的网络数据包进行处理,其完全独立于CPU工作,独立完成TCP/IP协议数据的处理和传输,加速网络响应的同时提高服务器的性能,其物理通信媒介为10G光纤,能够并行维护多路会话数据传输。接收到包含有用户订单的网络数据包直接在FPGA内部传输,不需通过CPU做数据搬用,能够以最快速度解析包含用户订单的网络数据并将用户订单传递至后续处理步骤中进行处理。多路用户可以并行发起订单请求,采用FPGA实现的全卸载式TCP协议栈能够并行对多路session进行数据传输的管理,完全不依赖软件,1460字节单包的穿越时间小于1.5微秒,处理速度远高于常用的网卡。

步骤112,查询用户订单所关联的用户属性。

将接收的包含用户订单的网络数据包解析并处理,如若包含用户订单的网络数据包中包含多个用户订单,则将其多个用户订单进行拆分,将每个用户订单进行备份,并查询用户订单所关联的用户资金账户、用户登录账号、TCP session号三者之间的关系,以便后期将关于此用户资金账户的相关消息从不同的TCP session号发送到不同的用户端。所述柜台交易系统具有多用户端的用户管理功能,允许不同的用户登录账号通过用户端操作同一个资金账户,如果这个资金账户相关信息发生了变化,则会自动将此变化信息抄送给所有关联了这个资金账户的用户登录账号,实现不同用户登录账号对同一资金账号的操作和同步监管。

步骤113,对用户订单进行合法性检查,对检查通过的用户订单建立订单号和生命簿,维护所述用户订单的生命周期,对检查不通过的用户订单反馈拒绝处理的消息到用户端并停止后续步骤。

对接收到的用户订单进行语法检查,判断用户订单的合法性,其语法检查的规则如检查用户订单所属的用户编号与资金账号两者是否存在且两者之间是否有关联权限、证券品种或股票代码是否是规定的数字代号或是市场上存在的有效代码等。若用户订单的语法检查不通过,则该用户订单为违规订单,订单处理单元拒绝处理该用户订单并将此用户订单的拒绝处理消息反馈到用户端;若用户订单的语法检查通过,建立订单单号及该用户订单的生命簿,开始维护订单的生命周期,所有的操作都基于订单单号进行。生命簿用于记录此用户订单的每一次变更,直至该用户订单被成交、拒绝、或撤单。

在步骤100中,若柜台交易系统接收来自交易市场的市场回单,则对所述市场回单进行接收与判断步骤中包括如下处理步骤:将市场回单转换为柜台交易系统能够识别和处理的消息格式(来自交易市场的市场回单消息需要按照特性的协议进行格式转换,才能在柜台交易系统中进行后续处理);对市场回单进行合法性检查并进行处理。

图3为本发明实施例涉及的柜台交易系统中对来自交易市场的市场回单进行合法性判断的流程图。如图3所示,首先会根据市场回单中包含的订单单号判断该市场回单所对应的原始订单是否存在(步骤121),若其原始订单不存在,则该市场回单不属于本系统的订单的消息,属于其它系统的订单消息,柜台交易系统会采取相应的系统外部订单处理方案(步骤122),如通过手动方式,建立、记录和/或修订属于其它系统的订单消息的订单生命簿,若该市场回单所对应的原始订单存在,则查找出该原始订单的所有属性,如用户ID、用户登录账号、下单数量、下单股票代码及下单价格等,同时订单处理单元通过查询该原始订单的生命簿来判断该原始订单的状态(步骤123),若该原始订单的状态为已完结,则此市场回单为非法,直接丢弃(步骤124),若该原始订单的状态为非完结状态,则对该市场回单的成交量进行判断(步骤125),若该市场回单的成交量小于挂单量,则该市场回单被认为是非法,直接丢弃(步骤124),若该市场回单的成交量不小于挂单量,则继续对该市场回单的成交单号是否重复进行判断(步骤126),若该成交单号重复,则该市场回单为重复的市场回单,直接丢弃(步骤127),若成交单号不重复,则根据所述市场回单更新该市场回单对应原始订单的生命簿(步骤128),如更新成交数量、更新挂单数据和/或更新撤单数量等。

返回至图1,步骤200,风控管理步骤。

对投放至交易市场之前的用户订单和来自交易市场的市场回单进行事前风控处理。

对用户订单在投放至交易市场之前,预先并行计算多条独立式事前风控规则的相关数据,例如分别检查与盘口价相比、与最近成交价相比和与昨结算价相比,用户订单报价百分比超限等事前风控规则,计算出仓位变化/资金变化/实时亏盈等,将计算结果与用户的账户属性进行比较,判断此订单是否可以发往交易市场。若判断所述用户订单无风险,则确认此用户订单生成并保存该用户订单消息,若判断用户订单有风险,则直接进行拦截,保证系统的风险最小化,同时将拦截信息或其它信息反馈给用户端。针对不同的资金账号和不同的金融品种,可以独立配置风控规则,多个资金账号多个交易品种可以分别配置不同的规则属性,用户可根据需要自行配置相应的规则属性。另外,利用硬件系统的并行处理特性,柜台交易系统可以并行处理所有的风控规则,能够在微秒级的时间内完成一个用户订单的有效性判断,时间消耗相比网络传输的时延基本可以忽略。

对接收到的来自交易市场的市场回单,并行计算多条风控规则的相关数据,如检查与盘口价相比、与最近成交价相比和与昨结算价相比,用户订单报价百分比超限、检查限价委托订单或市价委托订单手数限制等,计算出仓位变化/资金变化/实时亏盈等,进而修改用户的账户仓位/购买力等风控属性。

步骤300,订单执行步骤。

针对用户订单,经过事前风控处理确认用户订单无风险后,对所述用户订单进行相应的格式转换后发往交易市场,同时将该用户订单生成编号及发送确认消息反馈到用户端。

针对市场回单,经过事前风控处理后,根据所述市场回单所对应的订单号查询订单涉及到的所有用户ID,根据查询到的所有用户ID找到各自对应的TCP session号,然后根据TCP session号将所述市场回单反馈到对应的用户端。

在所述柜台交易方法中,所有的用户订单或市场回单都会进行备份处理,一旦发生异常情况,柜台交易系统将及时开启重演模式,将备份的历史信息按照发生的时间先后顺序进行回滚,完成交易系统中主备单元之间的无缝切换,从而保证系统的稳定性。

在上述柜台交易方法中,所述用户订单接收与判断步骤、风控管理步骤和订单执行步骤中至少其中之一通过内置的FPGA装置进行处理。

为实现上述实施例,本发明还提供了一种金融产品柜台交易系统。

所述柜台交易系统包括订单接收与判断模块、风控管理模块和订单执行模块,其中:

订单接收与判断模块,包括网络协议处理模块、用户管理模块和订单处理模块;

网络协议处理模块,用于接收包含用户消息或用户订单的网络数据包,解析出用户消息或用户订单,建立并维护用户消息或用户订单的会话数据传输;

具体地,所述网络协议处理模块包括数据链路层单元和网络层处理单元;数据链路层单元将网络发送的网络数据包中的数据按照数据链路层特定的协议进行处理,获取含有用户消息或用户订单的IP数据包以及MAC地址等信息,并根据系统配置选择是否过滤MAC地址;同时将解析的IP数据包等信息传输给网络层处理单元。

网络层处理单元是利用FPGA实现的全卸载式TCP协议栈,其完全独立于CPU工作,独立完成TCP/IP协议数据的处理和传输,加速网络响应的同时提高服务器的性能,其物理通信媒介为10G光纤,能够并行维护多路会话数据传输。图4为本发明实施例涉及的柜台交易系统中网络层处理单元的结构示意图。如图4所示,所述网络层处理单元包括解包单元、校验单元、TCP维护管理单元、组包单元、存储单元和定时单元;所述解包单元接收数据链路层单元发送的含有用户消息或用户订单的IP数据包等数据信息,直接对其进行TCP/IP/UDP包头解包,解包为包头数据和除包头以外的包含用户订单的传输数据,并将除包头以外的包含用户订单的传输数据缓存至存储单元,同时校验单元对TCP/IP/UDP包头进行校验和校验;解包单元对接收到含有用户消息或用户订单的IP数据包进行解包,解包出包头数据,其包头数据中含有IP地址、TCP头文件以及端口等数据信息,将上述解包出的包头数据发送至TCP维护管理单元,TCP维护管理单元对上述包头数据分配动态session号,并通过定时单元对其进行TCP传输序列号、TCP传输窗口和TCP数据定时重传等维护及管理,TCP维护管理单元将包头数据发往组包单元,组包单元将存储单元中存储的数据与接收到的包头数据进行组包,实现TCP全双工数据传输。所述网络层处理单元将接收的网络数据直接在FPGA内部传输,不需通过CPU做数据搬用,能够最快速度将用户订单传递到用户管理模块,同时所述网络层处理单元能够并行对多路session进行数据传输的管理,完全不依赖软件,1460字节单包的穿越时间小于1.5微秒,处理速度远高于常用的网卡。

用户管理模块,用于在进行每个用户订单分派过程中,查询每个用户订单所对应的用户资金账户、订单用户登录账号、和TCP session号三者之间的关系。

具体地,用户管理模块根据用户消息自主判断用户端登录账号的有效性,并分派用户订单消息至订单处理模块。所述用户管理模块将接收的来自于网络协议处理模块的用户消息数据包中的用户消息或用户订单消息解析并处理,对来自用户端的用户消息进行自主判断,判断其登录账号的有效性。

用户订单消息中如若包含多个用户订单,则用户管理模块将用户订单消息中多个用户订单进行拆分,通过总线接口将每个用户订单的信息备份至订单信息备份模块,并将用户订单分派到订单处理模块。其中,用户管理模块在进行每个用户订单分派过程中,需要查询每个用户订单所对应的用户资金账户、订单用户登录账号、和TCP session号三者之间的关系,以便将关于此用户资金账户的相关消息从不同的TCP session号发送到不同的用户端。用户管理模块具有多用户端的用户管理功能,允许不同的用户登录账号通过用户端操作同一个资金账户,如果这个资金账户相关信息发生了变化,则用户管理模块会自动将此变化信息抄送给所有关联了这个资金账户的用户登录账号,实现不同用户登录账号对同一资金账号的操作和同步监管。

订单处理模块用于对用户订单或市场回单进行合法性检查并处理。

订单处理模块用于完成对来自用户端的用户订单的处理和来自交易市场的市场回单的自动管理。其中,用户订单的处理和市场回单的自动管理分属两块,利用订单处理单元硬件的并行特性,并行处理两路不同的消息,大大降低了订单处理的时间。订单处理模块对接收到的用户订单进行语法合法性检查,如订单处理模块会检查用户订单的价格、数量、期货合约等是否正确,也会检查用户登录账号、用户资金账号是否合法以及用户登录账号是否有权限操作这个用户资金账号等,建立该用户订单的生命簿,记录用户订单的每一次变更,直到用户订单被成交、拒绝或撤单等,该用户订单才完成一次生命周期;订单处理模块对接收到的市场回单进行合法性判断,并根据市场回单的属性查找出原始用户订单,修改或更新该原始用户订单的状态,如若该市场回单没有对应的原始用户订单,则该市场回单为本柜台交易系统之外的用户订单,按照系统外部订单处理方案进行处理。

订单处理模块中所有的用户订单或市场回单都会备份至订单信息备份模块,一旦发生异常情况,订单处理模块将及时开启重演模式,订单信息备份模块通过总线接口模块将历史信息按照发生的时间先后顺序回滚给所述订单处理模块,完成柜台交易系统中主备单元之间的无缝切换,从而保证订单处理模块的稳定性。

风控管理模块,对投放至交易市场之前的用户订单和来自交易市场的市场回单进行事前风控处理。

对用户订单在投放至交易市场之前,预先并行计算多条独立式事前风控规则的相关数据,例如分别检查与盘口价相比、与最近成交价相比和与昨结算价相比,用户订单报价百分比超限等事前风控规则,计算出仓位变化/资金变化/实时亏盈等,将计算结果与用户的账户属性进行比较,判断此订单是否可以发往交易市场。若判断所述用户订单无风险,则确认此用户订单生成并保存该用户订单消息,若判断用户订单有风险,则直接进行拦截,保证系统的风险最小化,同时将拦截信息或其它信息反馈给用户端。针对不同的资金账号和不同的金融品种,可以独立配置风控规则,多个资金账号多个交易品种可以分别配置不同的规则属性,用户可根据需要自行配置相应的规则属性。另外,利用硬件系统的并行处理特性,柜台交易系统可以并行处理所有的风控规则,能够在微秒级时间内完成一个用户订单的有效性判断,时间消耗相比网络传输的时延基本可以忽略。

对接收到的来自交易市场的市场回单,并行计算多条风控规则的相关数据,如检查与盘口价相比、与最近成交价相比和与昨结算价相比,用户订单报价百分比超限、检查限价委托订单或市价委托订单手数限制等,计算出仓位变化/资金变化/实时亏盈等,进而修改用户的账户仓位/购买力等风控属性。

订单执行模块,针对用户订单,在经过事前风控处理确认用户订单无风险后,对所述用户订单进行相应的格式转换后发往交易市场,同时将该用户订单生成编号及发送确认消息反馈到用户端。

针对市场回单,在经过事前风控处理后,根据所述市场回单所对应的订单号查询订单涉及到的所有用户ID,根据查询到的所有用户ID找到各自对应的TCP session号,然后根据TCP session号将所述市场回单反馈到对应的用户端。

本发明所涉及的金融产品柜台交易系统包括订单接收与判断模块、风控管理模块和订单执行模块都基于FPGA的硬件系统,但不仅限于此。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1