量化投资分析工具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
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,backtrader被认为是传统的量化框架,主要用于传统的技术指标分析和基于规则的交易策略。然而,backtrader也可以与深度学习等新兴技术结合使用,以应对更复杂的量化交易问题。 深度学习在量化交易已经展现出了潜力,特别是在处理非线性、大规模数据和复杂模式识别方面。通过将深度学习与backtrader结合,你可以将深度学习模型应用于数据预处理、特征工程、信号生成或者增强策略的决策过程。 有几种方式可以结合backtrader和深度学习: 1. 数据预处理:使用深度学习模型对原始市场数据进行预处理,例如降噪、特征提取、数据归一化等,然后将处理后的数据输入到backtrader进行进一步的分析和策略开发。 2. 信号生成:使用深度学习模型训练生成交易信号的模型,例如卷积神经网络(CNN)或递归神经网络(RNN)。你可以将生成的信号与backtrader结合,用于策略的买卖决策。 3. 增强学习:结合深度强化学习算法与backtrader,可以让你的策略通过与市场进行交互来优化和学习。深度强化学习可以自动调整策略参数、优化交易决策等。 当然,使用深度学习的量化交易并不是一件简单的事情,需要深入了解深度学习和backtrader的原理和应用。同时,要注意风险管理和模型评估等问题。因此,建议在尝试深度学习与backtrader结合之前,先熟悉backtrader和基本的量化交易概念。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值