关于QP的量化三大件:pyFolio,zipline,alphalens:TopQ极宽bakctrader课件系列

pyFolio,zipline的使用

pyFolio,zipline和alphalens,是全球最大量化网站quantopian的量化三套件(http://www.quantopian.com

其中:

  • zipline,量化回测分析
  • pyFolio,专业级量化结果图表分析,包括zipline、alphalens的分析数据
  • alphalens,多因子分析

这三大件,alphalens,多因子分析,因为私募团队,中小团队规模方面的限制,实盘很少使用。

以qp在行业的顶尖地位,理论上,zipline,pyfolio,应该是应用的很广泛,类似pandas。

可实际上,可能是出于商业利益的考虑,zipline,pyfolio这两个一线团队特别需要、甚至必不可少的量化模块库,安装使用非常麻烦,而很少人用的alphalens,安装使用却非常简单。

如果说不是人为设计的陷阱,完全说不过去。

陷阱#1

首先,zipline,pyfolio强调的是web版本,这个可以理解,qp毕竟是在线量化平台。

目前,全球,无论国内外,包括qp,都没有找到一个成熟的、可持续的在线量化商业模式;量化,核心是策略,这个单机才是王道。而且金融机构,不缺设备这点小钱。

陷阱#2

其次,zipline,pyfolio的安装,采用的是conda私有标准,而不是通用的pip,可能使用了一些类似喷墨打印机墨盒的限制性函数(非必要功能),pip安装非常麻烦。

参见:《python量化三大件和zipline的安装陷阱》  http://www.topquant.vip/?p=745

有篇blog《这周装了5天的zipline》

https://blog.csdn.net/qq_34838521/article/details/51477887

一路吐槽zipline的安装:

这周什么都没干连续5天天天都在安装zipline

装了卸,卸了装Python有5次

zipline有无数次,64位windows系统,

这位还是专业的程序员,会安装win系统,如果是纯金融人员,IT半小白,更加是欲仙欲死。

陷阱#3

老实说,pyFolio是qp三大件中,实盘唯一必不可少的专业模块库,虽然有ffn这些替代产品,不过在制作专业量化图表时,还是必须使用pyFolio.

另外两个模块库,alphalnes,因子分析,本身就用的很少,而且,目前智能投顾,使用的Tensorflow,pyTorch神经网络,采用的参数,规模和平台,比量化的因子分析,先进n个时代。

例如,alphaGO,围棋软件,简化版本模型,使用的参数就超过一亿个参数。这些AI模型里面的每种参数,对应的就是量化因子分析,其中的一个因子。

至于后期参数-因子分析,谷歌推出的TensoBoard可视化分析工具,“好用的使人想哭”,功能强大,使用简单,量化领域,目前还没有这种科研级别的图表分析工具。

github上面,设置有团队,在尝试用TensoBoard作为量化图表分析的平台,大家科研自行查找。

至于zipline,虽然是老牌量化软件,不过在架构上,使用上,除了一些在线量化平台,单机使用很少,理由很多,安装麻烦,使用麻烦,最重要的,没有集成pandas,只能调用pandas的数据,无法使用pd最强大的矢量化运算功能。成是

所以,qp三大件当中,用户最少的alphalens,安装使用最简单,pip直接安装,import直接调用。

zipline虽然麻烦,专业程序员还可以安装上去。

可是,更加重要的pyFolio,连很多专业程序员都没办法使用。

backtrader,作为目前最强的单机量化软件,从程序架构和源码,可以看出,开发团队,还是非常专业的。

可是,就是这样一个团队,面对pyFolio,也毫无办法:

这是btr官方blog2017的文章,这个问题到目前仍然没有解决。

这其中,技术是一个方面,另外更多的就是下一个陷阱。

陷阱#4

开源软件,经常会修改api函数接口,这个开源理解,可是经常升级,经常修改,这就会引起很多第三方关联应用的版本冲突。

btr面对pyfolio,就是这样一种情况。

qp的量化三大件,pyFolio,zipline,alphalens,不光是外部程序调用麻烦,这三大件自身之间,也存在种种冲突,兼容性问题。

还有,empyrica也是qp公司推出的一个常用的兼容量化函数库,和pyFolio这些,也存在严重的版本冲突。


当然,出于商业利益考虑,这些我们都可以理解。

TopQuant极宽量化开源组,也是通过多种优化手段,包括修改办法关联模块库的底层代码,才完成了qp三大件的集成与商业。

所以《zwPython2019m1量化AI优化版》http://www.topquant.vip/?p=826

特别强调:

需要注意的是,zwPython2019,针对量化程序,进行了特别优化,并且修改了多个关联模块库的底层源码。
   一般情况下,请用户不要自行升级模块库,金融行业相对比较保守,通常也无需升级。
   如果特殊情况,需要升级模块库,请调用pip命令安装、升级模块库,并使用以下参数:
    –no-deps  (非依赖升级)
    同时,在升级前,做好备份。

所以zwpy2019,也称为TopQ魔改版python开发平台。

python是一种通用性很强的编程语言,这种修改不会影响纯python程序的兼容性,最多就是调用pyfolio模块时,在其他平台出现类似缺乏dll语句错误,屏蔽对pyfolio模块的调用即可。

关于pyFolio的调用,在backtrader里面,我们有专门的一个课时和配套的案例:

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注