一种基于FPGA的期货交易系统及方法与流程

文档序号:13006441阅读:599来源:国知局
一种基于FPGA的期货交易系统及方法与流程

本发明属于金融通信技术领域,更具体地,涉及一种基于fpga的期货交易系统及方法。



背景技术:

随着期货交易的程序化的日益普及,越来越多的期货交易通过计算机程序自动完成,这极大的提高了交易完成的效率,更快的下单意味着更高的成交概率。在期货交易,尤其是高频交易中,更快的交易系统,意味着可以更早地得到交易策略的执行,从而获取交易的主动权。

传统的期货交易方案使用纯软件的方式来实现订单交易,由计算机软件通过交易策略计算以及风险控制评估后得到有效数据,获得有效数据后组包成金融通信领域专用交易数据包,再通过内核集成的以太网协议栈对交易数据包组包成市场订单数据包,并通过计算机万兆以太网口发送市场订单数据包;这种方案引入的软件时延大都在几百微秒以上,难以满足期货交易中对交易数据进行快速收发订单的需求,无法在交易市场上抢占先机。随着高频交易的逐步推进,市场迫切地需要一种既能保障交易安全又能保障交易速度的期货交易系统及方法。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于fpga的期货交易系统及方法,其目的在于提高期货交易中订单接收和发送的速度。

为实现上述目的,按照本发明的一个方面,提供了一种基于fpga的期货交易系统,包括订单数据解析模块、订单管理模块、风险控制模块、订单数据组包模块和网络连接维护模块;订单管理模块具有用于增加、删除、修改、查找的接口;

其中,订单数据解析模块用于根据协议从接收到的用户订单中解析出订单执行信息;

订单管理模块用于保存订单信息,并在收到交易所对订单信息的确认消息后更新订单薄,将订单簿的历史数据保存在数据库中;

风险控制模块用于进行订单风险判断及控制;根据行情价格数据、用户端设定的价格范围,以及用户端设定的单笔订单大小进行风险判断;当订单的价格和/或数量超过设定范围而判定订单有风险时,将该用户订单拦截,并将出现的错误消息反馈给用户端;

订单数据组包模块用于完成新建订单、修改订单、删除订单、请求获取订单状态,以及链路维护中的登录、退出、心跳数据订单的组包;网络连接维护模块用于进行网络协议栈的维护;

上述的期货交易系统基于fpga实现,通过pcie接口与外部服务器互联实现数据交互:外部服务器通过pcie接口将用户端的信息发送给期货交易系统,通过期货交易系统进行订单管理处理、风险控制、订单组包、网络连接维护;并将订单市场数据通过qsfp+接口发送到外部交易所;市场数据通过qsfp+接口接入期货交易系统,在格式转换后进行数据解析获得订单数据。

优选的,上述期货交易系统,还包括pcie总线控制器,10gphy(physicallayer,物理层),dma(directmemoryacces,直接内存存取)控制器,ddr3/qdr控制器,blockram,10gigemac(mediaaccesscontrol,媒体访问控制子层协议);

其中,pcie总线控制器具有连接外部cpu及内存的接口,10gphy具有连接qsfp+用于订单收发的接口;

pcie总线控制器用于与服务器互联实现数据交互;

10gphy作为物理接口收发器用于将收到的mac并行数据转化为串行数据流,再按照物理层的编码规则把数据编码,并转换为模拟信号发送;对接收的数据的处理流程反之;

dma控制器用于当fpga接收到订单数据更新时发出dma操作请求,申请将订单数据写入服务器软件部分内存;

ddr3/qdr控制器用于实现fpga对解析后的订单数据存储;

blockram用于将订单数据缓存,以便于通过ddr3/qdr控制器将数据存入ddr3或qdr中;10gmac用于控制与连接物理层的物理介质。

优选的,上述的期货交易系统,其订单管理模块包括订单更新单元和用户端交互单元;

其中,订单更新单元用于完成用户订单的新增、取消、修改、查找;所述用户订单涉及不同的交易所或不同的市场;

用户端交互单元用于将用户端发送的订单消息通过pcie接口发送到订单管理模块,并用于将订单管理模块发送的订单执行消息发送到用户端。

优选的,上述期货交易系统,其网络连接维护模块包括tcp解包单元、tcp链路维护管理单元、tcp存储单元和tcp组包单元;

其中,tcp解包单元用于将接收到的包含有用户订单的网络数据包解包为包头数据和除包头以外的包含用户订单的传输数据,并将包头数据转发至tcp链路维护单元,将包含用户订单的传输数据转发至存储单元;

tcp维护管理单元用于对包头数据进行tcp维护,包括对tcp包头数据分配动态的session号,并通过定时器对其进行tcp传输序列号、tcp传输窗口和tcp数据定时重传的设置;并将维护后的包头数据转发至tcp组包单元;tcp存储单元用于缓存除包头数据以外的包含用户订单的传输数据;tcp组包单元用于将包头数据与存储单元中缓存的数据进行组包。

按照本发明的另一方面,提供了一种基于fpga的期货交易方法,包括如下步骤:

(1)网络连接维护解析步骤;对接收到的用户订单进行网络数据包处理;由于采用fpga来实现tcp网络协议栈,完全独立于cpu工作,并独立完成tcp/ip协议数据的处理和传输;

具体地,接收交易所发送的网络数据包并发送至网络协议栈的网络层进行处理,并根据配置选择是否过滤mac地址;在网络层首先对接收到的ip数据包进行tcp包头解包,解析出包头数据中的ip地址、tcp帧头及端口数据信息,并将除tcp包头数据外的包含用户订单的传输数据缓存,并对tcp包头数据进行校验;

(2)订单接收解析存储步骤;通过网络连接维护解析获取到订单数据后,按照交易所的金融信息交换(financialinformationexchange,fix)协议,根据订单的类型对订单数据再次解析,获取到订单的信息存储在ddr3中;

(3)订单处理;保存所有工作的订单,对外提供增加、删除、修改、查找的相关接口;包含价格和数量的订单信息在收到交易所确认消息后更新,其历史数据保存在数据库中;核对用户订单的正确性,对核对不通过的订单反馈消息到用户终端,对核对通过的用户订单建立并维护用户订单的会话数据传输。

(4)风险控制步骤;对投放至交易市场之前的用户订单和来自交易市场的市场回单进行风控处理;通过行情价格和用户端设定价格范围,以及设定的单笔订单大小作风险控制判断。

(5)订单组包发送步骤。对用户订单数据按照交易所的金融信息交换协议组包成订单数据:将对应的tcp包头数据与除包头外的包含用户订单的传输数据进行组包,通过光网口将市场数据发送到交易市场对应的端口;

(6)网络连接维护组包步骤;对tcp包头数据进行如下维护管理:对tcp包头数据分配动态的session号,并通过定时器对其进行tcp传输序列号、tcp传输窗口和tcp数据定时重传的设置;

将维护管理更新之后的tcp包头数据与缓存的除tcp包头数据外的包含用户订单的传输数据进行组包。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供的期货交易系统及方法,利用fpga硬件对交易订单数据进行解析和组包,与现有技术使用纯软件的方式来处理订单交易的方案相比较而言,避免了由计算机内核软件形式的数据解析带来的延迟,解决了现有普通期货交易系统不能满足用户对于高频交易速度要求的问题;

(2)本发明提供的期货交易系统及方法,利用fpga的并行计算能力,完成用户新建订单、修改订单、查找订单、撤消订单的处理,以及交易市场回单的自动管理;通过风险控制模块对用户投放到交易所之前的订单做规则审查,预测用户订单成交后可能引发的问题,以便及时拦截,实现交易风险最小化;

(3)本发明提供的期货交易系统及方法,利用fpga实现的全硬件的tcp协议栈,完全独立于cpu工作,独立完成tcp/ip协议数据的处理,整个通信链路都由fpga内部独立完成,不占有cpu资源,极大的降低了网路传输的时间,能够更快的将用户订单回传到交易订单管理系统。

附图说明

图1是本发明实施例提供的期货交易系统的整体框架结构图;

图2是本发明实施例提供的期货交易方法的流程图;

图3是本发明实施例提供的期货交易系统的fpga内部功能框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1为本发明实施例提供的期货交易系统整体系统框图,实施例提供的期货交易系统,基于fpga实现;通过pcie接口与外部服务器互联实现数据交互:外部服务器通过pcie接口将用户端的信息发送给期货交易系统,通过期货交易系统的fpga进行订单管理处理、风险控制、订单组包、网络连接维护;并将订单市场数据通过qsfp+接口发送到外部交易所;交易所的市场数据通过qsfp+接口接入期货交易系统,经格式转换后由fpga实现对市场数据的数据解析,获得订单数据。

基于本发明提供的期货交易系统实现期货交易的方法的流程如图2所示,具体包括如下步骤:

(1)网络连接维护解析步骤;对接收到的用户订单,采用的fpga这种硬件形式来实现tcp网络协议栈,实现对订单数据的网络数据包处理,完全独立于cpu工作,并独立完成tcp/ip协议数据的处理和传输。

接收到交易所发过来的网络数据包会送至网络协议栈的网络层进行处理,并根据配置选择是否过滤mac地址;在网络层首先对接收到的ip数据包进行tcp包头解包,解析出包头数据中的ip地址、tcp帧头及端口数据信息,并将除tcp包头数据外的包含用户订单的传输数据缓存,并对tcp包头数据进行校验。

(2)订单接收解析存储步骤;通过网络连接维护解析获取到订单数据后,按照交易所的金融信息交换协议,根据订单的类型对订单数据再次解析,获取到订单的信息存储在ddr3中。

(3)订单管理处理步骤;核对用户订单的正确性,对核对不通过的订单反馈消息到用户终端,对核对通过的用户订单建立并维护用户订单的会话数据传输。

(4)风险控制步骤;对投放至交易市场之前的用户订单和来自交易市场的市场回单进行风险控制处理;对用户订单在投放至交易市场之前,预先设定单笔订单大小以及价格范围,用户也可根据需要自行配置相应的仓位和盈亏;利用硬件系统的并行处理特性,通过行情价格计算,当预测到订单有风险时,将用户订单拦截,并将出现的错误消息反馈给用户端。

(5)订单组包发送步骤;对用户订单数据按照交易所的金融信息交换协议组包成订单数据:将对应的tcp包头数据与除包头外的包含用户订单的传输数据进行组包,通过光网口将市场数据发送到交易市场对应的端口。

(6)网络连接维护组包步骤;在网络连接维护组包步骤中,会对tcp包头数据进行如下维护管理:对tcp包头数据分配动态的session号,并通过定时器对其进行tcp传输序列号、tcp传输窗口和tcp数据定时重传的设置;

将维护管理更新之后的tcp包头数据与缓存的除tcp包头数据外的包含用户订单的传输数据进行组包。

本实施例中,期货交易系统的fpga内部功能框图如图3所示,包括pcie总线控制器,phy(physicallayer,物理层),dma(directmemoryaccess,直接内存存取)控制器,风险控制模块,ddr3/qdr控制器,订单数据管理模块,订单数据组包模块,网络连接维护,订单数据解析模块,blockram,10gigemac,10gphy;

其中,pcie总线控制器具有连接外部cpu及内存的接口,10gphy具有连接qsfp+用于订单收发的接口;

其中,pcie总线控制器用于与服务器互联实现数据交互;

blockram用于将订单数据缓存,以便于通过ddr3/qdr控制器将数据存入ddr3或qdr中。

10gigemac用于控制与连接物理层的物理介质,在发送数据时,将数据以及控制信息以规定的格式发送到物理层,接收数据时,首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息,将订单数据发给订单数据解析模块;

10gphy作为物理接口收发器用于将收到的mac并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,最后变为模拟信号把数据送出去;发送数据的流程是接收数据流程的逆过程。

dma控制器用于当fpga接收到订单数据更新时发出dma操作请求,申请将订单数据写入服务器软件部分内存;

风险控制模块用于根据行情价格和用户端设定价格范围,以及设定的单笔订单大小作风险控制判断,当追踪行情而预测到订单存在风险时停止订单组包,并将用户订单拦截消息反馈至用户端;

ddr3/qdr控制器用于实现fpga对解析后的订单数据存储;

订单数据管理模块用于将市场回单信息反馈至用户端,并用于根据交易所金融信息交易协议对用户订单是否合格进行核对,对合格的用户订单则反馈消息到服务器软件系统,对不合格的用户订单,发送信息处理数据。

订单数据组包模块用于将用户订单数据按照协议组包成订单数据,并用于将对应的tcp包头数据与除包头外的包含用户订单的传输数据进行组包;

网络连接维护实现tcp/ip的网络协议栈功能,用于实现期货交易系统与交易所之间的网络通信;

本实施例中,网络协议栈包括tcp解包单元、tcp链路维护管理单元、tcp存储单元和tcp组包单元;

其中,tcp解包单元用于将接收到的包含有用户订单的网络数据包解包为包头数据和除包头以外的包含用户订单的传输数据,并包头数据和包含用户订单的传输数据分别转发至tcp链路维护单元和存储单元;

tcp维护管理单元用于对包头数据进行tcp维护,包括对tcp包头数据分配动态的session号,并通过定时器对其进行tcp传输序列号、tcp传输窗口和tcp数据定时重传的设置;并将维护后的包头数据转发至tcp组包单元;tcp存储单元用于缓存除包头数据以外的包含用户订单的传输数据;

tcp组包单元用于将包头数据与存储单元中缓存的数据进行组包。

本发明提供的期货交易系统及方法通过fpga实现完整的tcp协议栈,能够完全独立于cpu工作,并行对多路会话进行数据传输的管理,可对用户订单实现更快速的处理。发送包含订单的网络数据包可以多路用户并行发起订单请求,接收到包含订单的网络数据包直接在fpga内部传输,以最快速度解析包含用户订单的网络数据并将用户订单传递给订单数据管理模块。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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