当前位置: 首页 > 专利查询>南京大学专利>正文

基于虚拟化和回测库的量化交易方法技术

技术编号:13893409 阅读:105 留言:0更新日期:2016-10-24 17:44
基于虚拟化和回测库的量化交易方法,对于量化交易策略,首先构建一个基本的隔离镜像,安装上必须的回测库后作为base镜像,同时定期更新回测数据。在每次提交量化策略后,从镜像启动创建一个隔离回测环境,环境准备完成后挂载数据和策略,运行回测,最终等待回测完成返回结果。本发明专利技术作为一种新的量化平台策略运行方法,引入了虚拟化技术和回测库,保证了在策略运行过程中各运行环境能够隔离独立,包括了运行资源,数据等的隔离。同时回测库的引入也更能保证回测的正确性和可参考性。主要解决了在传统量化交易中策略运行时可能出现资源互相冲突或占用,运行环境有冲突等情况,确保了策略运行时的资源独立和环境隔离。

【技术实现步骤摘要】

本专利主要用于量化交易领域,尤其是在量化交易编程领域,用于在编程环境中的隔离执行。
技术介绍
随着互联网大数据时代的到来,计算机和数据分析对生活中的各个方面产生了重要的影响,包括对传统股市的影响,例如量化交易的产生。量化交易(Quant)是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略。它极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。总体来说,量化交易依托计算机和数据分析,通过量化交易,人们能极大避免在股市和基金中的损失,提高自己的收益。但在传统的量化交易系统中,开发者(量化交易员)们在设计并写好策略后,提交到量化回测系统中,系统读取策略并开始构建回测环境,这里的环境是一个模拟的交易环境,涉及到对整个系统的一些参数的修改,所以,如果是多个策略同时提交到系统中的话,可能会导致不同策略之间的干扰。因此这个时候需要对不同策略的运行建立独立环境。这样才能保证在每个策略文件的运行过程中不受其他策略干扰,同时,传统的量化策略完成后缺少一个比较完善的测试验证环境,这个时候就需要有比较完善的回测环境来保证量化策略的测试可进行。下面介绍一些传统量化交易系统中使用的技术。回测:回溯测试(back test),是指运用历史资料,对策略进行测试,回测涉及到基于历史数据模拟实施某项策略,这样让我们有机会估测采用该策略时的有效性如何。回测可由真人严格审查过往时段历史数据来完成,也可通过演算法来实现,这样可降低人为失误的风险。定时任务:定时任务(crontab)是linux下的一种定时执行某任务的技术,通过crontab,可以设置在某固定时间执行脚本任务。本专利技术中主要通过这个来定期更新需要提供给回测环境的数据。数据爬取和处理:在本专利技术中,回测环境需要的数据为本地提供,数据通过定时任务固定从网上爬取并更新,获取后,在本地再进行一些计算最终数据更新到数据库持久化存储。原有策略运行环境:传统的策略运行时用户提交的策略直接在服务器上运行,这样,每个用户提交后即在服务器上新开一个运行进程而不是一个隔离的环境,不同用户的策略运行进程是可见的,这即导致了不同用户之间会存在环境泄露和资源使用不平均的情况。
技术实现思路
本专利技术主要解决的问题是在量化交易中如何给出一个独立的运行环境,使得每个策略运行能够不互相影响,这里的影响是指对于资源,数据等得占用和影响。本专利技术的技术方案为:基于虚拟化和回测库的量化交易方法,首先构建基于包含回测库的虚拟隔离环境,用于策略回测的运行环境。对于提交的策略和运行参数,首先处理成python文件,放置到共享目录中,然后在虚拟隔离环境中根据参数运行回测,得到回测结果后返回结果,结果包括数值结果和可视化图表。虚拟化(docker):docker是一种新的虚拟化技术。虚拟化其实早已有之,lxc(Linux Container)就是一种很成熟的虚拟化技术,而docker作为一个新兴的虚拟化技术,其主要特征为面向应用,轻量级,灵活等。使用docker可以保证应用之间的独立性,在本专利技术中主要利用虚拟化技术来构建策略的隔离运行环境,保证策略运行之间不受影响。回测库(zipline):zipline是一个开源的量化交易python库,利用zipline,在提交策略后,zipline可以基于策略的算法运行回测(backtesting)并返回结果用于后续处理,同时zipline可以通过在线获取数据或本地提供数据来完成回测。按照以下步骤构建虚拟隔离环境并运行回测策略:1,服务器上配置虚拟化环境,利用docker构建base镜像,这个base镜像包括了运行时环境和需要的回测库,函数库等。并针对用户级别创建每个用户对应的虚拟化运行容器,设置用户的代码目录。2,数据更新模块会每天固定时间更新数据,这里数据主要是国内A股市场交易数据,数据字段包括开盘价,收盘价,最高最低价,成交量等。3,用户完成回测策略的编写并提交后,服务器端根据提交的策略代码和运行参数(参数包括起始结束时间,仓位金额,交易频率等),生成对应的python文件,并保存文件到共享目录,这样保证在虚拟环境对策略文件的可读性。4,系统调用运行接口,在对应的虚拟环境中执行运行命令,命令一般格式如下:该命令会在虚拟环境中执行提交策略的回测。5,得到的回测结果为数值结果,返回给程序做进一步处理。至此整个方法流程结束。本专利技术提出了一种改进的基于虚拟化和回测库的量化交易运行方法。该方法在传统的量化运行方式上进行了改进,将docker虚拟化技术和zipline回测库引入了量化交易中,并将之整合构成了一套完整的运行环境。本专利技术引入虚拟化和回测库后,通过docker封装运行环境,在策略提交后将策略放入到docker环境中,挂载需要的外部股票基金数据和其他必须数据等,运行回测,结束后,回测结果返回给用户。这样保证了策略环境的互相独立性和策略回测的完整性。附图说明图1为本专利技术整体架构图图2为本专利技术的主要流程图图3为示例程序的代码图4为运行结果可视化后图图5为服务器生成策略脚本的部分代码具体实施方式本专利技术使用了虚拟化技术和zipline回测库,下面具体介绍专利技术的流程和所使用的各项技术的实施方式。1,虚拟化技术虚拟化技术主要是用于对运行环境的虚拟,方便对不同运行环境之间的独立不受影响。在本专利技术中虚拟化技术使用的是docker来实现。通过docker构建隔离的虚拟环境,然后在这个环境中再搭建回测环境。2,回测库回测库主要是用来对提交的量化策略进行模拟检验。在本专利技术中使用的主要是zipline回测库,这是一个开源回测库,可以通过指定在线获取数据或者本地提供数据来完成回测。一般量化策略完成后需要有一个环境来对策略进行测试,回测(back testing)就是提供了这样一个环境来保证策略的正确性,回测的主要原理是事先载入需要的股票或基金数据,然后根据策略中的初始化函数(initialize)初始化数据和变量,之后根据设置的交易间隔和交易粒度在每个交易事件调用处理函数(handle_data),处理函数中包含了对股票买入卖出的执行等。最后在指定的起始结束时间范围内给出结果,结果包括策略年化收益,基准年化收益,阿尔法,夏普等,具体参数如下:策略年化收益:表示投资期限为一年的预期收益率;基准年化收益:参考标准年化收益;阿尔法:投资中面临的非系统性风险,Alpha是投资者获得与市场波动无关的回报,一般用来度量投资者的投资技艺。贝塔:投资中面临的系统性风险,反映了策略对大盘变化的敏感性。夏普比率:表示每承受一单位总风险,会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑。策略收益波动率:用来测量资产的风险性,波动越大代表策略风险越高。3,数据爬取和处理由于回测库默认在线获取的是国外股票市场数据,所以在我们的系统中需要准备本地数据,这就需要根据开放接口来获取数据,主要是获取股票每天的开盘收盘价,最高最低价,成交额,市盈率等数据。系统中设置了一个定时任务来每天更新。除此之外,还有基准的每天收益数据,这个就需要根据爬取到的数据进行计算,现在是每天选取前一个星期的数据计算当天的累计收益并更新文件,在每次策本文档来自技高网
...

【技术保护点】
基于虚拟化和回测库的量化交易方法,其特征是对于一个完成的量化策略程序,首先利用虚拟化技术构造一个隔离的运行环境,之后利用回测库构建一个隔离的回测环境,环境准备完成后,接收提交的量化策略,在回测环境中运行得到结果并最终返回,这套方法主要用于解决在量化交易系统中多用户资源可能冲突和数据需要隔离的问题。

【技术特征摘要】
1.基于虚拟化和回测库的量化交易方法,其特征是对于一个完成的量化策略程序,首先利用虚拟化技术构造一个隔离的运行环境,之后利用回测库构建一个隔离的回测环境,环境准备完成后,接收提交的量化策略,在回测环境中运行得到结果并最终返回,这套方法主要用于解决在量化交易系统中多用户资源可能冲突和数据需要隔离的问题。2.根据权利要求1所述的基于虚拟化和回测库的量化交易方法,其特征是按照以下步骤生成隔离的交易环境:a)在服务器上配置虚拟化技术的必要环境,包括容器环境安装,环境配置等;b)启动一个容器镜像,安装必要的类库和回测库;c)保存这个镜像,作为后面回测环境的基础镜像;d)在服务器上根据基础镜像创建容器,这个容器环境就是后面运行所支持的隔离环境,不同容器间的活动是透明的。3.根据权利要求1和2所述的基于虚...

【专利技术属性】
技术研发人员:陈振宇钱程郝蕊何铁科
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1