一种基于FPGA的期货交易系统及方法技术方案

技术编号:16645920 阅读:1979 留言:0更新日期:2017-11-26 19:43
本发明专利技术属于金融通信技术领域,公开了一种基于FPGA的期货交易系统及方法,其系统包括基于FPGA实现的订单数据接收解析,订单管理,风险控制、订单组包和网络协议栈;本发明专利技术提供的基于FPGA的期货交易系统及方法,利用FPGA硬件对交易订单数据进行解析和组包,与现有技术使用纯软件的方式来处理订单交易的方案相比较而言,避免了由计算机内核软件形式的数据解析带来的延迟,解决了现有普通期货交易系统不能满足用户对于高频交易速度要求的问题。

Futures trading system and method based on FPGA

The invention belongs to the field of financial communication technology, and discloses a futures trading system and method based on FPGA, the system includes order implementation FPGA data reception and analysis, based on the order management, risk control, order packet and network protocol stack; futures trading system and method based on FPGA provided by the invention, analyze and group the package of trading orders data using FPGA hardware, and existing technology using pure software way to deal with the order transaction scheme comparison, to avoid the delay caused by the data analysis of computer kernel software form, solves the existing common futures trading system can not meet user requirements for high-frequency trading speed problems.

【技术实现步骤摘要】
一种基于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硬件对交易订单数据进行解析和组包,与现有技术使用纯软件的方式来处理订单交易的方案相比较而言,避免了由计算机内核软件形式的数据解析带来的延迟,解决了现有普通期货交易系统不能满足用户对于高频交易速度要求的问题;(本文档来自技高网...
一种基于FPGA的期货交易系统及方法

【技术保护点】
一种基于FPGA的期货交易系统,其特征在于,包括订单数据解析模块、订单管理模块、风险控制模块、订单数据组包模块和网络连接维护模块;所述订单数据解析模块用于根据协议从接收到的用户订单中解析出订单执行信息;所述订单管理模块用于在收到交易所对订单信息的确认消息后更新订单薄,并将订单簿的历史数据保存在数据库中;所述风险控制模块用于根据行情价格数据、用户端设定的价格范围以及用户端设定的单笔订单大小进行订单风险判定,拦截判定为风险的订单并反馈出错消息到用户端;所述订单数据组包模块用于将包括新建订单、修改订单、删除订单、请求获取订单状态的订单数据的组包;网络连接维护模块用于进行网络协议栈的维护;所述期货交易系统基于FPGA实现,通过PCIE接口与外部服务器实现数据交互。

【技术特征摘要】
1.一种基于FPGA的期货交易系统,其特征在于,包括订单数据解析模块、订单管理模块、风险控制模块、订单数据组包模块和网络连接维护模块;所述订单数据解析模块用于根据协议从接收到的用户订单中解析出订单执行信息;所述订单管理模块用于在收到交易所对订单信息的确认消息后更新订单薄,并将订单簿的历史数据保存在数据库中;所述风险控制模块用于根据行情价格数据、用户端设定的价格范围以及用户端设定的单笔订单大小进行订单风险判定,拦截判定为风险的订单并反馈出错消息到用户端;所述订单数据组包模块用于将包括新建订单、修改订单、删除订单、请求获取订单状态的订单数据的组包;网络连接维护模块用于进行网络协议栈的维护;所述期货交易系统基于FPGA实现,通过PCIE接口与外部服务器实现数据交互。2.如权利要求1所述的期货交易系统,其特征在于,外部服务器通过PCIE接口将用户端的信息发送给所述期货交易系统,通过期货交易系统进行订单管理处理、风险控制、订单组包、网络连接维护,并将订单市场数据通过QSFP+接口发送到外部交易所;外部市场数据通过QSFP+接口接入所述期货交易系统,在格式转换后进行数据解析获得订单数据。3.如权利要求1或2所述的期货交易系统,其特征在于,还包括PCIe总线控制器,10GPHY,DMA控制器,DDR3/QDR控制器,BlockRAM,10GigEMAC;所述PCIe总线控制器具有连接外部CPU及内存的接口,10GPHY具有连接QSFP+用于订单收发的接口;所述PCIe总线控制器用于与外部服务器互联实现数据交互;所述10GPHY作为物理接口收发器用于数据收发;DMA控制器用于在接收到订单数据更新时发出DMA操作请求,申请将订单数据存入外部服务器;DDR3/QDR控制器用于存储解析后的订单数据;所述BlockRAM用于将订单数据缓存,以便于通过DDR3/QDR控制器将数据存入DDR3或QDR中;所述10GMAC用于连接物理层的物理介质。4.如权利要求1或2所述的期货交易系统,其特征在于,所述订单管理模块包括订单更新单元和用户端交互单元;所述订单更新单元用于实现用户订单的新增、取消、修改和查找;所述用户端交互单元用于将用户端发送的订单消息通过PCIE接口发送到订单管理模块,并用于将订单管理模块发送的订单执行消息发送到用户端。5.如权利要求1或2所述的期货交易系统,其特征在于,所述网络连接维护模块包括TCP解包单...

【专利技术属性】
技术研发人员:杨涛
申请(专利权)人:武汉旷腾信息技术有限公司
类型:发明
国别省市:湖北,42

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

1