【从零开始vnpy量化投资】一. vnpy初探 – 注册、安装、运行策略

  • Post author:
  • Post category:其他


@

【从零开始vnpy量化投资】vnpy初探 – 注册、安装、运行策略



vnpy简介

以下内容摘自vnpy.com官方,https://www.vnpy.com/



功能介绍

作为一套基于Python的量化交易程序开发框架,VeighNa致力于提供从交易API对接到策略自动交易的量化解决方案。



目标用户

如果有以下需求,不妨试试看VeighNa:

* 基于Python语言来开发自己的量化交易程序,充分利用Python社区强大的数据研究和机器学习生态

* 通过一套标准化的交易平台体系,对接国内外诸多不同类型的金融市场:证券、期货、期权、外盘等

* 使用经过充分实盘检验的量化策略引擎,来完成从数据维护、策略开发、回测研究到实盘自动交易的整个业务流程

* 对平台进行各种定制扩展,满足个性化的交易需求:增加交易接口,修改GUI图形界面,基于事件驱动引擎开发复杂策略应用

* 掌控交易程序的源代码细节,杜绝各种程序后门,避免被窃取策略、截获交易信号、偷盗账号密码等风险

* 节约为量化交易平台付出的资金成本,不必再支出上万每年的软件授权费或者每笔成交的额外加点


vnpy

,或

vn.py

,目前改名为

VeighNa

软件,是一个非常热门的开源交易框架,使用python实现。如官方所说,它提供了构建量化交易系统的全套基础设施封装,如平台API对接、数据接入、策略编写、策略回测。并且提供了相当丰富的入门文档与开发者社区。



vnpy优点:

使用vnpy最大的优点就我个人而言,就是

免费

。对于初次接触量化投资的新人或已有丰富交易经验但志在转型量化投资的期货交易者,量化系统的最终成绩在一定程度上是未知的。大家都处于探索的阶段,需要不断的试错与修正,从入门到系统真正稳定可能要经历一段不短的时间。如果使用商业化平台,一是依赖平台的生态是否完善,能否获得丰富的资料来进行学习研究;二是平台大都不开源,无法做到为自己进行深度定制;三是每年会有一笔不菲的费用,大部分商业平台每年最低需要几千元的收费,这对刚入门的投资者来说是一笔不小的开支。



为什么要写这个系列的教程:

本教程的主要目的是通过一步一步的具体操作使新人能够独立的完成整个系统的安装、开发、调试等活动。并且根据笔者近几年实盘的经验,教会大家如何根据自己的需要针对vnpy进行定制化改造。尤其是实盘最基础的交易记录和资金管理功能,vnpy并未提供完整实现,故需要使用者自行开发。

通过一系列的开发与调试后,本教程的最终目的是为了实盘交易。在实盘运行中,可能会出现大量软件的故障,笔者将结合自身遇到过得实盘故障,教会大家如何定位和排查软件问题,最终开发出稳定的交易系统,确保系统平稳运行。



正式开始:



安装vnpy客户端:

登录vnpy官方首页https://www.vnpy.com/,点击页面上的“安装3.6.0”(当前最新版本为3.6.0. 如版本已更新,安装最新版本亦可,不同大版本vnpy的api可能有变化,后期开发时需要注意),即可下载windows版客户端安装程序。安装过程较为简单,选择个人常用目录即可。

在这里插入图片描述



注册官方论坛账号:

安装完成后,点击vnpy客户端,会出现登录窗口,新用户可注册账号。需要注意的是,这个账号仅供登录论坛使用,后期通过python使用vnpy完整功能无需登录。

在这里插入图片描述

登录后客户端页面如下,首页为社区页面,方便用户访问社区与其他用户交流。

在这里插入图片描述



启动交易界面

点击“交易”分页,出现交易接口与应用模块选择。对于新手来说,勾选“交易接口”下的“CTP”与“应用模块”下的“CtaStrategy”和“CtaBacktester”即可。

此处需要注意一下“运行目录”选项,windows系统下默认选项为C盘用户目录,即C:\Users\xxx\ (xxx为操作系统登录用户名),可修改为其他目录。此目录中会存放vnpy的全局配置文件和策略配置文件,也是自定义策略的加载目录。如选择修改为其他目录,后期自定义策略strategies目录放在这个运行目录下即可。建议使用默认选项。

在这里插入图片描述

在这里插入图片描述

点击启动后,右侧对话框会出现运行日志且弹出独立客户端界面

在这里插入图片描述

在这里插入图片描述

到目前为止,客户端安装与启动已经完成。下面我们将尝试进行一些简单的策略回测。

点击“功能”>“CTA回测”,弹出回测界面。

此时我们注意到日志显示“RQData初始化失败”的内容,vnpy默认集成了几家数据服务商,其中包括米筐RQData和恒生数据UData等。米筐数据会提供了半个月的试用期,便于新人体验期货数据查询服务。

在这里插入图片描述



注册米筐账号并下载数据:

登录米筐数据官网https://www.ricequant.com/welcome/rqdata

点击免费试用,输入手机号进行注册,在账号审核通过后会收到邮件或短信通知。此时即可使用vnpy连接rqdata下载数据。

在这里插入图片描述

米筐数据与vnpy有一些合作,所以还有一个链接是专门给vnpy开发者申请的,这个申请速度快一点。链接如下:https://www.ricequant.com/welcome/trial/rqdata-cloud-vnpy。

在这里插入图片描述



为vnpy配置米筐账号:

点击菜单栏“配置”,弹出全局配置窗口。修改datafeed.name为rqdata, 输入账号密码即可。

在这里插入图片描述

此时可回到回测页面输入合约编码和开始结束日期,点击“下载数据”。

在这里插入图片描述



注意事项:

由于米筐账号仅有15天试用期,所以建议新人在注册后尽快将需要的所有期货合约数据下载到本地,便于短期内回测使用。

点击交易策略下拉框,里面会显示官方提供的几个简单策略示例,这里我们选择DoubleMaStrategy,即双均线策略。

在这里插入图片描述



各配置项含义:


本地代码

:包含合约编码与交易所编码的完整期货合约编码,以螺纹主力连续为例,输入rb9999.SHFE(交易所枚举类参考https://gitee.com/vnpy/vnpy/blob/master/vnpy/trader/constant.py中的Exchange类)


k线周期

:1m,默认值,1分钟k线


开始结束时间

:回测数据的范围


手续费率

:百分比类型手续费,一般在万分之0.2到0.5之间(固定金额手续费可使用交易滑点处理,如合约乘数10的情况下,5元固定金额手续费即等同于5/10=0.5滑点)


交易滑点

:预期成交价格与实际成交价格的差额,在强调成交的情况下,大都使用市价单下单,此时成交价可能存在波动,滑点即为对波动的平均估计,滑点估计错误会严重影响策略收益的评估。建议使用1到2跳价格跳动作为滑点。


合约乘数

:一手合约对应的标的物数量,如一手螺纹钢合约交易标的为10吨


价格跳动

:合约最小价格变化单位,如螺纹钢为1元,PTA为2元


回测资金

:回测初始资金

在这里插入图片描述

以螺纹钢为例,笔者实际本地数据范围为20年4月到22年10月,点击开始回测,以默认配置均线周期10分钟和20分钟运行。最终结果如图。总收益率-15%。

到这里,我们已经进行了简单的策略回测,回测效果不理想,因为使用的是默认提供的策略,且使用默认参数,未进行任何优化。人为调整参数后,可明显看到策略曲线的变化,以30+80分钟周期为例,策略回测曲线如下。收益率已经较默认参数有所提高,表明我们离目标又近了一步。

在这里插入图片描述

下一节课我们讲解CTA策略模板的组成以及运行机制。



版权声明:本文为u011687355原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。