2017年完成了大部分计划中的上层应用模块开发,剩余部分将在今年上半年加速推进,争取早日发布v2.0稳定版,为量化交易员提供一套完整成熟的交易系统解决方案。
Docker镜像
Docker技术日渐完善,多位vn.py社区用户也已经贡献了较为成熟的镜像代码(位于vnpy/docker目录下),实现的功能包括:
以上两者都有各自的应用场景,但整体略重。在v1.8正式发布WebTrader后,用户有了一个更为轻量级方案的选择:在Docker中启动WebTrader的交易服务器和WEB服务器后,直接通过浏览器来操控WebTrader的网页前端,无需再安装外部Python的同时也可以保证较低的网络带宽需求(noVNC数据量较大)。该镜像将在v1.8.1中完成。
海龟策略
海龟策略在量化交易领域(尤其是CTA类策略中)可以说是最为经典和生命周期最长的策略之一,时间框架上属于日线级别。其出入场判断逻辑较为简单清晰,TB和MC类的图表型量化平台都能很好的实现。但对于海龟中更为重要的多品种持仓组合动态调整,这类平台就无能为力了。
在v1.9将会对海龟策略做一个比较完整的实现(包括回测和实盘):
补完接口
交易接口的丰富度可以算是vn.py项目最大的特点之一,得益于Python的胶水特性和自动封装脚本,国内比较常用的接口已经达到了90%的覆盖度。剩余的一些接口计划在v2.0之前的版本中陆续开发:
文档网站
年内将再组织一次社区文档编写,完善之前缺失的部分,以及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接口封装,稳定性也经受住了用户检验。后续的升级工作将包括:
完成以上的内容,也就可以发布v3.0了(正好对应Python3)。