基于SOCFPGA的加速金融交易系统及方法与流程

文档序号:14837129发布日期:2018-06-30 12:53阅读:344来源:国知局

本发明涉及一种金融交易系统,具体涉及一种基于SOC FPGA的加速金融交易系统及方法。



背景技术:

随着证券、期货、外汇等金融业务和电子化交易的蓬勃发展,市场和用户对程序化交易和速度快的高频交易有着越来越紧迫的需求。目前程序化交易的实现方法主要有两种,一种是完全用软件实现的交易系统,另一种是基于硬件加速、软件处理大多业务的系统。这两种方法实现的交易系统存在以下缺陷:

1.完全用软件实现的交易系统实时性最差,处理业务存在较大的延迟,通常有毫秒级别,不能满足高频交易用户快速获取行情、快速下单和成交的需求。

2.基于硬件加速、软件处理业务的交易系统,相比完全用软件实现的交易系统,实时性有很大提高,能将业务处理延迟降低至数百微秒,不过仍然有进一步提升实时处理能力的空间。这种构架的系统通常由服务器和硬件加速器组成,服务器cpu实现软件功能,硬件加速器处理实时业务,最大延迟来自cpu处理器和硬件加速器互联之间的链路延迟。

3.由服务器和硬件加速器构成的交易系统,系统稳定性存在不确定性,特别是用高速串行总线互联的系统(例如pcie总线)。另外,该构架的交易系统在成本和功耗上都有较大的负担。



技术实现要素:

有鉴于此,有必要提供一种能够实现硬件加速,解决软件交易系统延迟大、实时性不满足需求问题的金融交易系统。

本发明提供一种基于SOC FPGA的加速金融交易系统,所述基于SOC FPGA的加速金融交易系统包括硬件逻辑模块和软件应用模块,其中,所述硬件逻辑模块包括市场行情解析单元、订单操作管理单元、风险控制单元、自动交易策略单元,所述软件应用模块设置在FPGA内嵌高速ARM处理器中;

所述市场行情解析单元用于接收处理来自交易所的市场数据,从中解析出市场产品实时信息,并将解析的数据同时发送给ARM处理器和自动交易策略模块;

所述自动交易策略单元用于收到行情解析数据后,根据产品和订单类型将数据送入对应的策略执行电路,由策略执行电路对数据按照相关算法的计算结果生成执行相关策略的系统订单数据,发送给风险控制模块;

所述软件应用模块用于使用户的策略程序通过API接口读取ARM处理器中的行情解析数据,根据用户自定义策略算法生成相应的用户订单数据,并将用户订单数据发给风险控制单元;

所述风险控制单元用于接收来自软件应用模块的用户订单数据和自动交易策略单元生成的系统订单数据,根据设定的规则对用户订单数据和系统订单数据进行检测,并将检测合规的订单数据送给订单操作管理单元;

所述订单操作管理单元用于接收风险控制单元检测通过的订单数据,统一对来自不同订单源的订单数据进行管理,并根据金融交易协议组建协议数据包发送给交易所。

一种基于SOC FPGA的加速金融交易方法,所述基于SOC FPGA的加速金融交易方法以下步骤:

S1、将市场行情解析策略、订单操作管理策略、风险控制策略、自动交易策略导入SOC FPGA的硬件逻辑电路中,生成相应的市场行情解析逻辑电路、订单操作管理逻辑电路、风险控制逻辑电路、自动交易策略逻辑电路,同时将软件应用策略导入SOC FPGA中的高速ARM处理器中;

S2、所述市场行情解析逻辑电路接收处理来自交易所的市场数据,从中解析出市场产品实时信息,并将解析的数据同时发送给ARM处理器和自动交易策略逻辑电路中;

S3、所述自动交易策略逻辑电路根据产品和订单类型将数据送入对应的策略执行电路,由策略执行电路对数据按照相关算法的计算结果生成执行相关策略的系统订单数据;

S4、所述软件应用策略使用户的策略程序通过API接口读取ARM处理器中的行情解析数据,根据用户自定义策略算法生成相应的用户订单数据;

S5、所述风险控制逻辑电路根据设定的规则对来自软件应用模块的用户订单数据和自动交易策略单元生成的系统订单数据进行检测,并将检测合规的订单数据送给订单操作管理单元;

S6、所述订单操作管理逻辑电路统一对检测合规的订单数据进行管理,并根据金融交易协议组建协议数据包发送给交易所。

本发明所述基于SOC FPGA的加速金融交易系统及方法,其采用基于FPGA加ARM构架的SOC FPGA,将硬件加速和软件业务集成到一片芯片上,从而实现通过FPGA内部的硬件逻辑电路实现市场行情数据获取和解析、订单管理和操作、风险控制及部分交易策略,通过并行计算和高速处理极大降低了用软件实现同样功能产生的延迟,实现硬件加速的作用,解决软件交易系统延迟大、实时性不满足需求的问题,并通过软件实现的高速API和交易管理功能,分别为高频用户和普通用户提供了接入交易系统的接口,方便不同用户根据需求进行合适的选择,且内嵌处理器和硬件逻辑模块采用高速总线互联,链路距离极短,有效降低了系统总延迟,提升了实时性能。

附图说明

图1是本发明所述基于SOC FPGA的加速金融交易系统的模块控制框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于SOC FPGA的加速金融交易系统,如图1所示,所述基于SOC FPGA的加速金融交易系统包括硬件逻辑模块和软件应用模块,其中,所述硬件逻辑模块包括市场行情解析单元、订单操作管理单元、风险控制单元、自动交易策略单元,所述软件应用模块设置在FPGA内嵌高速ARM处理器中。

所述市场行情解析单元用于接收处理来自交易所的市场数据,从中解析出市场产品实时信息,所述市场产品实时信息包括市场上的产品类型、价格、数量和订单等信息,并将解析的数据同时发送给ARM处理器和自动交易策略模块;具体的,所述市场行情解析单元将市场产品实时信息通过AMBA互联总线送给ARM处理器,并通过DMA方式将数据存入外部DDR存储器。

所述自动交易策略单元用于收到行情解析数据后,根据产品和订单类型将数据送入对应的策略执行电路,由策略执行电路对数据按照相关算法的计算结果生成执行相关策略的系统订单数据,发送给风险控制模块。具体的,市场上有不同的产品,比方说期货产品里的棉花、大豆、黄金、石油等,对于不同的产品,对应的策略执行电路也是不同的。当所述自动交易策略单元根据行情解析数据判断出该数据为棉花产品数据,则会把上述解析的数据送给执行棉花产品对应的策略执行电路,例如蝶式套利;所述蝶式套利实现的算法就是买近期月份的棉花产品,卖中期月份产品,还要买远期月份的棉花产品,或者是卖近期和远期月份棉花产品,买中间月份产品,两种方式买卖的数量需要相等。如果所述自动交易策略单元判断出出该数据为石油产品数据,则会把解析的数据送给石油产品对应的策略执行电路,例如说追踪止损。对于石油产品类的追踪止损策略,就是只要检测到解析的石油产品行情数据的价格是上涨的,就产生新价格的石油产品订单去买该产品;当检测到石油价格下降到一个百分比时,比方说最高价格的90%,马上生成持有的石油产品的卖单。根据上述策略执行电路算法生成的系统订单数据包括买卖产品类型、价格、数量等数据。

所述软件应用模块用于使用户的策略程序通过API接口读取ARM处理器中的行情解析数据,根据用户自定义策略算法生成相应的用户订单数据,并将用户订单数据发给风险控制单元。具体的,当用户的策略程序需要获取行情数据时,调用系统的API函数,API函数通过参数传递、内存复制等操作将内存数据的地址传给用户的策略程序,则用户的策略程序就能读取存储在该地址处的数据。进一步的,所述软件应用模块包括数据筛选单元、数据比较单元、订单生成单元;所述数据筛选单元用于对市场行情解析单元解析的数据进行筛选,选择感兴趣的产品信息;所述数据比较单元用于根据用户自定义策略算法将筛选得到的产品信息和预先设定的相应产品信息进行比较和计算,判断出是否根据此价格进行下单操作;所述订单生成单元用于根据数据比较单元的判断结果生成用户订单数据。

所述风险控制单元用于接收来自软件应用模块的用户订单数据和自动交易策略单元生成的系统订单数据,根据设定的规则对用户订单数据和系统订单数据进行检测,并将检测合规的订单数据送给订单操作管理单元。所述检测的项目包括产品类型是否正确,价格是否合理,数量是否过大或过小等。

所述风险控制单元还包括一握手子单元,所述握手子单元用于在订单数据检测合规后,向订单操作管理单元发送一请求处理信号,根据订单操作管理单元反馈的握手信号判断是否向订单操作管理单元发送订单数据。具体的,如果订单操作管理单元没有处理其他业务,则反馈的握手信号置为低电平,即风险控制单元可以发送订单数据;如果订单模块正处理其他业务,则反馈的握手信号置为高电平,风险控制单元等待,直至反馈的握手信号置为低电平。

所述订单操作管理单元用于接收风险控制单元检测通过的订单数据,统一对来自不同订单源的订单数据进行管理,并根据金融交易协议组建协议数据包发送给交易所。具体的,所述订单操作管理单元将新的订单数据写进用于订单存储的orderbook中,然后再将订单的类型、数量、价格等数据和协议类型等一起组成一个数据包;当订单操作管理单元检测到发过来的订单数据中操作类型的字段是修改订单时,则根据接收到的订单ID从orderbook中取出该订单原来的数据,用新的价格、数量、产品类型等数据替换原来的,并组建协议数据包发送给交易所,同时再写进orderbook中;当检测到是删除订单命令时,组包发出取消订单的协议数据包,同时也删除存在orderbook中的该订单数据。

所述订单操作管理单元还包括一反馈解析子单元,所述反馈解析子单元用于接收交易所发回的反馈信息,并对所述反馈信息进行解析,判断发送的订单数据是否执行成功。

本发明所述基于SOC FPGA的加速金融交易系统及方法,其采用基于FPGA加ARM构架的SOC FPGA,将硬件加速和软件业务集成到一片芯片上,从而实现通过FPGA内部的硬件逻辑电路实现市场行情数据获取和解析、订单管理和操作、风险控制及部分交易策略,通过并行计算和高速处理极大降低了用软件实现同样功能产生的延迟,实现硬件加速的作用,解决软件交易系统延迟大、实时性不满足需求的问题,并通过软件实现的高速API和交易管理功能,分别为高频用户和普通用户提供了接入交易系统的接口,方便不同用户根据需求进行合适的选择,且内嵌处理器和硬件逻辑模块采用高速总线互联,链路距离极短,有效降低了系统总延迟,提升了实时性能。

本发明所述基于SOC FPGA的加速金融交易系统及方法,利用SOC FPGA在一片芯片内集成了硬件逻辑电路和高速处理器这一构架优势,同时实现了硬件加速和软件处理业务的功能,较大降低了系统成本和整体功耗,系统稳定性更加可靠。另外由于内嵌ARM处理器和硬件逻辑电路在一片芯片内,互联的总线长度只有纳米级别,而且采用的是高速AMBA总线,极大降低了处理器和硬件电路之间的链路延迟,从而降低整个交易系统的延迟,带来实时性和总体性能的显著提高。

所述SOC FPGA的硬核处理器的总线驱动包括与FPGA逻辑电路互联总线驱动和包括DDR、Flash等外设驱动,主要实现对外设寄存器的读写访问操作和数据传输、中断处理等功能。驱动软件接收上层业务软件的消息指令,通过总线对逻辑电路寄存器配置和状态值读取,控制各硬件功能模块的操作,监控实时状态。另外总线驱动会将行情解析数据存进内存,通过地址指针操作供业务软件读取和处理,同时能将业务软件生成的用户订单通过总线传送给硬件逻辑模块处理。

所述API接口向上提供用户应用程序接口,向下直接和底层驱动交互,实现对硬件加速功能的操作和控制。具体实现由内核态和用户态两部分程序组成,内核态程序负责和驱动的消息、数据传递,用户态程序编译成共享库供用户应用程序直接调用,内核态和用户态程序的命令参数和数据传递通过linux文件机制实现,对批量块数据传输通过内存拷贝实现。具体的,用户应用程序调用查看行情的API函数,控制命令和数据从应用态传递到内核态,内核态程序调用驱动接口从硬件逻辑模块读取行情数据到内存,再通过内存拷贝复制到用户态内存,返回内存指针到用户程序,直接获取行情数据。用户应用程序对行情数据处理并根据自定义交易策略设计的程序生成用户订单,自上而下传送消息到内核态,并通过内存拷贝复制订单数据到内核态内存,最后经驱动发送订单数据给硬件逻辑模块。

根据上述基于SOC FPGA的加速金融交易系统,本发明还提供一种基于SOC FPGA的加速金融交易方法,所述基于SOC FPGA的加速金融交易方法以下步骤:

S1、将市场行情解析策略、订单操作管理策略、风险控制策略、自动交易策略导入SOC FPGA的硬件逻辑电路中,生成相应的市场行情解析逻辑电路、订单操作管理逻辑电路、风险控制逻辑电路、自动交易策略逻辑电路,同时将软件应用策略导入SOC FPGA中的高速ARM处理器中;

S2、所述市场行情解析逻辑电路接收处理来自交易所的市场数据,从中解析出市场产品实时信息,并将解析的数据同时发送给ARM处理器和自动交易策略逻辑电路中;具体的,所述市场行情解析逻辑电路将市场产品实时信息通过AMBA互联总线送给ARM处理器,并通过DMA方式将数据存入外部DDR存储器;

S3、所述自动交易策略逻辑电路根据产品和订单类型将数据送入对应的策略执行电路,由策略执行电路对数据按照相关算法的计算结果生成执行相关策略的系统订单数据;

S4、所述软件应用策略使用户的策略程序通过API接口读取ARM处理器中的行情解析数据,根据用户自定义策略算法生成相应的用户订单数据;

S5、所述风险控制逻辑电路根据设定的规则对来自软件应用模块的用户订单数据和自动交易策略单元生成的系统订单数据进行检测,并将检测合规的订单数据送给订单操作管理单元;

S5a、在订单数据检测合规后,向订单操作管理单元发送一请求处理信号,根据订单操作管理单元反馈的握手信号判断是否向订单操作管理单元发送订单数据;

S6、所述订单操作管理逻辑电路统一对检测合规的订单数据进行管理,并根据金融交易协议组建协议数据包发送给交易所;

S6a、接收交易所发回的反馈信息,并对所述反馈信息进行解析,判断发送的订单数据是否执行成功。

其中,所述步骤S4包括以下分步骤:

S41、对市场行情解析单元解析的数据进行筛选,选择感兴趣的产品信息;

S42、将筛选得到的产品信息和预先设定的相应产品信息进行比较和计算,判断出是否根据此价格进行下单操作;

S43、根据数据比较单元的判断结果生成用户订单数据。

以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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