天天看点

backtrader高级专题:策略绩效评价:用不了pyfolio?还有quantstats

本文完整内容请参见我的微信公众号“optMaster”中的backtrader高级专题部分,或参看我们开发的视频课程中backtrader高级专题部分。

目录:

1 引例:输出html绩效报表

2 Quantstats详解

2.1 quantstats.stats:输出文字形式的各项绩效指标

2.2 quantstats.plots:以图的形式输出绩效指标(仅notebook)

2.3 quantstats.reports:生成文字或(和)图表形式的综合报表

3 重要指标简介(sharpe、sortino、calmar)

4 源码下载

===========================================

策略运行绩效评价是量化交易很重要的一环。backtrader提供各种分析者对象analyzer,可以输出各项策略绩效指标。但输出结果是嵌套字典方式,要把其内容规整地打印出来,对初学者是一个挑战,并且无可视化的绩效报表,还缺少一些重要指标,比如索提诺比率(sortino ratio)。

本来,backtrader可以集成PyFolio这个第三方库,方便地以可视化方法输出这些指标。但是,由于PyFolio后来变更了接口,两者就没有集成了。好在,还有一个衡量策略绩效指标的第三方库quantstats,可以非常方便地与backtrader集成。quantstats可以输出html报表,包括各项绩效指标和图表。可以用命令pip install quantstats安装该库。

1.引例:输出html绩效报表

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

backtrader高级专题:策略绩效评价:用不了pyfolio?还有quantstats
backtrader高级专题:策略绩效评价:用不了pyfolio?还有quantstats
backtrader高级专题:策略绩效评价:用不了pyfolio?还有quantstats
backtrader高级专题:策略绩效评价:用不了pyfolio?还有quantstats

产生以上报表的代码如下:

......此处省略3000字....

quantstats可以输出的指标列表如下:

['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',
 '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',
 'outlier_loss_ratio',
 'outlier_win_ratio',
 'outliers',
 'payoff_ratio',
 'profit_factor',
 'profit_ratio',
 'r2',
 'r_squared',
 'rar',
 'recovery_factor',
 'remove_outliers',
 'risk_of_ruin',
 'risk_return_ratio',
 'rolling_greeks',
 'ror',
 'sharpe',
 'skew',
 'sortino',
 'tail_ratio',
 'to_drawdown_series',
 'ulcer_index',
 'ulcer_performance_index',
 'upi',
 'utils',
 'value_at_risk',
 'var',
 'volatility',
 'win_loss_ratio',
 'win_rate',
 'worst']

['daily_returns',
 'distribution',
 'drawdown',
 'drawdowns_periods',
 'earnings',
 'histogram',
 'log_returns',
 'monthly_heatmap',
 'returns',
 'rolling_beta',
 'rolling_sharpe',
 'rolling_sortino',
 'rolling_volatility',
 'snapshot',
 'yearly_returns']
           

本文完整内容请参见我的微信公众号“optMaster”中的backtrader高级专题部分,或参看我们开发的视频课程中backtrader高级专题部分

编辑于 1 小时前