Backtrader(七)- 分析者Analyzer(基本使用)

前言

评价策略是否成功,不仅要看策略是否赚钱,还要看策略是否承担了过大的风险。这些都有一些专门的指标来评价,比如:夏普率、最大回撤、胜率等。 分析者对象Analyzer就是用来完成策略的绩效评价工作。

添加分析者对象

cerebro.addanalyzer(Kelly, _name='kelly')  # Kelly为分析者类

注意:当分析者对象需要参数时,也是这里通过kv形式传入

分析者对象返回的数据

每一个策略对象都会返回一组已添加的分析者对象数据(如:当使用策略参数优化optstrategy时,每一个参数组合都会生成一个策略对象,都会有一组对应的分析者数据)

获取分析者对象数据

这里举例只有一个策略对象的情况,data中 包含所有已添加的分析者对象数据

analyzer_data = cerebro.run()
data = analyzer_data[0]

当我们要获取其中一个分析者的数据时:可通 _name获取

kelly_data = data.analyzers.kelly.get_analysis()

还可以获取这个策略对象的 参数等

data.params.fast_length

分析者对象数据解析

分析者的数据是以 orderDict 的形式保存的,并且多层嵌套。使用上和dict一致。

    for k, v in kelly.items():
        print(k, v)

输出:

kellyRatio -0.35302043729697774
kellyPercent -35.30204372969777

你可能感兴趣的:(量化,python)