背景/目标
本量化系列主要是针对个人或者小型投资团队进行量化+机器学习实操的学习和实践笔记
本篇的主要目标是实现对量化策略的框架选择
在量化投资学习中,基于以终为始的思想,量化策略的最终目标是收益。所以本篇开篇先讲对于回测和交易需要用到的框架选择。
Part1: 什么是回测?
- 基于百度百科的介绍,单次的股票回测代表的是在指定股票组合条件下,对历史行情模拟得到的收益风险相关数据的量化分析。而我们量化策略的终点肯定是真实行情的收益,但在策略上线之前,需要对策略的有效性进行评估,直接实盘去测试策略风险和收益的时间和金钱成本都太高了,所以一般会采用回测和模拟交易两种模拟的方式来对策略进行测试,在低成本的条件下完成对策略效果的验证。
Part2: 量化回测框架选择
调研了下当前的量化回测框架主要分为两个大类:商业化框架和非商业化开源框架。
商业化框架
- 平台选择:主要有Quantopian(国外)、聚宽、万矿、优矿、米筐、掘金等
- 商业模式分析:商业化平台的商业模式从以上平台分析,主要有两种,一种是通过对免费版本做一些限制,然后在收费版中开放更多的权限和功能来变现;另一种是类似于quantopian的模式,通过举办一些比赛来收获一些高收益的策略,从高收益的策略中共享投资收益从而实现平台的变现
-
优缺点分析
- 优势:平台为你搭建了基础的数据和策略的回测实现,同时具有较好的可视化收益和风险回测效果分析,不用花人力成本进行维护
- 劣势:第一是对于专业化使用的收费较高;第二是对于在平台端保存的策略安全性较低;第三是对于一些策略或者工程的定制化开发,商业化平台的灵活性不够
- 结论:从长期策略的发展角度来看,选择开源框架在灵活性和安全性上都是比较好的选择
开源框架
- 框架选择:vnpy / zipline / backtrader / ...
-
框架优缺点分析
- zipline:目前最大的开源框架,很多商业化平台包括聚宽等都是基于zipline的开源框架进行定制化开发的架构。好处是有丰富的社区同时作为quantopian的底层,在架构的成熟度上也有一定的保证,但缺点是zipline作为回测框架没有实时交易相关的部分功能性上有所缺失,同时在测试过程中发现回测速度较慢同时在底层代码上存在一些对于国内市场数据兼容性的问题,对于修改源码来说相对也较为复杂
- vnpy:国内最大的开源框架,同时在github上的star数跟zipline旗鼓相当,同时囊括了国内的市场数据和实时交易等丰富完善的架构,以及包含可视化的GUI使得用户操作更加便捷。但缺点是对于mac用户的使用上非常不友好,主要针对的用户对象是windows系统,同时因为上层封装GUI,所以对于定制化灵活性等也有一定的损失,在代码的复杂度上也相对较高不容易源码修改
- backtrader:一个相对pythonic的开源策略回测框架,文档社区和代码结构都相对完善看起来简单易懂,同时在模拟实时交易以及回测速度上都有较好的保证,以及对于源码的阅读和修改上因为本身pythonic的编程风格所以也相对容易。但缺点是毕竟一个国外的框架对于国内实时交易的部分还需要额外的开发和整合
- 结论:从易用性/社区完善性/扩展性/性能等方面来考虑,backtrader可以作为一个比较理想的开源框架来作为策略开发的底层