量化投资分析工具quantstats介绍及其在backtrader量化框架中使用

关注微信公众号获取最新最全量化文章: 诸葛说talk 

简介

quantstats -- 衡量策略绩效指标的python lib库,用于投资组合分析。主要由3部分组成:

  • quantstats.stats:用于计算多种性能指标,如夏普比率、胜率等

  • quantstats.plots:用于性能、下降趋势、月度回报等绩效指标的可视化

  • quantstats.reports:用于生成度量报告,可保存为html文件

安装&使用

  • 安装:pip install quantstats

  • 使用方法:

  1. 使用quantstats.stats计算多种性能指标,如夏普比率、胜率等

import quantstats as qs
qs.extend_pandas()
stock = qs.utils.download_returns('TSLA')
stock
Date
2010-06-29         NaN
2010-06-30   -0.002512
2010-07-01   -0.078472
2010-07-02   -0.125683
2010-07-06   -0.160938
                ...   
2022-04-18    0.019584
2022-04-19    0.023758
2022-04-20   -0.049555
2022-04-21    0.032317
2022-04-22   -0.003698
Name: Close, Length: 2976, dtype: float64
qs.stats.sharpe(stock)
1.0828146689088534
stock.sharpe()
1.0828146689088534

支持的完整指标:

[f for f in dir(qs.stats) if f[0] != '_']
['adjusted_sortino',
 'autocorr_penalty',
 'avg_loss',
 'avg_return',
 'avg_win',
 'best',
 'cagr',
 'calmar',
 'common_sense_ratio',
 'comp',
 'compare',
 'compsum',
 'conditional_value_at_risk',
 'consecutive_losses',
 'consecutive_wins',
 'cpc_index',
 'cvar',
 'distribution',
 'drawdown_details',
 'expected_return',
 'expected_shortfall',
 'exposure',
 'gain_to_pain_ratio',
 'geometric_mean',
 'ghpr',
 'greeks',
 'implied_volatility',
 'information_ratio',
 'kelly_criterion',
 'kurtosis',
 'max_drawdown',
 'monthly_returns',
 'omega',
 'outlier_loss_ratio',
 'outlier_win_ratio',
 'outliers',
 'payoff_ratio',
 'pct_rank',
 'profit_factor',
 'profit_ratio',
 'r2',
 'r_squared',
 'rar',
 'recovery_factor',
 'remove_outliers',
 'risk_of_ruin',
 'risk_return_ratio',
 'rolling_greeks',
 'rolling_sharpe',
 'rolling_sortino',
 'rolling_volatility',
 'ror',
 'serenity_index',
 'sharpe',
 'skew',
 'smart_sharpe',
 'smart_sortino',
 'sortino',
 'tail_ratio',
 'to_drawdown_series',
 'ulcer_index',
 'ulcer_performance_index',
 'upi',
 'value_at_risk',
 'var',
 'volatility',
 'warn',
 'win_loss_ratio',
 'win_rate',
 'worst']
  1. 使用quantstats.plots以图形的形式输出绩效指标

qs.plots.snapshot(stock, title="TSLA Performance')

支持的全部绘图函数关注微信公众号查看: 诸葛说talk

使用quantstats.reports生成综合报表,可保存为html文件

qs.reports.html(stock, "SPY")

支持输出7种不同的报告:

  1. qs.reports.metrics(mode='basic|full", ...) - 展现基础/所有指标

  2. qs.reports.plots(mode='basic|full", ...) - 展现基础/所有绘图

  3. qs.reports.basic(...) - 展现基础指标和绘图

  4. qs.reports.full(...) - 展现所有指标和绘图

  5. qs.reports.html(...) - 生成html完整报告

[f for f in dir(qs.reports) if f[0] != '_']

['basic', 'full', 'html', 'iDisplay', 'iHTML', 'metrics', 'plots']

quantstats输出的html报表如下,可以看到左边是可视化绩效指标,右边是文字绩效指标。

在backtrader中使用quantstats

策略绩效评价是量化交易很重要的一环,backtrader提供多种分析者对象analyzer,可以输出各项策略绩效指标,但输出结果是字典方式的数据,没有可视化的绩效报表,而且还缺少一些重要指标,比如索提诺比率(sortino ratio),使用起来不友好。quantstats可以输出html报表,包括各项绩效指标和图表,且可以非常方便地与backtrader集成。

backtrader使用quantstats示例代码欢迎关注微信公众号查看&交流。微信公众号: 诸葛说talk

最新的文章会优先发布在微信公众号上。

更多文章参考:量化小站诸葛说talk

交流

欢迎大家留言,关注微信公众号多多交流,最新的文章会优先发布在微信公众号上。微信公众号: 诸葛说talk

参考

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值