标星★公众号,第一时间获取最新研究
本文由VN.PY作者独家授权
近期原创文章:
延迟了1个月的样子(从1月底到2月底),终于在2019年2月27日正式发布了v2.0版本,也是vn.py项目在Python 3上的第一个版本。
最新Github仓库:
https://github.com/vnpy/vnpy
给力
如果说vn.py的v1.0内版本(v1.0 — v1.9.2)的升级迭代是在一步步摸着石头过河,由下至上一点点把整个项目的框架给摸索了出来,那么v2.0内的版本的开发则是先完成整个框架的搭建升级(基于v1.0已有的经验),然后由上至下逐步把框架内各个细节的内容丰富和完善。
核心相关
接口、引擎、应用的标准抽象类BaseGateway、BaseEngine、BaseApp;
采用3.7的dataclass简化基础数据类,并支持相关对象的快速生成;
分离程序代码和临时文件(json、temp、log等),多程序部署简洁快速;
新加入的邮件引擎结合QQ邮箱,实现微信消息实时推送;
剥离独立的数据库交互模块,便于同时支持SQL和Mongo(目前只对接了Sqlite)。
接口相关
CTP接口:基于PyBind11封装,同时移除了对vcredist运行时的依赖;
BitMEX接口:基于RestClient和WebsocketClient开发,支持ShadowSocks代理;
IB接口:基于IB官方的Python API开发,全功能支持;
FUTU接口:对接富途新的futu-api开发。
应用相关
CTA策略
内嵌RQData客户端支持随时获取最新历史数据(支持交易时段内获取之前的日内数据);
自动扫描strategy目录以及当前运行时目录下Python文件中的策略类,并加载到引擎中;
习惯v1.0版本中基于json的策略配置模式依旧可以使用(配置文件位于.vntrader目录下);
实盘初始化策略时改为使用独立线程加载历史数据进行回放,避免界面卡顿。
5年来,如果没在以下问题上掉过坑,那都不好意思说是vn.py的用户:
搞错Python版本(2 vs 3, 32位 vs 64位);
没装或者不会装vcredist(导致CTP接口加载不了);
pip安装由于GFW导致速度奇慢(还经常超时失败);
用conda安装talib导致整个numpy/pandas相关包被降级(甚至破坏环境);
MongoDB装了后不会启动为系统服务;
......
尽管很早就提供了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几乎一样,过程中有两个勾选框推荐全部勾上!!!
http://link.zhihu.com/?target=https%3A//conda.vnpy.com/VNConda-2.0-Windows-x86_64.exe
如果实在手闲不住想要折腾的用户(我们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.py社区论坛注册获取,点击右上角的微信登录开始注册,最新注册邀请码为El86Pa1p,登录后会进入到下图的主界面:
https://www.vnpy.com/forum/
点击下方的“VN Trader”按钮,弹出目录选择对话框,这里是用来选择你想运行VN Trader以及保存相关临时文件的目录(默认在Windows系统用户目录下):
切换好目录后点击“选择文件夹”按钮,会弹出VN Trader的配置对话框,如下图所示:
勾选想要加载的底层接口以及上层应用模块,如需修改全局配置可以点击右下角的“配置”按钮,全局配置文件使用json格式:
点击“保存”按钮后回到VN Trader配置对话框,点击“启动”按钮后就能看到熟悉的VN Trader主界面了。
主界面和之前的版本几乎没有太大区别,但点击菜单栏的“系统”->“连接CTP”后,会弹出CTP接口的配置对话框,输入以下内容后即可登录:
用户名username
密码password
经纪商编号brokerid
交易服务器地址td_address
行情服务器地址md_address
auth_code和product_info主要用于19年中的CTP接入验证,目前留空即可。
连接好CTP接口后,点击菜单栏的“功能”->“打开CTA策略”,则进入到CTA策略窗口中:
和之前版本最大的区别就是可以完全基于图形界面的策略实例创建、参数修改、策略移除、生命周期管理等操作。
如果需要查看可交易的合约代码,请使用主界面菜单栏的“帮助”->“合约查询”工具,点击“查询”按钮就会输出合约信息:
2.0搭好了整个框架,接下来的工作就是快速迭代丰富vn.py中的各项细节,移植和重构老版本中的应用。目前的新版本还很稚嫩,欢迎大家测试后给出反馈(直接在Github开Issue)。
同时2019年社区建设的思路,将会从之前的“授人以鱼”转向“授人以渔”,每个版本发布后将会保证相关文档编写工作及时完成,另外也计划推出相关培训(免费和收费都有),感兴趣的话请关注!!!