一种量化策略运行动态调参的方法及系统装置与流程

文档序号:14348131阅读:463来源:国知局
一种量化策略运行动态调参的方法及系统装置与流程

本发明涉及计算机软件领域,特别是涉及量化投资策略运行参数中进行参数调整的问题。



背景技术:

量化策略是投资者投资思想的结晶,为了保证策略的安全,策略的运行和编写适宜放在本地进行。由服务端推送数据,通过sdk来驱动本地策略代码运行,计算后将内容展示在客户端上。

现有的问题是:在策略进行模拟交易时,由于会跨交易日,一般周期较长。而策略的参数时常需要调整,若要进行修改的话则需要停止程序,这样的话策略运行过程中产生的中间数据都会丢失,导致策略运行产生风险,此外,这样的操作也比较复杂,需要调出程序、停止程序、修改参数、再次启动,可能在操作过程中就错失了投资机会。



技术实现要素:

为了解决上述问题,本发明采用动态参数设置的方法,预先设置好可能会进行调整的参数,在客户端暴露出来,在策略运行过程中无需停止策略代码运行就能进行修改,并在提交后出发策略的响应逻辑将新修改的参数置为生效。其具体技术方案如下:

第一方面,一种量化策略运行动态调参的方法,所述方法包括:

策略创建模块定义策略的参数;

策略实例模块创建策略实例,获取参数值写入策略中的参数项;

策略运行模块运行所述策略;

策略实例模块获取修改的参数值,发送至策略运行模块;

策略运行模块依据修改的参数继续运行策略。

结合第一方面,根据第一方面可能的实现方式中的第一种情况为,所述策略的创建、编辑、运行均在本地实施。

结合第一方面,根据第一方面可能的实现方式中的第二种情况为,所述参数包括多个基础参数和标的参数。

结合第一方面,根据第一方面可能的实现方式中的第三种情况为,策略实例模块通过getanalyzervalueasdouble(field)、getanalyzervalueasstring(field)、getanalyzervalueaslong(field)函数获取策略实例中的参数值写入策略中的参数项。

结合第一方面,根据第一方面可能的实现方式中的第四种情况为,所述策略实例为回测实例或模拟交易实例。

结合第一方面的第一种情况,根据第一方面可能的实现方式中的第五种情况为,所述创建策略为策略模板的创建。

第二方面,一种量化策略运行动态调参的系统,所述系统包括:

策略创建模块,用于创建策略模板,定义策略参数;

策略实例模块,用于创建策略实例,按照所述策略实例对所述策略参数赋值,对策略参数值进行修改;

策略运行模块,接收所述策略代码及策略参数运行所述策略。

结合第二方面,根据第二方面可能的实现方式中的第一种情况为,所述系统还包括:

web端,用于展示参数的描述和赋值情况;

sdk模块,用于在本地创建、修改、运行策略;

服务器,用于将sdk模块策略运行数据的分发和推送至web端。

第三方面,一种量化策略运行动态调参的系统装置,所述系统装置包括:

策略创建模块,用于创建策略模板,定义策略参数;

策略实例模块,用于创建策略实例,按照所述策略实例对所述策略参数赋值,对策略参数值进行修改;

策略运行模块,接收所述策略代码及策略参数运行所述策略;

所述系统装置还包括存储器、处理器、总线,所述存储器及处理器通过总线进行连接,所述存储器内存储有多条操作指令,所述处理器加载所述操作指令并执行,实现第一方面及第一方面的第一种至第五种情况所述的方法。

结合第三方面,根据第三方面可能的实现方式中的第一种情况为,所述系统装置还包括:

web端,用于展示参数的描述和赋值情况;

sdk模块,用于在本地创建、修改、运行策略;

服务器,用于将sdk模块策略运行数据的分发和推送至web端。

有益效果:

(1)策略的实现灵活性强,在编写时不用将参数锁定,可以直接作为通用模板来多次使用,只需要在创建策略实例时对参数进行赋值,这样不同的策略实例针对同一个策略可以实现不同的参数。

(2)在策略运行过程中需要修改策略代码时,不用停止策略的运行,可以防止策略中间数据丢失,方便使用。

附图说明

图1为实施例一的流程图;

图2为实施例二的创建策略设置参数的流程图;

图3为实施例三的创建策略实例对参数赋值的流程图;

图4为实施例四的动态参数修改的流程图;

图5为实施例五的系统架构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

如图1所示,一种量化策略运行动态调参的方法,所述方法包括:

步骤101,策略创建模块定义策略的基本参数和标的参数;

步骤102,策略实例模块创建策略实例,通过函数获取参数赋值写入策略中的参数项;

步骤103,策略运行模块运行所述策略;

步骤104,策略实例模块获取修改的参数值,发送至策略运行模块;

步骤105,策略运行模块依据修改的参数值继续运行所述策略。

举例说明,例如新建一个低买高卖的策略。

在创建策略的时候添加三个参数。基础参数:数量qty;标的参数:低价格lowprice、高价格highprice。然后写策略逻辑当currentprice<lowprice则买入qty的该标的,当currentprice>highprice则卖出qty的该标的。

创建实例的时候,选择参数并给参数赋值。比如选择平安银行、万科a两只标的。数量都是1000。对于平安银行:lowprice=9,highprice=10;对于万科alowprice=20,highprice=23。

在策略运行的时候,发现万科a涨的很好,那么之前设置的lowprice和highprice不适用了,就要动态调整成lowprice=23,highprice=26。

本发明采用动态参数设置的方法,预先设置好可能会进行调整的参数,在web端呈现出来,在策略运行过程中无需停止策略代码运行就能在策略实例模块进行参数修改,并在提交后触发策略的响应逻辑将新修改的参数置为生效。

实施例二:

如图2所示,为策略创建设置参数的流程图,其所述流程为:

步骤201,在所述策略创建模块中创建策略,填写策略信息,包括策略的名称、描述、选择所使用的语言等等;

步骤202,设置策略的基本参数,对基本参数进行定义;

步骤203,设置策略的标的参数,对标的参数进行定义;

步骤204,编写策略逻辑,通过getanalyzervalueasdouble(field)、getanalyzervalueasstring(field)、getanalyzervalueaslong(field)的api来获取设置的参数,并完成策略的整体逻辑;

步骤205,保存所创建的策略,包括对策略代码的保存和页面参数、基础信息的保存。

所述对基本参数和标的参数的设置内容基本相同。主要是对参数的变量名、数据类型、初始值、最大值、最小值、默认值、描述、是否必填的属性进行设置。对于策略来讲,参数包括两种类型:基础参数和标的参数。基础参数是针对策略的整体进行生效,可以设置多个;标的参数是针对策略的所有标的都分别生效,可以设置多个。

所述策略创建,为策略模板的创建。对于策略模板,策略逻辑是固定的,参数从服务端获取,因此可以作为多个策略的一部分进行重复利用。

实施例三:

如图3所示,为创建策略实例对参数赋值的流程图,由于策略创建只是完成了策略的基础逻辑框架,需要将策略运行起来还需要创建运行实例,其中很重要的内容就是对参数进行赋值。其所述流程为:

步骤301,在所述策略实例模块中创建策略实例,填写策略实例的基本参数信息,如描述、名称、使用的标的等等;

步骤302,选择策略,策略可以选择一个,也可以多个进行组合;策略选择完毕系统会呈现该策略的参数项;

步骤303,对选择策略参数项赋值,策略参数只用填写一次,对于标的参数,若选择了多个参数则会生成对应标的的多条记录供用户填写参数填写时需要对参数的填写项进行检查,如类型、是否必填等;

步骤304,设置策略实例,如回测实例需要设置回测时间、初始资金、滑点、交易费率等,模拟运行实例需要设置初始资金;

步骤305,修改相应的实例运行配置文件,对本地的config文件进行修改,将本地的策略代码与页面相对应;

步骤306,保存所创建的策略实例。

策略实例指的是回测或者交易实例,即需要将策略模板编写的逻辑进行赋值并真正运行起来。

实施例四:

如图4所示,为动态参数修改的流程图,即不停止策略运行的情况下进行策略参数修改的流程,其具体流程如下:

步骤401,本地完成策略实例的配置,启动策略项目运行策略;

步骤402,查看策略运行状态,包括交易订单、策略收益、日志等等;

步骤403,根据当前的盘面情况判断是否需要修改所述策略参数,如果不需要修改,则继续查看策略运行状态;如果需要修改,则实施步骤404;

步骤404,在策略实例模块修改参数,通过函数获取到具体修改的参数值;

步骤405,sdk模块接收所述修改的参数值,对应的策略逻辑采用修改的参数值继续运行,不需要把策略停止下来也不需要回去查看和修改代码便可修改策略;

步骤406,判断策略是否停止,如果策略停止则动态参数修改过程结束;如果策略未停止运行,则继续查看策略运行状态。

上述实施例三、四中所述的通过函数获取到具体的参数值,主要是把参数分为了string、double和long类型,分别采用getanalyzervalueasdouble(field)、getanalyzervalueasstring(field)、getanalyzervalueaslong(field)函数来获取参数数据,在参数进行改变后,通过函数获取的参数也发生了变化。

上述实施例中,可通过web端查看策略运行过程中,页面展示参数的描述和赋值情况;用户下载sdk安装包,在本地安装sdk,实现在本地创建、编辑、运行策略,从而保证策略代码的安全性。

实施例五:

如图5所示,本发明为上述方法提供了一种量化策略运行动态调参的系统,所述系统包括:

策略创建模块,用于创建策略模板,定义策略参数;

策略实例模块,用于创建策略实例,按照所述策略实例对所述策略参数赋值,对策略参数值进行修改;

策略运行模块,接收所述策略代码及策略参数运行所述策略。

web端,用于展示参数的描述和赋值情况;

sdk模块,用于在本地创建、修改、运行策略;

服务器,用于将sdk模块策略运行数据的分发和推送至web端。

其中,基于上述系统,本发明还提供了第三方面,一种量化策略运行动态调参的系统装置,所述系统装置包括:

策略创建模块,用于创建策略模板,定义策略参数;

策略实例模块,用于创建策略实例,按照所述策略实例对所述策略参数赋值,对策略参数值进行修改;

策略运行模块,接收所述策略代码及策略参数运行所述策略;

web端,用于展示参数的描述和赋值情况;

sdk模块,用于在本地创建、修改、运行策略;

服务器,用于将sdk模块策略运行数据的分发和推送至web端;

所述系统装置还包括存储器、处理器、总线,所述存储器及处理器通过总线进行连接,所述存储器内存储有多条操作指令,所述处理器加载所述操作指令并执行,实现说明书所述的方法。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所描述的装置实施例仅仅是示意性的,可以是设计成一体设备,也可以是组合成一套设备,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件和必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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

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