一种金融交易行情获取系统以及获取方法
【专利摘要】本发明提供一种金融交易行情获取系统,包括:网络协议处理模块、市场行情转换模块、交易簿模块和行情树搭建模块;所述网络协议处理模块,用于接收包含市场行情的网络数据包并解析出市场行情数据包;所述市场行情转换模块,用于按照特定的市场数据协议将所述市场行情数据包解析成具有特定格式的市场行情信息并发送给所述交易簿模块;所述交易簿模块,用于对所述网络协议处理模块解析出的市场行情信息进行分析获取市场行情委托单的状态信息,并发送给所述行情树搭建模块;所述行情树搭建模块,用于根据市场行情委托单的状态信息搭建相应的行情树。本发明还提供一种金融交易行情获取方法。
【专利说明】
一种金融交易行情获取系统以及获取方法
技术领域
[0001]本发明涉及一种应用于金融领域的交易行情获取系统,尤其涉及一种基于硬件的应用于金融产品的交易行情获取系统及获取方法。
【背景技术】
[0002]随着程序化证券交易的日益普及,越来越多的证券交易通过计算机程序自动完成,这极大的提高了交易完成的效率。与此同时,人们对交易系统的性能要求,尤其是对延迟性能的要求越来越高,交易机会往往转瞬即逝,延迟超过一定限度会丧失从交易中获利的机会,甚至会造成亏损。传统的交易系统是基于软件的,也就是说真正决定交易与否、如何交易的过程是在软件系统中运行的,且软件系统通过主机CPU执行。由于CPU构架和软件系统的局限性,不管网络流量如何,程序化交易过程中都存在一定的延迟;而且因为单位时间内CPU能够处理的消息数有限,当需要处理的数据流量出现激增的时候,延迟会突然变得很大,不能满足程序化交易对处理速度的要求。也就是说,在证券交易自动化加剧的同时,提高了客户对于行情实时性和正确性的要求。
[0003]在证券自动化交易系统中,特别是当高频交易出现时,一些高端客户明显发现现有的行情已经无法完全满足自己的要求。由于现有行情的延时较高,策略得到行情的实时性不高导致下单无法成交的现象频频出现。目前,实时响应性能好的行情服务器已经是程序化交易系统中不可缺少的一部分,当前市场上的行情服务器都是基于软件,即运行在通用CPU上的软件程序,这些系统能够实现行情服务器的功能,但由于系统架构的原因,所有需要进行的运算都必须经过网络到CPU,再通过CPU传回网络,这个过程中必会引入从网卡到CPU传递数据的延迟,而且CPU需要参与到网络数据的收发处理中,这些处理都会带来很大的延迟。CPU处理网络数据带来的另外一个缺点是,CPU资源将被大量占用,特别是在网络数据带宽很高时。
【发明内容】
[0004]为了解决以上问题,本发明提供一种金融交易行情获取系统,包括:网络协议处理模块、市场行情转换模块、交易簿模块和行情树搭建模块;所述网络协议处理模块,用于接收包含市场行情的网络数据包并解析出市场行情数据包;所述市场行情转换模块,用于按照特定的市场数据协议将所述市场行情数据包解析成具有特定格式的市场行情信息并发送给所述交易簿模块;所述交易簿模块,用于对所述网络协议处理模块解析出的市场行情信息进行分析获取市场行情委托单的状态信息,并发送给所述行情树搭建模块;所述行情树搭建模块,用于根据市场行情委托单的状态信息搭建相应的行情树。
[0005]优选地,所述网络协议处理模块、市场行情转换模块、交易簿模块和行情树搭建模块至少其中之一基于FPGA制成,FPGA中内置固化的实现其处理功能的逻辑电路。
[0006]优选地,所述网络协议处理模块基于FPGA制成,包括TCP保持单元和处理单元;其中:所述TCP保持单元,用于与市场行情端建立空连接链路,接收包含市场行情的网络数据包并将所述网络数据包直接转发至所述处理单元;所述处理单元,用于对所述网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并将其转发至所述市场行情转换模块。
[0007]优选地,所述网络协议处理模块基于FPGA制成,包括TCP保持单元和处理单元;其中:所述TCP保持单元,用于与市场行情端建立空连接链路,接收所述市场行情数据包并将所述市场行情数据包直接丢弃;所述处理单元设置在所述市场行情端与所述TCP保持单元之间,用于将从所述市场行情端接收的网络数据包转发给所述TCP保持单元,同时将接收的网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。
[0008]优选地,所述网络协议处理模块基于FPGA制成,包括信息分配单元、TCP保持单元和处理单元;其中:所述信息分配单元连接市场行情端、TCP保持单元和处理单元,用于在市场行情端和TCP保持单元之间转发数据,并将市场行情端发送给TCP保持单元的数据复制给所述处理单元;所述TCP保持单元,用于与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃;所述处理单元,用于接收所述信息分配单元复制的包含市场行情的网络数据包并按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。
[0009]优选地,还包括设置在FPGA之外的信息分配单元和TCP保持单元;所述信息分配单元连接市场行情端、TCP保持单元和网络协议处理模块,用于在市场行情端和TCP保持单元之间转发数据,并将市场行情端发送给TCP保持单元的数据复制给所述网络协议处理模块;所述TCP保持单元,用于与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃;所述网络协议处理模块基于FPGA制成,用于接收所述信息分配单元复制的包含市场行情的网络数据包并按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。
[0010]优选地,所述处理单元按照特定的网络层协议对数据链路层数据包进行解析,解析出所述市场行情数据包的序列码,所述处理单元根据所述序列码对所述市场行情数据包进行乱序处理获取有序的市场行情数据包。
[0011]优选地,所述交易簿模块从所述市场行情数据中获取市场行情委托单的状态信息,同时对委托单业务进行乱序处理;所述状态信息包括委托单的周期信息和当前状态信息。
[0012]优选地,还包括:输入输出模块,用于连接所述行情树搭建模块和外部设备;所述外部设备为行情服务管理系统,用户通过所述行情服务管理系统查询所述交易行情获取系统内部的市场行情信息。
[0013]优选地,还包括:寄存器模块,用于存储及配置行情树搭建时所需参数,并存储所述金融交易行情获取系统其他模块的运行状态数据。
[0014]本发明提供一种金融交易行情获取方法,包括:行情信息接收步骤,接收网络发送的包括市场行情信息网络数据包,并解析出市场行情数据包;市场行情转换步骤,用于按照特定的市场数据协议从所述行情信息接收步骤解析出的市场行情数据包中解析出市场行情信息;交易簿获取步骤,用于对所述市场行情转换步骤中解析出的市场行情信息进行分析获取市场行情委托单的状态信息;行情树搭建步骤,利用所述交易簿获取步骤中获取的市场行情委托单的状态信息搭建相应的行情树。
[0015]优选地,所述行情信息接收步骤、市场行情转换步骤、交易簿获取步骤和行情树搭建步骤中至少其中之一通过内置逻辑电路的FPGA装置进行处理。
[0016]优选地,所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括空连接建立步骤和网络层处理步骤;其中:所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收包含市场行情的网络数据包并将所述网络数据包直接转发至处理单元;所述网络层处理步骤,处理单元将接收到的所述网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并转发至市场行情转换模块。
[0017]优选地,所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括网络层处理步骤和空连接建立步骤;其中:所述网络层处理步骤,处理单元接收市场行情端发送的网络数据包转发至TCP保持单元,同时处理单元将接收的网络数据包按照特定的网络层协议进行解析处理,并将解析出市场行情数据包转发至市场行情转换模块;所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收网络数据包并将所述网络数据包直接丢弃。
[0018]优选地,所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括信息分配步骤、网络层处理步骤和空连接建立步骤;其中:所述信息分配步骤,信息分配单元将市场行情端发送给TCP保持单元的包含市场行情的网络数据包复制给处理单元;所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收包含市场行情的网络数据包并将所述网络数据包直接丢弃;所述网络层处理步骤,处理单元将接收的信息分配单元复制的包含市场行情的网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并转发至所述市场行情转换模块。
[0019]优选地,还包括:信息分配步骤和空连接建立步骤;所述信息分配步骤通过内置逻辑电路的FPGA装置或软件进行处理,信息分配单元将市场行情端发送给TCP保持单元的含有市场行情的网络数据包复制给网络协议处理模块;所述空连接建立步骤,通过内置逻辑电路的FPGA装置或软件进行处理,TCP保持单元与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃;所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,网络协议处理模块接收信息分配单元复制的包含市场行情的网络数据包按照特定的网络层协议进行解析,解析出市场行情数据包并转发至所述市场行情转换模块。
[0020]优选地,在所述网络层处理步骤中,处理单元按照特定的网络层协议将所述数据链路层数据包解析出市场行情数据包,并解析出所述市场行情数据包的序列码,所述处理单元根据所述序列码对所述市场行情数据包进行乱序处理获取有序的市场行情数据包。
[0021]优选地,在所述交易簿获取步骤中,从所述市场行情信息中获取市场行情委托单的状态信息;所述状态信息包括委托单的周期信息和当前状态信息。
[0022]本发明提供一种基于硬件(FPGA)的市场交易行情获取系统,并且通过硬件本身完成行情的处理过程,比如网络协议解析、TCP乱序处理、市场数据协议处理以及行情树结构搭建等过程,通过硬件实现网络协议的处理,可以节省大量的CPU资源,并且能够保证数据流量激增时的处理能力。软件处理行情受制于操作系统任务调度影响,时延变动较大,而本发明基于硬件的行情处理时延相对稳定,上述所有的行情处理过程(网络协议解析、TCP乱序处理、市场数据协议处理以及行情树结构搭建等过程)均可以并行处理,互不干扰。此外,本发明所述的系统时延响应性能优越,能实时且稳定的响应系统查询行情信息。本发明的网络协议解析过程中,将传统的TCP边处理行情数据边维护TCP连接的方式转变为:一个模块监听行情数据,一个模块维护连接的方式,使得行情实时性大幅度提高。
【附图说明】
[0023]图1为本发明第一实施例涉及的金融交易行情获取系统的结构示意图;
图2为本发明第一实施例涉及的网络层处理单元的结构示意图;
图3为本发明第一实施例涉及的金融交易行情获取系统搭建行情树的流程;
图4为本发明第一实施例涉及的网络协议处理模块下的解析单元的处理流程;
图5为本发明第一实施例涉及的交易簿模块的处理流程;
图6为本发明第一实施例涉及的行情树模块构建的行情树的一例;
图7为本发明第一实施例的第一变更例涉及的网络层处理单元的结构示意图;
图8为本发明第一实施例的第二变更例涉及的网络层处理单元的结构示意图;
图9为本发明第二实施例涉及的金融交易行情获取系统的结构示意图;
图10为本发明第二实施例涉及的金融交易行情获取系统搭建行情树的流程。
【具体实施方式】
[0024]下面根据附图所示实施方式阐述本发明。此次公开的实施方式可以认为在所有方面均为例示,不具限制性。本发明的范围不受以下实施方式的说明所限,仅由权利要求书的范围所示,而且包括与权利要求范围具有同样意思及权利要求范围内的所有变形。
[0025]下面根据具体的实施例说明本发明涉及的金融交易行情获取系统。
[0026]实施例1
图1为本发明实施例1涉及的金融交易行情获取系统的结构示意图。如图1所示交易行情获取系统I包括网络协议处理模块11、市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16、命令处理模块17以及系统监控模块18。所述交易行情获取系统I通过所述输入输出模块16与行情服务管理系统2互连,用户可以通过行情服务管理系统2的未图示的输入部件向所述交易行情获取系统I发送查询指令。所述网络协议处理模块11、市场协议处理模块12、交易簿模块13和行情树模块14分别与寄存器模块15和系统监控模块18相互连接;所述行情树模块14与命令处理模块17连接,所述寄存器模块15、命令处理模块17以及系统监控模块18与输入输出模块16直接相连接。
[0027]所述网络协议处理模块11包括数据链路层单元111和网络层(TCP/IP)处理单元112 ;数据链路层单元111将网络发送的网络数据包中的数据按照数据链路层特定的协议进行处理,获取含有市场行情的IP数据包以及MAC地址等信息,并根据系统配置选择是否过滤MAC地址;同时将解析的IP数据包等信息传输给网络层处理单元112。图2为实施例1涉及的网络层处理单元112的结构示意图;如图2所示,所述网络层处理单元112包括TCP保持单元1121、解析单元1122和存储单元1123 ;所述TCP保持单元1121接收数据链路层单元ill发送的含有市场行情的IP数据包等数据信息,并直接将接收到的含有市场行情的IP数据包发送至解析单元1122,在此,TCP保持单元1121的作用为通过TCP连接接收行情相关数据并直转发至下一单元,从而只负责维护数据传输链路的完整性,这样响应速度会非常快。当解析单元1122接收到所述含有市场行情的IP数据包等信息后,对其进行解析,解析出包括市场行情数据包和含有IP地址、序列码、TCP头文件以及端口等数据信息,同时所述解析单元1122根据序列码等信息将解析出的市场行情数据包经乱序处理后发送至市场协议处理模块12。解析单元1122将接收到的乱序的数据包暂存在存储单元1123中,当缺少的数据包到达后将数据包排序解析出市场行情数据包发送给市场协议处理模块12。所述市场协议处理模块12能够按照特定的市场数据协议,将接收的来自于网络协议处理模块11的市场行情数据包中的市场行情信息等解析出来,并将解析出的市场行情信息发送给交易簿模块13。
[0028]交易簿模块13接收所述市场协议处理模块12发送的市场行情信息,所述交易簿模块13根据市场交易委托单成交、取消等的状态信息获得每个委托单的状态。所述状态主要记录处理每个委托单的生命周期(即委托单从下单到成交或撤销的时间信息)以及当前状态信息(包括所述委托单是否成交或撤销以及成交或撤销后委托单的剩余数量等信息)。所述每个委托单的状态存储于未图示的数据库部件中。同时所述交易簿模块13将所述每个委托单的状态发送至行情树模块14。
[0029]行情树模块14存储有各种行情树结构的设计算法,所述行情树模块14根据接收到的每个委托单的状态信息以及行情树结构设计算法设计行情树,并生成对应市场行情的行情树。所述行情树模块14将生成的行情树存储于行情树模块14下未图示的存储部件中。
[0030]寄存器模块15与输入输出模块16相连,所述寄存器模块15用于储存上述网络协议处理模块11、市场协议处理模块12、交易簿模块13和行情树模块14工作时所需参数以及系统内部各模块运行时的状态数据等信息,并将存储参数配置给相应的模块。
[0031]输入输出模块16完成硬件与软件之间的通信连接:连接行情服务器客户管理系统2和交易行情获取系统I的命令处理模块17和寄存器模块15。所述输入输出模块16接收行情服务管理系统2的指令或其他数据信息并获取至命令处理模块17和寄存器模块15 ;且将所述命令处理模块17等的行情响应数据传输至行情服务管理系统2。优选地,该输入输出模块16为PCIE接口。
[0032]命令处理模块17接收客户通过行情服务器客户管理系统2发布的指令,并对所述指令进行解析处理,并根据解析的指令查询行情树模块14内存储的对应委托单的信息结果并调取相关的信息反馈至所述行情服务器客户管理系统2,为用户提供参考。
[0033]系统监控模块18分别与交易行情获取系统I的网络协议处理模块11、市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16以及命令处理模块17相连,能够对各模块运行状态进行监控与统计。
[0034]图3为本实施例涉及的金融交易行情获取系统搭建行情树的流程图。如图3所示,市场端的市场行情数据经过网络以网络数据包的形式由网络协议处理模块11的数据链路层单元111接收(步骤SI)。所述数据链路层单元111将接收到的网络数据包,并对其进行处理获取相应的含有市场行情的IP数据包和MAC地址,将所述IP数据包发送至网络层处理单元112,并根据配置选择是否过滤MAC地址(步骤S2)。所述网络层处理单元112的TCP保持单元1121将接收到的含有市场行情的IP数据包直接发送至解析单元1122(步骤S3);所述TCP保持单元1121接收IP数据包后直接转发,从而建立一个空的连接,这样使得连接的响应速度会非常快,使得交易行情获取系统的行情实时性和稳定性大幅度提高。所述解析单元1122接收到含有市场行情的IP数据包后,对所述IP数据包按照网络层数据协议进行解析,解析出包括市场行情数据包和含有IP地址、序列码、TCP头文件以及端口等数据信息,同时所述网络层处理单元112根据序列码等信息将解析出的市场行情数据包经乱序处理后发送至市场协议处理模块12,同时存储于所述存储单元1123 (步骤S4)。
[0035]步骤S4中解析单元的处理过程如图4所示。所述解析单元1122对接收到的含有行情数据的IP数据包进行解析,解析出包括市场行情的IP包和IP报头信息(IP header)(步骤S41)。解析IP header以及IP包,过滤掉非TCP帧信息,同时提取IP地址、IP包长度等相关参数以及TCP包和TCP header等数据信息(步骤S42)。解析TCP header,提取TCP端口信息和序列码(sequence num)等信息(步骤S43)。根据配置的IP地址和TCP端口信息过滤掉不需要的TCP包,留下的数据帧即为所需行情数据(步骤S44)。根据序列码等信息完成网络TCP数据帧的乱序重组(TCP允许乱序发生)(步骤S45)。剥离掉MAC地址、IPheader、TCP header后剩余的数据帧(后称市场协议数据包)经过乱序处理后输出给市场协议处理模块12 (步骤S46)。
[0036]返回图3,所述市场协议处理模块12根据特定的市场数据协议将接收的市场行情数据包进行解析,解析出具体的市场行情消息,并将所述市场行情消息发送至交易簿模块13 (步骤 S5)。
[0037]所述交易簿模块13根据接收到的市场行情消息,处理并记录所述的市场行情消息,将市场行情消息中新的委托单分别进行处理,获取每单行情的状态信息,所述的状态信息中记录每单行情的生命周期及当前状态等相关信息,并根据获得的节点对应的委托单状态信息将对应数据信息发送至行情树模块14 (步骤S6)。具体的处理过程如图5的工作流程所示:所述交易簿模块13根据收到的市场行情消息将其中的新的委托单分别建立一个order节点(步骤S61)。获取已有节点对应的委托单所对应的取消(cancel)或成交的状态信息,修改每个节点的当前状态信息(步骤S62)。对市场行情可能存在的业务乱序进行处理,即对新的委托单慢于cancel或者成交委托单的情况进行合计处理(步骤S63):具体的,对于同一个委托单,cancel委托单先到达,则在所述交易簿模块13中把cancel委托单先存在对应的委托单的节点上;等新的委托单到达后在所述交易簿模块13中先进行处理,然后将同一个委托单处理后的状态发送至行情树模块14:例如:1)、新的委托单的数量为500,对应的委托单cancel的数量也是500,那么所述的两个委托单都不需要输出到行情树模块14,即这两个委托单都不需要输出到行情树模块14 ;2)、新的委托单的数量为500,对应的委托单cancel的数量也是300,那么只需将一个数量为200的新委托单输出至行情树模块14;这样交易簿模块13和行情树模块14两个模块同一时间可以处理不同的委托单,所以乱序包不会影响到后面其它委托单的处理。将经过乱序处理后的委托单状态等信息发送至行情树模块14 (步骤S64)。
[0038]返回图3,行情树模块14实时的接收到的多个委托单的状态信息,构建各个委托单相应的symbol的行情树;例如图6所示的为行情树模块14构建的行情树的一例。图6中symbol为委托单名称,side为委托单的状态,price为对应委托单的价格信息,share为对应委托单在某价格上所有市场的总数量,market为委托单所在的交易所,例如可以是深圳交易所(SZE)或者上海交易所(SSE)等中的一个或者几个,Sub share为对应委托单在某价格上每个交易所中的总数量,Order ID为每个委托单的唯一单号,用于识别所述的委托单。所述委托单的状态信息包括每个委托单的名称信息(symbol)、委托单的价格信息等信息。当有新的与构建的行情树中委托单名称相同的委托单的成交或撤销等信息发送到行情树模块14中时,就根据信息内容在所在行情树中的对应信息项处进行修改;当某一委托单的某项信息达到一定条件时,例如数量减少为O时,就将该行情树中对应委托单的信息全部删除(步骤S7)。
[0039]当用户需要查询市场行情信息时,用户可以通过行情服务管理系统2的输入部件(未图示)下达关于所需行情查询的指令,所述查询指令由输入输出模块16发送至命令处理模块17,所述命令处理模块17将查询指令进行解析,并根据解析的指令查询行情树模块14内存储的市场行情的行情树信息,快速准确的获得所要查询的市场行情信息,并将查询到的行情信息反馈至行情服务管理系统2的显示部件(未图示),用户根据反馈的信息进行下一步操作。
[0040]实施例1所述的网络层处理单元112的TCP保持单元1121和解析单元1122位置关系如图2所示,其中TCP保持单元1121接收来自数据链路层单元111的数据信息后不对接收数据进行处理,而是直接丢弃给解析单元1122,但不仅限于此。所述解析单元1122与TCP保持单元1121的位置关系可以如图7和图8所示(图7和图8分别为本发明实施例1所涉及的网络层处理单元的结构示意图的第一变更例和第二变更例)。如图7所示,解析单元1122接收来自数据链路层单元111的数据信息并对接收数据进行与实施例1的解析单元相同的解析处理过程,并将解析获得的市场行情数据包分别发送给TCP保持单元1121、存储单元1123以及市场协议处理模块12 ;所述TCP保持单元1121接收所述市场行情数据包后直接丢弃,建立空连接,维护链路的连接。如图8所示,TCP保持单元1121和解析单元1122通过信息分配单元1124同时接收来自数据链路层单元的数据信息,所述信息分配单元1124可以为分光器,能够复制信息并分别发送至TCP保持单元1121和解析单元1122 ;所述TCP保持单元接收到数据信息后直接丢弃,建立空连接,维护链路的连接;所述解析单元进行与实施例1的解析单元相同的处理过程。
[0041]本实施例涉及的金融交易行情获取系统的网络协议处理模块11、市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16、命令处理模块17以及系统监控模块18基于FPGA硬件,所述的网络协议处理模块11、市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16、命令处理模块17以及系统监控模块18的功能全部由FPGA硬件逻辑电路实现,如网络协议解析、TCP乱序处理、市场数据协议处理以及行情树结构搭建等,这样能够使系统获得极低的延迟。操作人员通过FPGA控制部件(未图示)将上述的各模块的功能对应的代码等(如网络协议解析、TCP乱序处理、市场数据协议处理以及行情树结构搭建)烧写入FPGA硬件逻辑电路的相应部分,用于实现上述的功能。此外,操作人员还可以通过其他的写入部件对FPGA硬件电路的功能进行改写,通过所述FPGA控制部件(未图示)重新烧写入所需实现的功能对应的代码。系统内各模块之间为并行处理的关系,各模块之间工作互不干扰,模块内部之间也可以存在多个并行处理的相同单元,能够同时处理不同的市场行情而互不干扰。
[0042]实施例2
图9为实施例2涉及的金融交易行情获取系统的结构示意图;如图9所示,实施例2涉及的交易行情获取系统I包括交易行情监听系统4和TCP连接单元3,所述交易行情监听系统4基于FPGA硬件,所述TCP连接单元3可以基于FPGA硬件也可以基于软件系统。所述交易行情监听系统4只负责监听来自网络的数据包信息;所述TCP连接单元3只负责维护TCP网络连接。所述TCP连接单元3与所述交易行情监听系统4可以通过交换设备5 (例如可以是光交换机)相连接,例如所述TCP连接单元3与交易行情监听系统4连接于交换设备不同的端口上,两者所接入的端口通过特定的配置,可以进行数据的映射;当TCP连接单元接收某网络数据包后直接将其丢弃,从而建立空连接;系统将该空连接中丢弃的网络数据包从所述TCP连接单元接入的交换设备的端口映射到所述交易行情监听系统接入的交换设备端口,使所述交易行情监听系统4获取相应的网络数据包信息。
[0043]所述TCP连接单元3能够接收网络发送的含有市场行情数据的网络数据包,并将接收到的网络数据包直接丢弃,例如可以将接收的网络数据包在其缓存中直接删除,从而建立一个空连接。所述空连接确保与发送网络数据包的前置结构(未图示)的通信,即维持TCP连接,使交易行情监听系统4能够获取正常的交易行情等信息。这样使得连接的响应速度会非常快,使得交易行情获取系统的行情实时性和稳定性大幅度提高。
[0044]所述交易行情监听系统4与图1所示的交易行情获取系统I的结构相同,在此不再重复说明。其中所述交易行情监听系统4下的数据链路层单元111通过交换设备5的端口映射获取网络数据包;如图9所示交易行情监听系统4的各模块或单元的功能与实施例1中的相应的模块或单元的功能相同,在此不再重复说明。
[0045]图10为本实施例涉及的金融交易行情获取系统搭建行情树的流程图。如图10所示,TCP连接单元3接收含有市场行情数据的网络数据包,并将接收到的网络数据包直接丢弃,建立空连接(步骤Sll);并对接入所述TCP连接单元3和交易行情监听系统4的交换设备5的端口(未图示)进行匹配设置。根据步骤Sll中建立的空连接TCP连接单元3将所接收到的含有市场行情数据的网络数据包通过匹配设置后的端口映射到所述交易行情监听系统4,使所述交易行情监听系统4的网络协议处理模块11的数据链路层单元111获取所述含有市场行情数据的网络数据包(步骤S12)。然后进行图3的步骤S2相同的网络数据包的解析处理过程(步骤S13)。网络层处理单元112接收到含有市场行情的IP数据包(数据链路层单元解析出的IP数据包)后,对所述IP数据包按照网络层数据协议进行解析,解析出包括市场行情数据包和含有IP地址、序列码、TCP头文件以及端口等数据信息,同时所述网络层处理单元112根据序列码等信息将解析出的市场行情数据包经乱序处理后发送至市场协议处理模块12,同时存储于所述存储单元1123(步骤S14)。然后执行步骤S15?S17过程,步骤S15?S17与实施例1中的步骤S5?S7过程相同,在此不再重复说明。
[0046]本发明所涉及的交易行情获取系统I包括网络协议处理模块11、市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16、命令处理模块17以及系统监控模块18都基于FPGA的硬件系统,但不仅限于此。可以仅将网络协议处理模块11设置为基于FPGA硬件,市场协议处理模块12、交易簿模块13、行情树模块14、寄存器模块15、输入输出模块16、命令处理模块17以及系统监控模块18中的全部或者部分可以不是基于FPGA硬件而是基于软件设计的。同样,网络协议处理模块11也可以基于软件设计,其他模块中的部分或全部基于FPGA硬件。
[0047]本发明所涉及的交易行情获取系统I分别包括行情树模块14、命令处理模块17和系统监控模块18,但不仅限于此。所述行情树模块14和命令处理模块17可以合为一个模块,用户可以通过所述行情服务管理系统2直接查询行情树模块14中存储的行情树信息;所述系统监控模块18可以删除,直接利用行情服务管理系统2监控交易行情获取系统I各模块的工作。
【主权项】
1.一种金融交易行情获取系统,包括:网络协议处理模块、市场行情转换模块、交易簿模块和行情树搭建模块; 所述网络协议处理模块,用于接收包含市场行情的网络数据包并解析出市场行情数据包; 所述市场行情转换模块,用于按照特定的市场数据协议将所述市场行情数据包解析成具有特定格式的市场行情信息并发送给所述交易簿模块; 所述交易簿模块,用于对所述网络协议处理模块解析出的市场行情信息进行分析获取市场行情委托单的状态信息,并发送给所述行情树搭建模块; 所述行情树搭建模块,用于根据市场行情委托单的状态信息搭建相应的行情树。2.根据权利要求1所述的金融交易行情获取系统,其特征在于: 所述网络协议处理模块、市场行情转换模块、交易簿模块和行情树搭建模块至少其中之一基于FPGA制成,FPGA中内置固化的实现其处理功能的逻辑电路。3.根据权利要求2所述的金融交易行情获取系统,其特征在于: 所述网络协议处理模块基于FPGA制成,包括TCP保持单元和处理单元;其中: 所述TCP保持单元,用于与市场行情端建立空连接链路,接收包含市场行情的网络数据包并将所述网络数据包直接转发至所述处理单元; 所述处理单元,用于对所述网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并将其转发至所述市场行情转换模块。4.根据权利要求2所述的金融交易行情获取系统,其特征在于: 所述网络协议处理模块基于FPGA制成,包括TCP保持单元和处理单元;其中: 所述TCP保持单元,用于与市场行情端建立空连接链路,接收所述市场行情数据包并将所述市场行情数据包直接丢弃; 所述处理单元设置在所述市场行情端与所述TCP保持单元之间,用于将从所述市场行情端接收的网络数据包转发给所述TCP保持单元,同时将接收的网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。5.根据权利要求2所述的金融交易行情获取系统,其特征在于: 所述网络协议处理模块基于FPGA制成,包括信息分配单元、TCP保持单元和处理单元;其中: 所述信息分配单元连接市场行情端、TCP保持单元和处理单元,用于在市场行情端和TCP保持单元之间转发数据,并将市场行情端发送给TCP保持单元的数据复制给所述处理单元; 所述TCP保持单元,用于与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃; 所述处理单元,用于接收所述信息分配单元复制的包含市场行情的网络数据包并按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。6.根据权利要求2所述的金融交易行情获取系统,还包括设置在FPGA之外的信息分配单元和TCP保持单元; 所述信息分配单元连接市场行情端、TCP保持单元和网络协议处理模块,用于在市场行情端和TCP保持单元之间转发数据,并将市场行情端发送给TCP保持单元的数据复制给所述网络协议处理模块; 所述TCP保持单元,用于与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃; 所述网络协议处理模块基于FPGA制成,用于接收所述信息分配单元复制的包含市场行情的网络数据包并按照特定的网络层协议进行解析处理,解析出市场行情数据包,同时将解析出的市场行情数据包发送至所述市场行情转换模块。7.根据权利要求3?6中任意一项所述的金融交易行情获取系统,其特征在于: 所述处理单元按照特定的网络层协议对数据链路层数据包进行解析,解析出所述市场行情数据包的序列码,所述处理单元根据所述序列码对所述市场行情数据包进行乱序处理获取有序的市场行情数据包。8.根据权利要求3?6中任意一项所述的金融交易行情获取系统,其特征在于: 所述交易簿模块从所述市场行情数据中获取市场行情委托单的状态信息,同时对委托单业务进行乱序处理; 所述状态信息包括委托单的周期信息和当前状态信息。9.根据权利要求3?6中任意一项所述的金融交易行情获取系统,还包括:输入输出模块,用于连接所述行情树搭建模块和外部设备; 所述外部设备为行情服务管理系统,用户通过所述行情服务管理系统查询所述交易行情获取系统内部的市场行情信息。10.根据权利要求3?6中任意一项所述的金融交易行情获取系统,还包括:寄存器模块,用于存储及配置行情树搭建时所需参数,并存储所述金融交易行情获取系统其他模块的运行状态数据。11.一种金融交易行情获取方法,包括: 行情信息接收步骤,接收网络发送的包括市场行情信息网络数据包,并解析出市场行情数据包; 市场行情转换步骤,用于按照特定的市场数据协议从所述行情信息接收步骤解析出的市场行情数据包中解析出市场行情信息; 交易簿获取步骤,用于对所述市场行情转换步骤中解析出的市场行情信息进行分析获取市场行情委托单的状态信息; 行情树搭建步骤,利用所述交易簿获取步骤中获取的市场行情委托单的状态信息搭建相应的行情树。12.根据权利要求11所述的金融交易行情获取方法,其特征在于: 所述行情信息接收步骤、市场行情转换步骤、交易簿获取步骤和行情树搭建步骤中至少其中之一通过内置逻辑电路的FPGA装置进行处理。13.根据权利要求12所述的金融交易行情获取方法,其特征在于: 所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括空连接建立步骤和网络层处理步骤;其中: 所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收包含市场行情的网络数据包并将所述网络数据包直接转发至处理单元; 所述网络层处理步骤,处理单元将接收到的所述网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并转发至市场行情转换模块。14.根据权利要求12所述的金融交易行情获取方法,其特征在于: 所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括网络层处理步骤和空连接建立步骤;其中: 所述网络层处理步骤,处理单元接收市场行情端发送的网络数据包转发至TCP保持单元,同时处理单元将接收的网络数据包按照特定的网络层协议进行解析处理,并将解析出市场行情数据包转发至市场行情转换模块; 所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收网络数据包并将所述网络数据包直接丢弃。15.根据权利要求12所述的金融交易行情获取方法,其特征在于: 所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,包括信息分配步骤、网络层处理步骤和空连接建立步骤;其中: 所述信息分配步骤,信息分配单元将市场行情端发送给TCP保持单元的包含市场行情的网络数据包复制给处理单元; 所述空连接建立步骤,TCP保持单元与市场行情端建立空连接链路,所述TCP保持单元接收包含市场行情的网络数据包并将所述网络数据包直接丢弃; 所述网络层处理步骤,处理单元将接收的信息分配单元复制的包含市场行情的网络数据包按照特定的网络层协议进行解析处理,解析出市场行情数据包并转发至所述市场行情转换模块。16.根据权利要求12所述的金融交易行情获取方法,还包括:信息分配步骤和空连接建立步骤;所述信息分配步骤通过内置逻辑电路的FPGA装置或软件进行处理,信息分配单元将市场行情端发送给TCP保持单元的含有市场行情的网络数据包复制给网络协议处理模块;所述空连接建立步骤,通过内置逻辑电路的FPGA装置或软件进行处理,TCP保持单元与市场行情端建立空连接链路,从市场行情端接收包含市场行情的网络数据包并将所述网络数据包直接丢弃; 所述行情信息接收步骤通过内置逻辑电路的FPGA装置进行处理,网络协议处理模块接收信息分配单元复制的包含市场行情的网络数据包按照特定的网络层协议进行解析,解析出市场行情数据包并转发至所述市场行情转换模块。17.根据权利要求13?16中任意一项所述的金融交易行情获取方法,其特征在于: 在所述网络层处理步骤中,处理单元按照特定的网络层协议将所述数据链路层数据包解析出市场行情数据包,并解析出所述市场行情数据包的序列码,所述处理单元根据所述序列码对所述市场行情数据包进行乱序处理获取有序的市场行情数据包。18.根据权利要求13?16中任意一项所述的金融交易行情获取方法,其特征在于: 在所述交易簿获取步骤中,从所述市场行情信息中获取市场行情委托单的状态信息; 所述状态信息包括委托单的周期信息和当前状态信息。
【文档编号】G06Q40/04GK105989539SQ201510605753
【公开日】2016年10月5日
【申请日】2015年9月22日
【发明人】柳峰
【申请人】盛立金融软件开发(杭州)有限公司