专利名称:面向事件处理的分布式程序化交易系统的制作方法
技术领域:
本发明涉及计算机应用技术领域,具体地,涉及一种面向事件处理的分布式程序化交易系统。
背景技术:
随着中国金融行业的飞速发展,IT系统在金融行业得到了广泛应用,而其中,程序化交易系统正在被更多的投资者接受。在目前的金融市场环境下,各种各样的投资者、投资机构,为了应对目前市场情况的不稳定性,都非常的期待能有一个量化数据处理及交易系统,既能包含高速的精准数据,又能具备高性能、高开放、高前瞻的交易平台。以金融行业中,量化投资交易需要以下这些部分组成:行情数据接入:包括不同数据供应商提供的证券、期货的低频,高频行情数据,国际市场行情数据。资讯数据接入:包括整合和使用不同资讯数据供应商提供的技术面,基本面,消息面的数据。交易性能:包括简单、开放的投资模型量化能力,覆盖多市场多品种金融商品交易能力,高速运算能力,高效下单能力,高稳定性高安全性的架构,符合交易规则。上述功能由于其较高复杂性,存在于市场上多个不同的系统中。而市场上的现有的系统,都在着重开发本领域的单个功能,例如虽然拥有高速运算能力的系统,却缺乏高效的下单性能,导致量化投资的策略无法完美进行。并且,客户在进行量化投资时,往往会想要根据自己的想法和需求打造合适的交易工具,但却又苦于寻找既拥有精准的行情数据、资讯数据,又具备完善的开发能力,并且提供高效的运算和交易能力的系统。
发明内容
针对现有技术中的缺陷,本发明的目的是一个面向事件处理的分布式全市场、全品种、全业务程序化交易平台,系统设计时采用流行的层次式体系结构。为实现上述目的,本发明采用了以下技术方案:一种面向事件处理的分布式程序化交易系统,包括:驱动层、业务核心层、业务应用层以及对外接口,其中:所述驱动层实现整个系统与各种交易系统的数据对接,包括行情数据、资讯数据以及下单管理;所述业务核心层,按业务功能和交互流程将整个系统划分为不同的业务组件群,各组件群之间应用了通信中间件技术,共享内存技术,并实现了组件级颗粒度的负载平衡和HA灾备技术;所述业务应用层设有业务插件模块,该业务插件模块通过所述驱动层的数据对接以及所述对外接口,实现各种交易、账务核算等业务应用环节;
所述对外接口为整个系统提供对外通用接口,包括编程接口、外部系统接入接口、中间件接口等等。所述业务核心层采用负载均衡及分布式计算技术,整个系统内交互以事件流为主导,策略交互以面向事件的原则进行编程,通过开放的事件结构进行事件定义,使用事件处理引擎进行事件打包、解包。不同来源的数据通过带有负载均衡的服务器组和其上构建的多个事件处理引擎,达到分布式数据计算和事件处理的效果,并实时推送事件流到需要这些数据的地方。事件处理模块之间可以进行事件流交互,可以完成流水线型的业务组件。所述业务核心层采用HA技术,HA是高可靠性的服务器集群系统解决方案,支持整个系统的双机备援,防止任意设备故障造成系统瘫痪,提升整个系统的可靠性。本发明中HA颗粒度可以达到组件级。所述业务核心层采用DataPool多源数据缓存技术,用于多数据源时,为系统内部提供统一的数据获取渠道。DataPool多源数据缓存技术可以从多个数据源接收不同速率行情和咨询数据,并实时地在系统内发布。使用行情信息的服务可以从共享内存数据库中取得完整的行情信息,也可以获取更新的数据,从而降低数据传输压力。所述业务核心层采用共享内存数据库(ShmDB)技术,利用系统内存,提供高速,大容量的数据存储空间和方便的数据管理功能。本发明设计了函数调用形式的数据访问,进行查找、更新和删除多年不断的优化,形成数据的动态管理和区域管理。由数据进内存带来的灾难恢复问题,则由专门的·交易保存服务进程在独立的机器上完成,保障了灾难后的恢复。所述驱动层采用OutLimit多通道委托优化技术,通过多通道优化与外部委托接口的接入,系统内有委托请求时,订单管理器通过智能判断当前所有委托通道的负载情况,选择出当前最优的通道把订单发出,以减少延迟、提高委托接口利用率;通过多通道委托优化技术智能管理下单线程,可根据需要划分优先等级;支持同时多个委托接口接入;订单管理器在每日开盘前从数据库中将前一日的结算信息读入所述业务核心层的共享内存,日内委托前的计算全部在所述业务核心层的共享内存中进行数据交换。另外,还可以根据需要对每个委托通道进行流量控制。所述对外接口提供基于Lua的策略编程接口用以在平台上进行各类二次开发,包括策略编辑和业务模块编辑。同时提供基于XML的界面编程接口用以搭配Lua编辑模块的各类Π界面。所述Lua编程语言分为L2C Lua (编译成C++运行于服务器后台)和VM Lua(通过Lua虚拟机运行于终端前台或服务器后台),L2C Lua为交易平台用策略研发语言,特点是运行速度快、稳定性高,适合编辑、驱动各类复杂策略、大型策略,进行大数据量和大计算量的处理。所述VM Lua为投研平台用策略研发语言,特点是可以终端运行、终端调试,图形化程度高,易用性好。搭配财汇数据指标图形化获取工具,适合快速金工建模、快速数据分析、高时效性策略研发。 XML为整个系统前后台共用的界面UI设计语言,提供专用的界面设计器,可进行全图形化、“所见即所得”的设计。本发明所述系统还·包括平台标准模块,该标准模块可以满足客户最基本的平台维护、管理、业务需求,同时支持对模块的修改、定制。与现有技术相比,本发明具有如下的有益效果:本发明提供一种适用于客户根据自己的想法和需求设计的交易平台,该平台通过驱动层可以获得精准的行情数据、资讯数据,并能进行下单以及数据的有效管理;通过业务核心层以及外接接口等具备完善的开发能力,并且提供高效的运算和交易能力的系统;业务核心层采用通信中间件技术、共享内存技术,并实现了组件级颗粒度的负载平衡和HA灾备技术,降低数据传输压力,提升整个系统的可靠性。
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1为为本发明一实施例整体框图;图2为本发明一实施例负载均衡及分布式计算技术示意图;图3为本发明一实施例HA技术示意图;图4为本发明一实施例OutLimit委托优化技术示意图;图5为 本发明一实施例应用系统框图;图6为本发明一实施例工作框图。
具体实施例方式下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。如图1所示,本实施例提供一种面向事件处理的分布式程序化交易系统,包括:驱动层、业务核心层、业务应用层以及对外接口.
1、驱动层所述驱动层实现整个系统与各种交易系统的数据对接,包括行情数据、资讯数据以及下单管理;具体的,驱动层具体实现数据对接内容包括:国内证券、期货集中交易柜台对接;国内融资融券系统对接;国内投资管理平台对接;国内衍生品交易接口对接;第三方交易平台对接;期货CTP高速交易接口对接;直连交易所;证券深证通高速交易接口对接;FIX协议转换、FIX引擎对接;海外交易代理对接;证券DBF行情对接;期货行情对接;DataFeed行情对接;全市场高速行情对接;深交所全息行情对接;财汇资讯数据对接;外部资讯数据对接等。如图4所示,所述驱动层采用OutLimit多通道委托优化技术,通过多通道优化与外部委托接口(柜台)的接入,系统内有委托请求时,订单管理器通过智能判断当前所有委托通道的负载情况,选择出当前最优的通道把订单发出,以减少延迟、提高委托接口利用率;通过多通道委托优化技术智能管理下单线程,可根据需要划分优先等级;支持同时多个委托接口接入;订单管理器在每日开盘前从数据库中将前一日的持仓、资金等结算信息读入所述业务核心层的共享内存,日内委托前的前端检查等计算全部在所述业务核心层的共享内存中进行数据交换。另外,还可以根据需要对每个委托通道进行流量控制。2、业务核心层所述业务核心层,按业务功能和交互流程将整个系统划分为不同的业务组件群,各组件群之间应用了通信中间件技术,共享内存技术,并实现了组件级颗粒度的负载平衡和HA灾备技术。如图2所示,所述业务核心层采用负载均衡及分布式计算技术,整个系统内交互以事件流为主导,策略交互以面向事件的原则进行编程,通过开放的事件结构进行事件定义,使用事件处理引擎进行事件打包、解包。不同来源的数据通过带有负载均衡的服务器组和其上构建的多个事件处理引擎,达到分布式数据计算和事件处理的效果,并实时推送事件流到需要这些数据的地方,如策略、交易通道等。事件处理模块之间可以进行事件流交互(数据通讯),可以完成流水线型的业务组件。如图3所示,所述业务核心层采用HA技术,HA是高可靠性的服务器集群系统解决方案,支持整个系统的双机备援,防止任意设备故障造成系统瘫痪,提升整个系统的可靠性。本发明中HA颗粒度可以达到组件级(如策略的HA)。所述业务核心层采用DataPool多源数据缓存技术,用于多数据源时,为系统内部提供统一的数据获取渠道。因为金融交易行情信息变动快,数据量大,DataPool多源数据缓存技术可以从多个数据源接收不同速率行情和咨询数据,并实时地在系统内发布。使用行情信息的服务可以从共享内存数据库中取得完整的行情信息,也可以获取更新的数据,从而降低数据传输压力。所述业务核心层采用共享内存数据库(ShmDB)技术,利用系统内存,提供高速,大容量的数据存储空间和方便的数据管理功能。由于没有任何磁盘读写操作,访问速度可以提升到极限,一个操作所需时间不到I微秒。本发明设计了函数调用形式的数据访问,既免去了 SQL解析优化的开销,又可以象访问普通的关系型数据库一样,进行查找、更新和删除多年不断的优化,形成数据的动态管理和区域管理。由数据进内存带来的灾难恢复问题,则由专门的交易保存服务进程在独立的机器上完成,保障了灾难后的恢复。3、业务应用层所述业务应用层设有业务插件模块,该业务插件模块通过所述驱动层的数据对接以及所述对外接口,实现各种交易、账务核算等业务应用环节。业务应用层具体可以实现的业务应用环节包括:多层次账户管理体系;证券、期货量化、对冲交易;金融衍生品量化、对冲交易;证券、期货新业务程序化交易;分账户资产跟踪、核算;多部门、多级风控;系统内部清算、对账;估值;等等。4、对外接口所述对外接口为整个系统提供对外通用接口。所述对外接口提供基于Lua的策略编程接口用以在平台上进行各类二次开发,包括策略编辑和业务模块编辑。同时提供基于XML的界面编程接口用以搭配Lua编辑模块的各类UI界面。所述Lua编程语言分为L2C Lua (编译成C++运行于服务器后台)和VM Lua (通过Lua虚拟机运行于终端前台或服务器后台),L2C Lua为交易平台用策略研发语言,特点是运行速度快、稳定性高,适合编辑、驱动各类复杂策略、大型策略,进行大数据量和大计算
量的处理。所述VM Lua为投研平台用策略研发语言,特点是可以终端运行、终端调试,图形化程度高,易用性好。 搭配财汇数据指标图形化获取工具,适合快速金工建模、快速数据分析、高时效性策略研发。XML为整个系统前后台共用的界面UI设计语言,提供专用的界面设计器,可进行全图形化、“所见即所得”的设计。整个系统提供基于平台二次开发(策略、组件模块)的集中研发环境(IDE),包含L2C Lua编辑器、VM Lua编辑器、XML界面设计器、代码管理、版本控制、策略提交、发布、运行控制、权限控制等功能。具体地,对外接口包括基于Lua/XML的平台编程接口 ;IDE研发环境接口 ;投研功能接口 ;Matlab与平台编程语言混编接口 ;0CX终端级外部接入中间件接口(网上交易客户端、基于Matlab、SAS、VBA、C++等语言编辑的各类策略、终端);TCP Server平台级外部接入服务接口(外部系统基于TCP/IP协议接入平台)等。5、平台标准模块所述系统还包括平台标准模块,该标准模块可以满足客户最基本的平台维护、管理、业务需求,同时支持对模块的修改、定制。如图5所示,为本发明应用实例系统框图,说明:客户端通过Gate Way连通服务器,通过丰富的第三方接口,覆盖了大多数量化投资和程序化交易业务需求,精准的数据库数据为交易所的原始行情数据直接通过数据中心的整理,将各交易所的高频行情(Level-2)和深交所的全息行情*数据通过遍布各地的IDC (互联网数据中心)机房,直接推送到本发明平台和终端,已实现将金融投资领域的产、投、研高度整合,通过数据分析工具、策略研发终端、策略驱动引擎、高速处理和高频交易解决方案、丰富的第三方接口、策略展示平台等,覆盖了大多数量化投资和程序化交易业务需求。所有的组件支持分布式部署,中间件通过广播的方式,把消息发送到相应得服务组件,每台独立的机器上都需要部署中间件和OM (共享内存),确保每台机器上的内存数据是一致的。消息中间件支持UDP (用户数据报协议)的广播(支持组播、点对点)和TCP两种方式,策略(应用)与策略之间,策略`与客户端之间都是点对点通讯。如图6所示,为本发明应用实例流程图,说明:客户端可以配置两个策略交易平台网关地址,当网关I线路出问题的时候,客户端根据设定的尝试机制,自动切换到网关2。每个CPS (接入服务)都对应相同的SCS (策略控制服务),当CPSl线路出问题时,CPS2自动连上SCS,提供数据接入服务。(CPS1出现问题,DTS Client通过消息校验机制获得错误信息,在得到错误信息后自动切换到另外一个网关2。)CPS会根据weight (负载量)自动判断哪个SCS为主,哪个SCS为辅,并自动负载均衡SCS上运行的SS (策略服务)数量。SS包括私有策略和公共策略,目前龙软提供部分公共策略。像公共行情策略HDS本身也可以做负载均衡,通过指定不同SCS来运行两个相同的实例,来确保行情数据完整性。SCS支持两种模式,⑶I和Monitor (⑶I SCS负责与客户端的通讯,MONITOR SCS负责与策略的通讯),⑶I模式下,SCS可以执行策略的发布和编译,策略可以在指定SCS⑶I运行的机器上发布(主应用服务器),当主应用服务器出现问题时,备份应服务器上可以通过管理员手动方式进行发布相同的策略。本系统模块部分主要是通过三部分来进行实现:本地策略环境、后台实测环境、后台生产环境。本地策略环境:主要是在本地编写策略,并且不用提交服务器,直接可以在本地来进行回测和调试,也可以把本地的策略来提交到后台来进行回测和演示。本机策略环境分为策略投资库、策略研究、数据提取三个部分:策略投资库指当前客户端所有策略,分为用户策略库和系统策略库2部分。用户策略库中的策略可以新增,修改,删除。系统策略库中的所有策略为系统自带,不可编辑。策略研究可进行策略回测。数据提取可提取资讯数据,通过数据提取向导,可以自动生成取数函数,函数的返回结果可以在界面右下角运行结果中显示。后台实测环境:后台策略 交易平台服务器,连接测试环境。后台实测环境列出了所有当前客户所能连接的策略交易平台的测试环境,对每个交易平台的用户都提供了实测环境的连接。后台生产环境:后台策略交易平台服务器,连接生产环境。后台生产环境列出了所有当前客户所能连接的策略交易平台的生产环境,一般为设在券商现场的生产环境。生产环境可以连接多个。以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
权利要求
1.一种面向事件处理的分布式程序化交易系统,其特征在于,包括:驱动层、业务核心层、业务应用层以及对外接口,其中: 所述驱动层实现整个系统与各种交易系统的数据对接,包括行情数据、资讯数据以及下单管理; 所述业务核心层,按业务功能和交互流程将整个系统划分为不同的业务组件群,各组件群之间应用了通信中间件技术,共享内存技术,并实现了组件级颗粒度的负载平衡和HA灾备技术; 所述业务应用层设有业务插件模块,该业务插件模块通过所述驱动层的数据对接以及所述对外接口,实现各种交易业务应用环节; 所述对外接口为整个系统提供对外通用接口,包括编程接口、外部系统接入接口、中间件接口。
2.根据权利要求1所述的面向事件处理的分布式程序化交易系统,其特征在于,所述业务核心层采用负载均衡及分布式计算技术,整个系统内交互以事件流为主导,策略交互以面向事件的原则进行编程,通过开放的事件结构进行事件定义,使用事件处理引擎进行事件打包、解包;不同来源的数据通过带有负载均衡的服务器组和其上构建的多个事件处理引擎,达到分布式数据计算和事件处理的效果,并实时推送事件流到需要这些数据的地方,事件处理模块之间可以进行事件流交互,完成流水线型的业务组件。
3.根据权利要求1所述的面向事件处理的分布式程序化交易系统,其特征在于,所述业务核心层采用HA技术,HA是高可靠性的服务器集群系统解决方案,支持整个系统的双机备援,防止任意设备故障造成系统瘫痪,提升整个系统的可靠性,HA颗粒度可以达到组件级。
4.根据权利要求1所述的面向事件处理的分布式程序化交易系统,其特征在于,所述业务核心层采用DataPool多源数据缓存技术,用于多数据源时,为系统内部提供统一的数据获取渠道,DataPool多源数据缓存技术从多个数据源接收不同速率行情和咨询数据,并实时地在系统内发布,使用行情信息的服务从共享内存数据库中取得完整的行情信息,获取更新的数据,从而降低数据传输压力。
5.根据权利要求1所述的面向事件处理的分布式程序化交易系统,其特征在于,所述业务核心层采用共享内存数据库技术,利用系统内存,提供高速,大容量的数据存储空间和方便的数据管理,并设计了函数调用形式的数据访问,进行查找、更新和删除多年不断的优化,形成数据的动态管理和区域管理,由数据进内存带来的灾难恢复问题,则由专门的交易保存服务进程在独立的机器上完成。
6.根据权利要求1-5任一项所述的面向事件处理的分布式程序化交易系统,其特征在于,所述驱动层采用OutLimit多通道委托优化技术,通过多通道优化与外部委托接口的接入,系统内有委托请求时,订单管理器通过智能判断当前所有委托通道的负载情况,选择出当前最优的通道把订单发出;通过多通道委托优化技术智能管理下单线程,根据需要划分优先等级;支持同时多个委托接口接入;订单管理器在每日开盘前从数据库中将前一日的结算信息读入所述业务核心层的共享内存,日内委托前的计算全部在所述业务核心层的共享内存中进行数据交换,另外,还可以根据需要对每个委托通道进行流量控制。
7.根据 权利要求1-5任一项所述的面向事件处理的分布式程序化交易系统,其特征在于,所述对外接口提供基于Lua的策略编程接口用以在平台上进行各类二次开发,包括策略编辑和业务模块编辑,同时提供基于XML的界面编程接口用以搭配Lua编辑模块的各类UI界面。
8.根据权利要求7所述的面向事件处理的分布式程序化交易系统,其特征在于,所述Lua编辑模块分为L2C Lua和VM Lua, L2C Lua编译成C++运行于服务器后台,VM Lua通过Lua虚拟机运行于终端前台或服务器后台,进行大数据量和大计算量的处理;所述VM Lua为投研平台用策略研发语言,可以终端运行、终端调试,图形化程度高,搭配财汇数据指标图形化获取工具;XML为整个系统前后台共用的界面Π设计语言,提供专用的界面设计器,可进行全图形化、“所见即所得”的设计。
9.根据权利要求7所述的面向事件处理的分布式程序化交易系统,其特征在于,所述系统提供基 于平台二次开发的集中研发环境,包含L2C Lua编辑器、VM Lua编辑器、XML界面设计器、代码管理、版本控制、策略提交、发布、运行控制、权限控制功能。
10.根据权利要求1-5任一项所述的面向事件处理的分布式程序化交易系统,其特征在于,所述系统还包括平台标准模块,该标准模块可以满足客户最基本的平台维护、管理、业务需求,同时支持对模块的修改、定制。
全文摘要
本发明提供了一种面向事件处理的分布式程序化交易系统,其中驱动层实现整个系统与各种交易系统的数据对接,包括行情数据、资讯数据以及下单管理;业务核心层按业务功能和交互流程将整个系统划分为不同的业务组件群,各组件群之间应用了通信中间件技术,共享内存技术,并实现了组件级颗粒度的负载平衡和HA灾备技术;业务应用层设有业务插件模块,该业务插件模块通过所述驱动层的数据对接以及所述对外接口,实现各种交易、账务核算等业务应用环节;对外接口为整个系统提供对外通用接口。本发明可以获得精准的行情数据、资讯数据;具备完善的开发能力,高效的运算和交易能力,降低数据传输压力,整个系统可靠性高。
文档编号G06Q40/04GK103247003SQ20131018064
公开日2013年8月14日 申请日期2013年5月15日 优先权日2013年5月15日
发明者汪建斌, 石羽, 施勇嘉, 胡春花, 陈朋 申请人:上海大智慧股份有限公司