一种智能交易系统的制作方法

文档序号:14861573发布日期:2018-07-04 07:46阅读:218来源:国知局
一种智能交易系统的制作方法

本发明属于金融证券和期货领域,具体涉及一种智能交易系统。



背景技术:

国债期货作为一类重要的利率期货合约,对市场利率的价格发现,利率风险转移,提高资金使用效率和多样化资产配置方面都有着重要作用。

当前市面上常见的期货类交易系统主要包括两类,一类是基于c++的多线程交易系统;另一类是基于python的事件驱动型的交易系统。目前两类系统的代表分别有openctp和vnpy。基于c++系统的优点是高效,基于python系统的优点是易于使用,但是这两类系统都是偏基础框架类的,它们的内部订单管理系统都是针对策略,同时底层的下单模块也只是对上层的信息做基础的字段补全从而达到符合ctp柜台要求而已,并未涉及到订单和下单的智能处理,投资者在交易过程中,仍然需要花时间进行订单处理,系统的总体性能也有待提高。



技术实现要素:

基于现有技术的上述缺陷,本发明的目的在于提供一种智能交易系统,以解决原有的交易系统不能实现订单和下单的智能化处理,且系统总体性能不高的问题。

为解决上述技术问题,本发明采用的技术方案如下:

一种智能交易系统,所述系统包括:数据初始化模块、策略引擎模块、智能下单模块及数据管理模块,其中,

所述数据初始化模块,分别连接所述策略引擎模块和数据管理模块,所述数据初始化模块,用于从行情接口及交易接口接收的行情数据和交易策略数据建立缓存队列后发送给策略引擎模块;所述数据初始化模块还将所述行情数据和交易策略数据生成日志信息发送给数据管理模块进行存储;

所述策略引擎模块,分别连接所述数据初始化模块、智能下单模块及数据管理模块,所述策略引擎模块接收从数据初始化模块发送的行情数据后,还从所述数据管理模块读取持仓数据及下单数据,与行情数据结合进行逻辑判断和校验,并在校验通过后给智能下单模块发送交易信号;所述策略引擎模块还将校验通过生成的相关数据发送给数据管理模块进行存储;

所述智能下单模块,分别连接所述策略引擎模块和数据管理模块,所述智能下单模块接收所述策略引擎模块发送的交易信号后,从所述数据管理模块读取持仓数据后,再调用下单算法进行分析,并向交易所网关发送报单的指令,同时,还将此次报单数据以及从交易所网关回传的成交数据发送给所述数据管理模块进行存储;

所述数据管理模块,分别连接所述数据初始化模块、智能下单模块及策略引擎模块,用于存储从数据初始化模块、智能下单模块及策略引擎模块发送的相关数据,并供后续的数据调用和提取。

进一步地,所述数据管理模块包含持仓数据管理单元和委托下单数据管理单元,其中,所述持仓数据管理单元包含两级数据结构,按策略编号保存的数据结构和按合约代码保存的数据结构,所述持仓数据管理单元和委托下单数据管理单元内存储的策略持仓数据、合约持仓数据及委托下单数据供策略引擎模块及智能下单模块调用。

进一步地,所述智能下单模块包括动态数据存储单元和下单算法单元,所述动态数据存储单元在系统启动时进行一次更新,更新后的数据发送给下单算法单元,更新数据包括合约手续费、保证金,所述下单算法单元在收到交易信号后,同时向策略持仓数据管理单元和合约持仓数据管理单元提取数据,根据相关交易规则计算出最优下单方式。

进一步地,所述下单算法单元还在接收到交易信号后,判断是否需要对交易数据进行修改,所述的修改包括开平仓方向、开平仓数量、订单的拆分,并将修改后的交易数据重新发送给交易柜台,所述交易柜台在收到信息后,在订单状态发生变化时回调相关函数,然后更新策略持仓数据和合约持仓数据。

进一步地,所述策略引擎模块包括策略线程、交易所信息处理线程、动态挂撤单线程、追单线程、风控线程及系统监视线程,所述策略线程,连接行情引擎,所述策略线程负责驱动各个策略对象进行交易逻辑判断;所述交易所信息处理线程连接数据管理模块,交易所信息处理线程负责处理交易所发送回来的下单,撤单,成交等数据的处理,并把相关数据转发给数据管理模块;所述动态挂撤单线程连接数据管理模块,所述追单线程实时监控委托报单的信息;所述风控线程,分别连接所述数据管理模块和智能下单模块;所述系统监视线程,连接所述数据管理模块;

所述策略引擎模块在接收到行情数据后,驱动策略对象进行逻辑判断,在满足策略要求的条件下,各策略对象发送交易信号给风控线程,所述风控线程从所述数据管理模块读取策略持仓数据、合约持仓数据及委托下单数据,与接收的各交易信号再进行计算校验,在符合风控标准时向智能下单模块发送交易信号。

进一步地,所述初始化模块接收行情数据和交易策略数据的步骤包括:

创建行情接口对象和交易接口对象;

初始化两类对象,与交易柜台建立连接;

启动行情登录和交易登录;

创建行情引擎并接收行情数据;

启动交易策略加载,并对交易策略初始化;

行情数据和交易策略数据保存于初始化模块,等待调用。

进一步地,所述下单算法单元会自动根据接收到的交易信号和实际下单操作的关系进行来回转换。

进一步地,所述交易信号包括交易方向、交易价格、交易数量、委托等待时间、撤单追单方式。

进一步地,所述策略引擎模块还包括初级错误数据过滤单元,对接收的行情数据及策略引擎数据中出现的通用错误信息进行初步过滤,所述通用错误信息包括:结算单未确认、平今平昨、不允许重复报单、撤单找不到相应报单。

进一步地,所述数据管理模块还包括错误信息管理单元,所述错误信息管理单元对于系统出现的需要针对不同策略处理的错误数据,从策略引擎模块回调对应策略对象来进行专门处理。

与现有技术相比,本发明所公开的一种智能交易系统,通过增加智能报单模块,为投资者在实际交易过程中节省了交易成本,持仓管理模块采用策略和合约两个方式分类,方便智能下单模型的数据处理。同时,通过两级错误处理机制(策略引擎层面和策略对象回调),既兼顾了不同策略的特殊性,同时也对一些共性问题进行统一处理来提高系统的总体性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例中智能交易系统的整体框架图。

图2为本发明一个实施例中智能交易系统的运行原理图。

图3为本发明一个实施例中智能交易模块的工作原理图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

参照图1所示,本发明实施例所公开的一种智能交易系统,包括:数据初始化模块、策略引擎模块、智能下单模块及数据管理模块,其中,

所述数据初始化模块,分别连接所述策略引擎模块和数据管理模块,所述数据初始化模块,用于从行情接口及交易接口接收的行情数据和交易策略数据建立缓存队列后发送给策略引擎模块;所述数据初始化模块还将所述行情数据和交易策略数据生成日志信息发送给数据管理模块进行存储。

具体来说,参照图2所示,系统启动时,首先进行初始化操作,初始化的对象为行情和交易两类。

第一步、创建行情接口对象和交易接口对象;

第二步、初始化上述两类接口对象,并与交易柜台建立连接;

第三步、启动行情登录并接收行情数据;

第四步、启动交易策略加载,并对交易策略初始化;

第五步、行情数据和交易策略数据保存于初始化模块,等待调用。

初始化部分主要就是接口对象创建、网络认证、登陆、结算确认、创建行情引擎、创建策略对象、读取策略对象的初始化参数等操作。发送给策略引擎模块的主要是两部分,一个是交易所发送的行情数据,主要是保存备份,方便后续使用;另一个是策略初始化获得的有关策略所需参数,比如策略在不同品种/合约是否允许交易,交易数量,最大持仓数量等。初始化模块发送给数据管理模块的数据主要是一些日志信息,同时还有行情数据和交易登陆后获取的账户持仓数据和资金数据,系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。其中,所述初始化模块对接收的行情数据和交易策略数据是建立缓存队列,依序发送,从而保证系统的行情线程不会阻塞。

所述策略引擎模块,分别连接所述数据初始化模块、智能下单模块及数据管理模块,所述策略引擎模块一方面接收从数据初始化模块发送的行情数据后,还从所述数据管理模块读取持仓数据及下单数据,与各个策略对象发送的交易信号结合进行逻辑判断和校验,并在校验通过后给智能下单模块发送交易信号;所述策略引擎模块还将校验通过生成的相关数据发送给数据管理模块进行存储。

具体来说,所述策略引擎模块包括策略线程、交易所信息处理线程、动态挂撤单线程、追单线程、风控线程及系统监视线程等多个线程。

其中,所述策略线程,连接行情引擎,负责跟行情引擎通信,策略线程负责驱动各个策略对象进行交易逻辑判断,此处的策略对象是指系统初始化时创建的各个策略类的对象;所述交易所信息处理线程连接数据管理模块,交易所信息处理线程负责处理交易所发送回来的下单,撤单,成交等数据的处理,并把相关数据转发给数据管理模块;所述动态挂撤单线程会跟数据模块进行通信,动态挂撤单线程主要负责下单和撤单的操作,追单线程会不断检查委托下单的数据,追单线程则是实时监控委托报单的信息,判断是否需要进行撤单和重新报单的操作;所述风控线程,分别连接所述数据管理模块(包括持仓数据管理单元、委托下单数据管理单元)和智能下单模块,并与它们实现数据通信,风控线程主要是对账户的合约持仓,策略持仓,保证金风险水平进行监控,对于超出限制的交易信号进行拦截;所述系统监视线程,则连接所述数据管理模块中设置的错误信息管理单元。系统监视线程则是一方面在系统出错时及时报警,另一方面是为了实现程序定时的连接、断开、重新连接和退出等操作。

所述策略引擎模块在接收到行情数据后,会驱动各个策略对象进行逻辑判断,其中,各个策略逻辑则是各个策略对象的特点进行自身定义,在此不作具体说明,在符合要求的情况下,将交易信号发送到智能下单模块,同时将相关数据同步到数据管理模块进行备份保存,方便后续交易所的回报数据过来后进行匹配确认以及进行持仓数据和委托挂单数据的计算。策略引擎接收到行情数据后,驱动策略对象进行逻辑判断,在满足策略要求的条件下,策略对象发送交易信号给风控线程。所述策略引擎模块在发送交易信号之前,会先读取数据管理模块的策略持仓数据、合约持仓数据和委托下单数据,然后调用风控线程进行计算检验,在符合风控要求(比如单个合约持仓不能超过一定数量,单个策略资金占用不能超过账户总额的一定比例,账户总体杠杆水平不能超过一定比例等。)后会向智能下单模块发送交易信号。所述的交易信号包括交易方向、交易价格、交易数量、委托等待时间、撤单追单方式。

所述策略引擎模块还包括初级错误数据过滤单元,对接收的行情数据及策略引擎数据中出现的通用错误信息进行初步过滤,所述通用错误信息包括:结算单未确认、平今平昨、不允许重复报单、撤单找不到相应报单。对于通用的错误,系统会在策略引擎层面集中处理(包括退回、删除、暂存等操作),而对于其他的一些不同策略需要不同处理的错误,则会回调策略对象的错误处理方法来进行专门的处理。这样一方面可以减少策略层面的重复编码,同时也可以减少不同模块的交互来提高性能。

所述智能下单模块,分别连接所述策略引擎模块和数据管理模块,所述智能下单模块接收所述策略引擎模块发送的交易信号后,从所述数据管理模块读取持仓数据后,再调用下单算法进行分析,并向交易所网关发送报单的指令,同时,还将此次报单数据以及从交易所网关回传的成交数据发送给所述数据管理模块进行存储。

具体来说,所述智能下单模块包括动态数据存储单元和下单算法单元,所述动态数据存储单元在系统启动时进行一次更新,更新后的数据发送给下单算法单元,更新数据包括合约手续费、保证金,所述下单算法单元在收到交易信号后,同时向策略持仓数据管理单元和合约持仓数据管理单元提取数据,根据相关交易规则计算出最优下单方式。

所述下单算法单元则是根据账户的当前持仓情况、交易合约的手续费、保证金等信息,进行总体的最优化求解,之后再决定对于上层发来的交易信号是否需要修改,交易信号包括交易方向,价格,交易数量,委托等待时间,撤单追单方式等,以及做何种修改,此处的修改包括开平仓方向、开平仓数量、订单的拆分等。修改后的交易数据会重新发送给交易柜台,所述交易柜台在收到信息后,在订单状态发生变化时回调相关函数,然后更新策略持仓数据和合约持仓数据。此外,所述下单算法单元再向交易柜台报单时,也会将报单数据传给数据管理模块进行保存,而当交易所的报单/成交数据发送回来后,也会先经过智能下单模块进行转换,之后再发送给数据管理模块,从而保证数据的一致性。

参照图3所示,图3示出了策略引擎模块与智能下单模块的工作流程图。

第一步、策略引擎产生交易信号,驱动各个策略对象进行逻辑判断,并发送给风控线程;

第二步、风控线程进行判断是否符合风控要求;

第三步、在符合风控要求的条件下,下单算法单元在收到交易信号后,同时向策略持仓和合约持仓两个内存数据模块提取数据,同时根据相关交易规则计算出最优下单方式,并对上层的交易信息进行修改和补齐,然后发往交易柜台;关于本发明的下单算法单元的判断规整和依据,规则包括几类,首先是交易品种层面的,需要判断品种平今仓和平昨仓的手续费差异。第二个层面是合约保证金的水平,需要计算手续费和保证金占用两者的利弊,平仓则可能多交手续费,锁仓需要多交保证金。第三个层面则是在确定需要进行锁仓操作后,首先夸策略查询该品种合约的历史持仓,若持仓数量多于交易数量,则平掉历史持仓中该数量的仓位,若小于持仓小于该数量,则先平掉历史持仓,然后开仓买入/卖出余下数量,若历史持仓为0,则开仓买入/卖出相应数量。整个交易过程不改变交易方向,只是改变开平仓方向,如果出现了转换,则在交易所发送回来成交数据时,需要再一次进行方向的逆变换,从而保证策略层面持仓数据的准确。

第四步、交易柜台在收到信息后,当订单状态发生变化时进行回调相关函数,然后更新策略持仓数据和合约持仓数据。

上述智能下单为投资者在实际交易过程中节省了交易成本,也给用户的下单提供了判断依据。

所述数据管理模块,分别连接所述数据初始化模块、智能下单模块及策略引擎模块,用于存储从数据初始化模块、智能下单模块及策略引擎模块发送的相关数据,并供后续的数据调用和提取。

再参照图2所示,具体来说,所述数据管理模块包含持仓数据管理单元和委托下单数据管理单元,其中,所述持仓数据管理单元包含两级数据结构,按策略编号保存的数据结构和按合约代码保存的数据结构,所述持仓数据管理单元和委托下单数据管理单元内存储的策略持仓数据、合约持仓数据及委托下单数据供策略引擎模块及智能下单模块调用。本发明实施例中,持仓数据管理分为两级,包括按策略编号保存的数据结构和按合约代码保存的数据结构,这跟现有的通常系统只是按策略编号保存数据结构有所增加,这个增加的数据结构为后续的智能下单算法在跨策略计算最优下单方式提供的数据基础;同时,保证了上层的策略持仓数据的准确性,从而达到既节省了交易成本,又能保证系统能稳健高效执行多策略多品种的交易。

所述数据管理模块还包括错误信息管理单元,所述错误信息管理单元对于系统出现的需要针对不同策略处理的错误数据,从策略引擎模块回调对应策略对象来进行专门处理。错误信息数据方面,系统也将其进行了分类,对于通用的错误,系统会在策略引擎层面集中处理,也即通过初级错误数据过滤单元处理掉,而对于其他的一些不同策略需要不同处理的错误,则会通过数据管理模块中的错误信息管理单元回调策略对象来进行专门的处理,本发明为系统的策略子类创建了一个新的错误处理方法的接口,所有的策略子类在有专门处理需要的时候,都可以通过重写该接口的方法进行自身的特殊化处理。这样一方面可以减少策略层面的重复编码,同时也可以减少不同模块的交互来提高性能。所述智能下单模块将生产的订单回报信息、成交回报信息、错误回报信息分别发送给下单数据管理单元、持仓数据管理单元和错误信息管理单元,此处的策略回调则是根据前述下单数据、持仓数据和错误信息进行综合判断。

与现有技术相比,本发明所公开的一种智能交易系统,通过增加智能报单模块,为投资者在实际交易过程中节省了交易成本。同时通过两级错误处理机制,既兼顾了不同策略的特殊性,同时也对一些共性问题进行统一处理来提高系统的总体性能,减少了系统的重复性劳动。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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