2018年vn.py项目计划(下)

2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。

Docker镜像

Docker技术日渐完善,多位vn.py社区用户也已经贡献了较为成熟的镜像代码(位于vnpy/docker目录下),实现的功能包括:

  • 在Docker中运行基于vnpy.rpc的服务器,并在外部通过GUI客户端来实现监控操作(类似examples/ServerClient的架构)
  • 在Docker中启动Ubuntu图形界面并直接运行VnTrader,通过noVNC的虚拟桌面服务实现浏览器访问(体验上如同直接操作Ubuntu桌面)

以上两者都有各自的应用场景,但整体略重。在v1.8正式发布WebTrader后,用户有了一个更为轻量级方案的选择:在Docker中启动WebTrader的交易服务器和WEB服务器后,直接通过浏览器来操控WebTrader的网页前端,无需再安装外部Python的同时也可以保证较低的网络带宽需求(noVNC数据量较大)。该镜像将在v1.8.1中完成。

海龟策略

海龟策略在量化交易领域(尤其是CTA类策略中)可以说是最为经典和生命周期最长的策略之一,时间框架上属于日线级别。其出入场判断逻辑较为简单清晰,TB和MC类的图表型量化平台都能很好的实现。但对于海龟中更为重要的多品种持仓组合动态调整,这类平台就无能为力了。

在v1.9将会对海龟策略做一个比较完整的实现(包括回测和实盘):

  1. 商品期货连续可交易指数数据
  2. 连续指数和主力合约转换比例
  3. 基于指数日线的出入场信号生成
  4. 基于风险模型的持仓组合调整
  5. 根据信号执行开平仓的算法交易系统

补完接口

交易接口的丰富度可以算是vn.py项目最大的特点之一,得益于Python的胶水特性和自动封装脚本,国内比较常用的接口已经达到了90%的覆盖度。剩余的一些接口计划在v2.0之前的版本中陆续开发:

  • 易盛9.0:外盘部分在计划中,内盘部分不确定
  • SP SYSTEM:香港期货公司中占有率最高,计划中
  • OANDA v20:跳票许久,但绝对是计划中
  • SaxoOpenAPI:盛宝银行接口,需要调查用户面后决定
  • 恒生UFX:恒生技术授权不允许放在Github上,暂时不考虑
  • 飞创X1:大商所对于X1的部署有特殊要求,用户面太窄,暂时不考虑

文档网站

年内将再组织一次社区文档编写,完善之前缺失的部分,以及v1.7后新增的应用模块部分。对于QuickStart和FAQ之类新手比较常用的文档资料,将会放到公众号“维恩的派VNPIE”(vn-pie)中,方便随时随地查询。

同时也在寻找比Github Wiki更方便的文档展示渠道,由于GFW的存在经常有用户抱怨打不开,可能考虑将www.vnpy.org的官网转移到国内重建(目前使用的Github Pages静态页面)。

开源合作

项目一直以来的成长离不开整个开源社区的营养和支持:从最早受海风的启发选择开源软件的模式,到借鉴pyctp和QuantBox的设计思路来封装API,再到后来参考AlgoTrader和TradeLink(尽管这俩现在都闭源了...)的软件架构来开发交易应用,可以说vn.py今天能有一点成就只不过是因为有机会站在巨人的肩膀上。

2017年中发生了一起“碰瓷事件”(具体名字不想再提),现在回头看当时的处理方式非常幼稚:在对方已经有故意蹭热度迹象的情况下,还以为遇到了性格古怪的“大牛”,和社区成员一起写了多篇分析文章试图探讨其中的技术价值,结果自然只是浪费了大家的时间和关注,还一度带歪了整个社区的工作方向。

以为这只是偶然的一次性事件,都忘得差不多了。没想到上周又听说了类似的苗头,“树大招风”也许就是这个意思?所以希望在这里表明vn.py项目官方的态度:

传统行业“同行是冤家”的老旧观念,在开源软件的世界中并不适用。面对快速变革的世界,没有哪款软件敢说自己能够解决所有的问题。针对vn.py中不足之处的客观批评和改进建议,我们十分欢迎也乐于吸取(有人帮忙测试和改进一向是求之不得的事);但是对于一些纯粹“通过贬低他人来抬高自己”的低级行为,我们将会通过宣传渠道公布情况后永久拉黑对方,不再做任何回应。

vn.py项目的核心目标集中于解决交易员在“交易”中的各种痛点,因此天然和开源社区中的其他针对“数据”(如TuShare)和“策略”(如RQAlpha)的项目存在极强的互补需求;对于同样针对“交易”的项目(如Kungfu),在细节定位方面也有着许多区别,相互借鉴取长补短的价值远远大于浪费时间互相攻击。

Python3迁移

最后这个可以算是用户最关心的问题之一了。2014年启动vn.py项目时因为3在部分核心运算方面的功能依旧显著弱于2,所以选择了基于2来开发。四年过去,3已经变得相当成熟,且社区对于2的支持将在2020年永久到期,所以vn.py向3的迁移工作也已经开始准备。

目前新增代码中已经尽可能实现对3的兼容,同时在v2.0稳定版发布后会正式启动对3的全面升级工作,预计最迟在2019年上半年完成。再次感谢社区用户BigTan的贡献,2016年时就提交了Python3的CTP接口封装,稳定性也经受住了用户检验。后续的升级工作将包括:

  1. 解决接口封装中,原始字符串到Python3中unicode的高效转换
  2. 重新封装所有涉及C++ API的接口,并更新接口到最新版本
  3. 实现EventEngine和MainEngine的Python3版本
  4. 升级上层应用模块,并将图形界面更新到PyQt5版本

完成以上的内容,也就可以发布v3.0了(正好对应Python3)。

原文发布于微信公众号 - 维恩的派VNPIE(vn-pie)

原文发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏魏艾斯博客www.vpsss.net

聊聊 Vultr 服务器优势和选择理由

8713
来自专栏coding

初识opensuse

1273
来自专栏飞总聊IT

从GitLab事件谈我的经历

先上个图,给各位程序猿们拜个年 ? 悲剧年年有,今年到GitLab家。著名的GitLab这几天在Tech界登上了头条,登上的原因是因为运维人员使用了rm -rf...

39010
来自专栏北京马哥教育

2018,用好这几点方法学习Linux一定比别人快

今天是2018年的第一天,在迎来新年喜悦的同时,又即将开始新的一年的奋斗。不知道文章面前的你是怎样计划你的Linux学习的。如今有很多关于Linux的书籍,博客...

3805
来自专栏安恒信息

见招拆招 六招轻松抓住代维违规的“黑手”

所谓“代维”,是指企业将自己的IT系统外包给第三方进行包括系统配置、日常运维、系统管理等管理权限的操作。让专业的人干专业的事,这可以使企业本身从繁重的IT运维中...

3115
来自专栏程序工场

程序员新人怎样在复杂代码中找 bug?

1484
来自专栏SDNLAB

大师兄东游记:OpenStack东京峰会之Neutron观察

我其实是比较不乐意带着任务去参加OpenStack的设计大会的,尤其是外派的任务。但是从东京回来,各位同事和同僚总是要问我一些相关信息,比如:大师兄,Neutr...

3546
来自专栏腾讯Bugly的专栏

微信iOS收款到账语音提醒开发总结

一、背景 为了解决小商户老板们在频繁交易中不方便核对、确认到账的痛点,产品MM提出了新版本需要支持收款到账语音提醒功能。这篇文章总结了开发过程中遇到的坑和一些小...

4206
来自专栏Java架构

两个月拿到N个offer,看看我是如何做到的

北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五家公司,最终,成功拿到了o...

2515
来自专栏Java社区

这也许是史上最有趣的破解软件合集

2422

扫码关注云+社区