发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2020-01-07
 

这两周被感冒折腾的够呛,叠加上元旦后的出差,拖到今天才有时间来写这篇新年计划。
 

回顾2019年

 

翻翻自己知乎专栏的文章,这篇是第五篇年度总结和项目计划,从2015年在Github上开源以来,vn.py项目也不知不觉也走入了第六个年头。
 

还是老规矩,先来回顾下2019年的工作结果:

  • 用户数量
    • Github Star:10.7k(10609)
    • Github Fork:4.7k
    • 全球排名:第二(仅次于ccxt)
  • 项目开发
    • 版本迭代:10次(2.0.0 -> 2.0.9)
    • 底层交易接口:30个
    • 上层策略应用:11个
  • 社区交流
    • 论坛用户数量:8474人
    • 论坛帖子数量:7784篇
    • 线下活动:12次
    • 线上分享:3次
    • 专题小班课:4次
       

用户数量

 

截止2020年1月5日,vn.py在Github上一共收获了10609个Star,Fork数量达到4.7k,算是完成了两个里程碑:

  • 超越Zipline,目前Star数量10363(一整年的追赶~)
  • 总Star数量破1万(成功突破整数位压力!)

来看下目前Github上排名前十的量化类开源项目(包括数字货币):
 

description

 

前十的排名上整体还是去年的老面孔,Python的占比进一步增高,从2018年底的6个,增加到2019年底的8个项目(包括ccxt)。
 

项目开发

 

2019年vn.py项目的工作重心,主要放在了基于Python 3.7的v2.0版本开发上,采用快速迭代的开发模式(大约5周一个版本的频率),一共完成了从v2.0.0到v2.0.9的10个版本的发布。
 

为了保证项目重构的效果,v2.0的代码全部重新编写,由7大模块构成:

  • vnpy.trader:全功能量化交易平台
  • vnpy.gateway:包含30个国内外全品种交易接口
  • vnpy.app:包含11个量化交易策略应用模块
  • vnpy.api:各类API的Python封装实现
  • vnpy.event:简洁易用的事件驱动引擎
  • vnpy.rpc:跨进程通讯标准组件
  • vnpy.chart:纯Python的高性能K线图表
     

其中在策略应用模块的设计上,保留vn.py资深用户喜欢的json文件配置功能的同时,增加了对初学者更友好的图形界面管理配置方式,如下图的CTA策略回测模块(vnpy.app.cta_backtester):
 

description

 

上图中显示的是针对股指期货的AtrRsiStrategy回测结果,2017年开源在Github上后再也没有调整过参数,没想到2018-2019两年样本外的结果还挺稳定。
 

针对初学者比较头疼的Python环境和安装问题,专门开发了针对量化交易专门设计的VN Studio发行版:采用exe安装文件的形式,内部集成了vn.py运行所需的全部三方包,只需一路【下一步】就能傻瓜式完成全部安装工作。
 

description

 
VN Studio中同时还额外内置了VN Station量化管理终端(上图),方便对Python脚本编写还不熟悉的初学者,直接通过GUI图形界面的形式来管理加载想要使用的底层接口以及上层应用,快速构建符合自己需求的VN Trader交易系统。
 

社区交流

 

年初上线了全新的【vn.py量化社区论坛】,用于替代之前基于Discuz的老论坛【维恩的派】。这次选择了Python作为论坛后端系统,一方面解决了恶意灌水的问题,另一方面也能结合VN Station的自动更新功能实现无缝的vn.py升级体验。大概一年不到的时间里,论坛累计用户数量达到了8473,发帖篇幅数量为7783,每日在线人数浮动在300-700人范围。
 

2019年共计举办了12次vn.py社区线下活动,其中北京2次、深圳1次、成都1次,剩下的都在上海(浦东嘉里城Wework的M会议室大概已经成为很多社区成员所熟悉的地方了吧)。线上活动方面倒是搞的比较少,一共只有3次。
 

除了线下活动外,针对社区内一部分用户希望深入学习vn.py的需求,2019年也推出了4次专题小班课程,包括2次交易接口开发和2次CTA策略深入进阶。两天10小时的高强度课程以及平均每人1万元的价格,说实话刚开始的时候心里也有点没谱(交了这么贵的学费还学不到真本事岂不是坑人?)。
 

description

 

好在最终学员反馈的结果打消了之前的顾虑:十多个由接口小班课学员完成的底层接口代码(上图中的接口贡献给了vn.py),以及CTA小班课学员几乎全员掌握了策略从开发到实盘的全流程,大部分开始了实盘交易。

 

2020的规划

 

全功能的期权交易

 

2019年12月底,国内期权市场终于迎来了股指期权、300ETF期权、黄金期权这几个重量级品种。社区里的老用户可能知道,vn.py最早脱胎于我自己在量化私募担任期权交易员时,开发的期权波动率交易系统DerivativesMaster。
 

50ETF期权在上市初期,国内几乎没有能够满足复杂期权波动率交易策略的商业量化平台。作为一个缺乏IT学历背景的交易员,可以说正是靠着Python易学易用的语言特性以及开放活跃的社区生态,才能够凭借DerivativesMaster系统,有幸第一批参与50ETF期权的量化交易。
 

所以接下来这一年的开发工作重心,将会集中在期权方面,目标是让vn.py成为全功能的期权量化交易解决方案:

  • 高性能期权定价模型(基于Cython和Numba技术)
  • 实时波动率曲面计算
  • 持仓希腊值风险管理
  • Delta自动对冲算法
  • 定价波动率拟合功能
  • 电子眼套利算法
  • 期权策略回测引擎
  • 各类手动和半自动交易工具
     

description

 

授人以鱼不如授人以渔,期权这块除了开源代码外,2020年也将会推出从入门、进阶到深入的完整期权量化课程体系,第一部分的内容计划1月底前上线,欢迎关注!
 

代码上开始做减法

 

随着项目的整体代码量越来越大,vn.py也终于到了需要开始做减法的阶段。在接下来的开发中,除了继续增加新功能外,也会开始逐渐精简代码:

  • 采用Python 3.8的新语言特性重构
  • CI等功能转向使用统一的Github服务
  • 移除缺乏用户关注和使用的模块
     

送君千里终须一别,在2020年元旦当天Python社区已经正式宣布了对2.7版本支持的结束,同样vn.py官方团队也将停止对v1.9.2-LTS版本(基于Python 2.7的最后版本)的维护工作,将全部精力放在v2.0版本上了。
 

最后:2020,Enjoy Trading!!!

 

2020年的vn.py社区第一次线下活动,将于本周日下午(1月12日 14:00-17:00)在上海举行,内容包括:

  1. 期权交易技术入门
  2. 300期权合约规则细节分析
  3. OptionMaster使用讲解
  4. 问答环节

报名请点击vnpy-community公众号底部菜单栏的【期权活动】~