介绍

pyfolio是由Quantopian开发的Python库,用于对金融投资组合进行绩效和风险分析。它与Zipline开源回溯测试库配合使用良好。
pyfolio的核心是所谓的“tear sheet ”,它由各种单独的图组成,这些图提供了交易算法性能的全面图像展示。

入门示例

这里以双均线策略来做演示,当20日均线上穿40日均线买入股票,当20日均线下穿40日均线则卖出股票,首先我们通过tushare获取股票历史数据

import pandas as pd
import numpy as np
import tushare as ts
import pyfolio as pfpro = ts.pro_api()
df = ts.pro_bar(ts_code='000001.SZ', adj='hfq', start_date='20150101', end_date='20191231')
df.index = pd.to_datetime(df['trade_date'])
df.sort_index(inplace=True)

接下来生成策略信号

df['ma20'] = df['close'].rolling(20).mean()
df['ma40'] = df['close'].rolling(40).mean()
# 计算20日均线和40日均线的距离
df['diff'] = df['ma20'] - df['ma40']
# 当diff值大于0买入股票,当diff值小于0卖出股票
df['signal'] = np.where(df['diff'] > 0, 1, 0)
df['signal'] = np.where(df['diff'] < 0, 0, df['signal'])
# 计算策略每日收益,这里计算每日收益使用log函数,signal计算由于使用了当天的收盘价,所以需要shift 1天,否则会用到未来数据
df['strategy'] = np.log(df['close'] / df['close'].shift(1)) * df['signal'].shift(1)
# 计算资产收益率
df['equity'] = df['strategy'].cumsum() + 1

展示资产收益率曲线,这里对股价做了归一化处理以便数据展示,可以看到双均线策略不仅跑赢股价,并且资金曲线回撤相对较小。

df['close_norm'] = df['close'] / float(df['close'][0])
df[['close_norm','equity']].plot(figsize=(12,6))

上图看到的信息有限,接下来是使用pyfolio工具对投资回报进一步分析,代码如下:

pf.create_full_tear_sheet(df['strategy'], benchmark_rets=np.log(df['close'] / df['close'].shift(1)))

首先是返回汇总信息:

介绍常用的几个指标:

  • Annual return:年化回报率
  • Cumulative returns: 累计收益率,是策略从开始执行到结束的总资产收益率。
  • Annual volatility:年化波动率
  • Sharpe ratio:夏普比率,一种非常流行的风险指标。它表示每单位风险(通过标准差衡量)的超额收益(超过无风险利率)。
  • Sortino ratio: 索提诺比率,Sharpe比率的修改版本,其中标准偏差由下行偏差代替。下行偏差仅衡量该系列的负波动性,严格来说是在称为最低可接受收益的预定水平以下。
  • Maximum drawdown :最大跌幅—指示峰和谷之间的最大跌幅(以%表示)
  • Tail ratio:对daily return的分布选取95分位和5分位,然后相除取绝对值。本质的含义就是赚取的return比亏钱的大多少倍。
  • Daily value at risk(daily Value-at-Risk )
    每日风险价值-另一个非常流行的风险指标。在这种情况下,这表明在95%的情况下,将头寸(投资组合)再保留1天,损失不会超过2.3%。

下图从各个角度对资产回报进行更详细的图表展示

参考

https://quantopian.github.io/pyfolio/
https://zhuanlan.zhihu.com/p/118108419
https://towardsdatascience.com/the-easiest-way-to-evaluate-the-performance-of-trading-strategies-in-python-4959fd798bb3

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

Quantopian投资组合和绩效分析工具:Pyfolio相关推荐

  1. 做人力资源需要掌握python_9种人力资源分析工具,高效打造数字化HR全流程

    对于许多人和组织而言,采用HR分析是一大进步.确实,我经常被问到:"最好使用什么人力资源分析工具?"本文将为您提供该问题的答案,以下是要使用的九种最佳人力资源分析工具的列表. 1. ...

  2. QlikSense导入oracle数据,【主流BI分析工具对比】12款顶级BI分析工具最佳用例

    如今的市面上充盈着商务智能(BI)工具,可以解决所有类型业务与行业日益增长的分析需求.然而,哪款(或哪些)分析工具值得购买呢? 在本文中,通过检验来自12家顶级厂商的BI分析工具:Birst.IBM. ...

  3. 项目经理必备的16个商业分析工具

    根据Gartner的一项最新调查显示,商业分析在未来四年中会呈现上升态势.对于项目经理的你来说,具备相应的商业分析工具也很重要!为你奉上16个商业分析工具,一起看过来吧! 01.VRIO 从经济价值( ...

  4. 有没有好用的目标管理、项目管理和绩效管理工具?

    智办事是一款目标管理.项目管理和绩效管理工具. 1.战略拆解.目标对齐 智办事可以做到:自上而下制定和拆解战略目标,形成一张组织战斗的战略大图.自下而上关联和汇总目标结果,目标计划实时追踪目标的进度. ...

  5. 陕西活性炭需求分析_20212027年中国粉末活性炭行业市场发展现状调研与投资趋势前景分析报告...

    报告说明:    博思数据发布的<2021-2027年中国粉末活性炭行业市场发展现状调研与投资趋势前景分析报告>介绍了粉末活性炭行业相关概述.中国粉末活性炭产业运行环境.分析了中国粉末活性 ...

  6. python商业分析_科研进阶 | 纽约大学 | 商业分析、量化金融:基于Python的商业分析工具...

    科研进阶 | 纽约大学 | 商业分析.量化金融:基于Python的商业分析工具(8.22开课)​mp.weixin.qq.com 课题名称 = 基于Python的商业分析工具 = 项目背景 数据分析为 ...

  7. 股票量化分析工具QTYX使用攻略系列——双底形态选股

    前言 自从股票量化分析工具QTYX新增双底形态选股功能以来,大家的反响一直很热烈.很多星球会员利用这个功能帮助自己抓到了大牛股. 确实,双底形态是由市场力量形成的,我们只需顺势而为即可,特别是大周期. ...

  8. 定制自己的股票量化分析工具QTYX-V2.0版-使用帮助

    提供源码的初衷 为了帮助读者建立一座从书本知识到实战应用之间的"桥梁",凡是购买书籍的读者都可以获取与书本配套的量化分析工具源码. 工具的源码是把书中知识点组合起来,使用wxPyt ...

  9. 网站分析工具使用方法的介绍,快速高效提高网站分析效率

    网站运营离不开数据分析,有分析就需要借助工具来实现,你真的会用网站分析工具吗? 目前市面上有很多不同类型的网站分析工具,有免费的和付费的,常见的工具比如GoogleAnalytics.百度统计.99c ...

最新文章

  1. 物联网白皮书【2018】重磅发布|今年的物联网产业交出了一张怎样的答卷
  2. Linux 引导过程内幕
  3. Hadoop_23_MapReduce倒排索引实现
  4. python文件操作与路径
  5. 7年工作经验,面试官竟然让我写算法题?
  6. python包requests使用笔记
  7. 查看python版本和django版本
  8. LeetCode Longest Increasing Subsequence
  9. 优化大中型企业Internet连接
  10. SSE图像算法优化系列十五:YUV/XYZ和RGB空间相互转化的极速实现(此后老板不用再担心算法转到其他空间通道的耗时了)。...
  11. 推荐几个好用的 html5 游戏源码下载网站
  12. 项目实训12——解析建表的SQL语句
  13. 王阳明:志不立,天下无可成之事
  14. 【ACwing】一、基础算法:1.1 递归枚举(指数型)
  15. 详解文本格式(Text)[第二天]
  16. 背后的力量 | 升级电子病历基础架构 华云数据助力华中科技大学同济医学院附属协和医院打造就医新模式
  17. 42表盘直径是从哪测量_表盘直径多大合适,怎样测量手表表盘的直径
  18. windows修改文件创建时间、修改时间以及最后访问时间
  19. Linux常见的软件包管理任务
  20. 苹果7如何设置手机邮箱服务器,iphone7 126邮箱如何设定发件服务器

热门文章

  1. 目标检测(六):DSSD
  2. fn映射 mac 键盘_如何在Mac OS X下修改Fn键的属性?
  3. slotformatcombinations_向未授权频谱中的小区应用时隙格式指示的方法和设备与流程...
  4. LabVIEW操作鼠标滚轮放大/缩小图像
  5. python刷B站播放量
  6. TensorFlow Mobilenet SSD模型压缩并移植安卓上以达到实时检测效果
  7. ISDEV : error -6003的解决办法
  8. 学会记忆--学会遗忘
  9. 赵雅智:android教学大纲
  10. sql日志的详细打印的配置