延迟了1个月的样子(从1月底到2月底),终于在昨天正式发布了v2.0版本,也是vn.py项目在Python 3上的第一个版本。

尽管很早就提供了Windows上的一键环境初始化脚本init.bat,一键vn.py安装脚本install.bat和install.sh等快速安装工具,环境的复杂程度还是超过我们的想象:总有新的坑能让新手栽进去。

为了彻底这个问题,vn.py团队从v1.9.2开始试验性的推出了VNConda这一针对Python量化交易专门设计的Python发行版,基于Anaconda背后的一系列构建工具开发,直接内嵌了所有vn.py所需的运行库,在社区三个月测试后总算是得到了不错的反馈。

所以v2.0的官方推荐安装方法是直接使用VNConda-2.0-Windows-x86_64,傻瓜式安装和Anaconda几乎一样,过程中有两个勾选框推荐全部勾上!!!
手动安装

最新Github仓库:
https://github.com/wdgwz/vnpy
github.com

如果说vn.py的v1.0内版本(v1.0 — v1.9.2)的升级迭代是在一步步摸着石头过河,由下至上一点点把整个项目的框架给摸索了出来,那么v2.0内的版本的开发则是先完成整个框架的搭建升级(基于v1.0已有的经验),然后由上至下逐步把框架内各个细节的内容丰富和完善。
发布内容

接口方面

CTP接口:基于PyBind11封装,同时移除了对vcredist运行时的依赖BitMEX接口:基于RestClient和WebsocketClient开发,支持ShadowSocks代理IB接口:基于IB官方的Python API开发

内核方面

接口、引擎、应用的标准抽象类BaseGateway、BaseEngine、BaseApp采用3.7的dataclass简化基础数据类,并支持相关对象的快速生成分离程序代码和临时文件(json、temp、log等),多程序部署简洁快速新加入的邮件引擎结合QQ邮箱,实现微信消息实时推送剥离独立的数据库交互模块,便于同时支持SQL和Mongo(目前只对接了Sqlite)

应用方面
CTA策略
内嵌RQData客户端支持随时获取最新历史数据(支持交易时段内获取之前的日内数据)自动扫描strategy目录以及当前运行时目录下Python文件中的策略类,并加载到引擎中习惯v1.0版本中基于json的策略配置模式依旧可以使用(配置文件位于.vntrader目录下)实盘初始化策略时改为使用独立线程加载历史数据进行回放,避免界面卡顿
GUI界面
基于PyQt5重新开发简化组件逻辑增加复用性改为非默认加载(无界面Linux可以直接运行核心而不会再报错)

VNConda

5年来,如果没在以下问题上掉过坑,那都不好意思说是vn.py的用户:

搞错Python版本(2 vs 3, 32位 vs 64位)没装或者不会装vcredist(导致CTP接口加载不了)pip安装由于GFW导致速度奇慢(还经常超时失败)用conda安装talib导致整个numpy/pandas相关包被降级(甚至破坏环境)MongoDB装了后不会启动为系统服务......

如果实在手闲不住想要折腾的用户(我们vn.py社区就是这么充满了挑战精神),请准备好Python 3.7 64位环境,注意其他的版本不支持!!!

在发布页面下载最新release后解压,运行install.bat(Windows)或者install.sh(Ubuntu)来进行安装。

安装完成后,请在cmd中运行以下命令安装RQData客户端:

pip install --extra-index-url https://rquser:ricequant99@py.ricequant.com/simple/ rqdatac==1.0.0a66

VN Station

VN Station是全新开发的量化交易应用GUI管理工具,目前主要支持vn.py应用的图形化配置和启动(无需再写run.py脚本)。VNConda安装完成后,会在桌面自动创建VN Station的快捷方式,双击打开后会看到如下的登录框:
VN Station登录框

用户名密码请在vn.py社区论坛注册获取,点击右上角的微信登录开始注册,最新注册邀请码为El86Pa1p,登录后会进入到下图的主界面:
VN Station主界面

点击下方的“VN Trader”按钮,弹出目录选择对话框,这里是用来选择你想运行VN Trader以及保存相关临时文件的目录(默认在Windows系统用户目录下):
选择运行目录

切换好目录后点击“选择文件夹”按钮,会弹出VN Trader的配置对话框,如下图所示:
配置VN Trader

勾选想要加载的底层接口以及上层应用模块,如需修改全局配置可以点击右下角的“配置”按钮,全局配置文件使用json格式:
修改全局配置

点击“保存”按钮后回到VN Trader配置对话框,点击“启动”按钮后就能看到熟悉的VN Trader主界面了。

VN Trader

主界面和之前的版本几乎没有太大区别,但点击菜单栏的“系统”->“连接CTP”后,会弹出CTP接口的配置对话框,输入以下内容后即可登录:

用户名username密码password经纪商编号brokerid交易服务器地址td_address行情服务器地址md_address

auth_code和product_info主要用于19年中的CTP接入验证,目前留空即可。
输入CTP配置

连接好CTP接口后,点击菜单栏的“功能”->“打开CTA策略”,则进入到CTA策略窗口中:
CTA策略窗口

和之前版本最大的区别就是可以完全基于图形界面的策略实例创建、参数修改、策略移除、生命周期管理等操作。

如果需要查看可交易的合约代码,请使用主界面菜单栏的“帮助”->“合约查询”工具,点击“查询”按钮就会输出合约信息:

后续计划

2.0搭好了整个框架,接下来的工作就是快速迭代丰富vn.py中的各项细节,移植和重构老版本中的应用。目前的新版本还很稚嫩,欢迎大家测试后给出反馈(直接在Github开Issue)。

同时2019年社区建设的思路,将会从之前的“授人以鱼”转向“授人以渔”,每个版本发布后将会保证相关文档编写工作及时完成,另外也计划推出相关培训(免费和收费都有),感兴趣的话请关注!!!