Quantopian是国外著名的量化交易平台,早期聚宽就是仿照这个网站开发的,算是这类平台的鼻祖了,可惜Quantopian最近刚宣布要停止运营了。Quantopian开发了许多优秀的开源项目,其中比较著名的有zipline、pyfolio和alphalens,zipline是事件驱动的回测引擎,Alphalens与Zipline开源回溯测试库以及Pyfolio配合使用,Pyfolio提供金融投资组合的绩效和风险分析。

Alphalens主要功能是alpha因子的相关性统计数据和图表展示,包括:

  • Returns Analysis
  • Information Coefficient Analysis
  • Turnover Analysis
  • Grouped Analysis

下面通过一个例子来了解下Alphalens的主要用法,最重要的函数有两个:

  • get_clean_factor_and_forward_returns:数据预处理,将因子数据,价格数据和组映射格式化为包含对齐的时间戳和资产代码的MultiIndex索引的DataFrame。返回的数据将被格式化为适合Alphalens函数的格式。因子数据格式是MultiIndex索引,level0是时间,level1是资产代码,数据值只有一列为因子值,数据格式如下图所示:

  • create_full_tear_sheet: 生成全面的单因子分析和评估数据。

通过tushare获取A股股票数据,并将结果处理成get_clean_factor_and_forward_returns参数要求的格式

import pandas as pd
import tushare as tspro = ts.pro_api()
# 此接口获取的数据为未复权数据,回测建议使用后复权数据,这里为批量获取股票数据做了简化
df = pro.daily(ts_code='000001.SZ,600000.SH', start_date='20200101', end_date='20201231')
df.index = pd.to_datetime(df['trade_date'])
df.index.name = None
df.sort_index(inplace=True)
# MultiIndex,level0为日期,level1为股票代码,assets为get_clean_factor_and_forward_returns所需的因子数据格式
assets = df.set_index([df.index, df['ts_code']], drop=True)
# column为股票代码,index为日期,值为股票收盘价
close = df.pivot_table(index='trade_date',columns='ts_code',values='close')
close.index = pd.to_datetime(close.index)

生成的assets格式入下图所示,红框为index:

生成的close格式如下图所示:

接下来使用alphalens工具对数据进行分析,这里我们使用股票涨跌幅(字段名为pct_chg)作为因子数据

from alphalens.utils import get_clean_factor_and_forward_returns
from alphalens.tears import create_full_tear_sheet
# 需要将pct_chg做shift处理,否则将使用未来数据
ret = get_clean_factor_and_forward_returns(assets[['pct_chg']].shift(2),close)
create_full_tear_sheet(ret, long_short=False)

使用默认参数的情况下,ret将包含未来1、5、10日收益率,factor因子值,这里对应pct_chg列,factor_quantile为因子分组结果,默认会将因子分成5组,ret结果如图所示:

调用create_full_tear_sheet会生成因子分析结果,包含分位数统计信息、收益率信息、分组平均收益率柱状图、所有收益率分布图、单信号组合构建收益率图等,截取部分数据图如下:

以上就是样例全部内容,可以看到alphalens功能非常丰富,还需要继续深入学习了解。

参考

http://quantopian.github.io/alphalens/

https://www.quantopian.com/posts/alphalens-a-new-tool-for-analyzing-alpha-factors

欢迎您扫码订阅我的微信公众号: Python量化交易实战

Quantopian单因子分析工具:Alphalens相关推荐

  1. Java使用当前日期加四位数实现每日自增单号工具类

    方法中需要传递你查DB的最新的订单号,废话不多说,直接上代码 import java.text.SimpleDateFormat; import java.util.Date;/*** @author ...

  2. 什么表单设计工具能快速提升办公效率?

    在信息化快速发展的年代,谁能掌握更先进的技术,谁就能拥有更广阔的发展前景.在以前的办公环境中,传统的表单制作工具占据了主流地位,随着办公自动化的快速发展,传统表单工具的弊端也暴露出来了,采用更先进的表 ...

  3. 简单沟通,远离纸质繁琐!灵活简单的在线表单制作工具

    在线表单制作表单的便利性.灵活性.简易性等优势特点已经成为当今现代化办公中的必需品.随着科技的进步和发展,大到企业.学校,小到集体.个人都需要采用正确的方式去采集信息.鉴于此,在线表单制作工具就是比较 ...

  4. 表单设计工具和报表工具

    收集了一些资料: 1  .IBM发布开源HTML 5可视化设计工具Maqetta 4月12日,来自 IBM Impact 2011 的消息,IBM发布 Maqetta,一个创建桌面和移动用户界面的HT ...

  5. 推荐使用什么样的平台表单制作工具好?

    在办公自动化迅猛发展的今天,传统的表单制作工具已经不能满足各行各业的生产需求,引用专业的低代码开发平台表单制作工具可以助力企业提高作业协作效率.那么,什么平台的表单制作工具可以实现这一目的?今天,我们 ...

  6. 网站制作笔记-bootstrap可视化布局,表单生成工具,快速制作网页原型

    百度搜到的连接:http://www.bootcss.com/p/layoutit/  是2.0的版本 结果我下载了3.0的bootstrap库,发现运行不了 找到了3.0版本的布局系统:http:/ ...

  7. 什么叫表单开源工具?

    在科技日新月异的今天,传统的表单工具已经无法满足日益变化的市场需求了.业务量的激增.行业的竞争激烈等环境都促使更多的企业采用表单开源工具来提质增效.那么,表单开源工具是什么?都有哪些优势特点?今天这篇 ...

  8. 万能表单解析工具在xheditor上传文件中的应用

    利用JadePool中的万能表单解析工具cn.jadepool.web.ProcessForm可以轻松解析表单提交的全部信息,甚至可以轻松获取一个未知结构的表单由那些字段组成.以下是在xheditor ...

  9. 比起传统纸质表单,在线表单制作工具优势在哪?

    在科技发达的今天,在线表单制作工具受到了各行各业客户的青睐和喜爱.作为一种可以直接在线服务客户的营销手段,它的高效.充足.方便的功能制作优点,让企业管理人员可以摒弃传统的纸质表单统计工具,大大提升了办 ...

最新文章

  1. autoconfig.xml与antx.properties一级application.properties之间的关系
  2. 这一篇让你真正理解Mysql的四种隔离级别
  3. 卸载Win10+ubuntu14双系统中的ubuntu系统
  4. 【译】Notes on Blockchain Governance
  5. Dubbo 2.7三大特性详解
  6. 主板和机箱的螺丝_铝镁合金外壳,双侧透设计,乔思伯TR03-A机箱 装机体验
  7. 第32月第8天 打包 Framework 时使用 CocoaPods 引入第三方库的方法
  8. SpringBoot2.1.5(14)---外部配置
  9. Android 应用开发---ViewPager----1.相关基本知识
  10. WebSocket之JS发送二进制
  11. python模块datetime_Python模块-datetime
  12. 2799 高校排名 加强版
  13. 群体智能优化算法之萤火虫群优化算法(Glowworm Swarm Optimization,GSO)
  14. 西门子em235模块的功能_30天快速入门西门子PLC(第六天)
  15. 《孙子兵法》的逻辑结构
  16. WP Super Cache远程代码执行漏洞分析
  17. 记一次git pull 错误
  18. 教程08-微擎系统内置所有函数大全
  19. QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息
  20. 微信小程序文字链接生成二维码,扫描识别二维码

热门文章

  1. MPB:中农冯固组-​利用13C-DNA-SIP法示踪根际和菌丝际活性解磷细菌
  2. rainbow和论坛的集成
  3. Java程序设计-书上重点总结
  4. 微服务 | Martin Fowler
  5. 六月回顾 | 盛夏已至,不负每一次期待
  6. 磁盘阵列(RAID)级别的简单介绍
  7. C语言让程序自己获得管理员权限
  8. 一图必通 | 计网~TCP、IP
  9. Android之NFC
  10. 神经网络预测指标是什么,神经网络怎么预测数据