You are here:  Home » 量化交易与机器学习 » backtrader » 分析仪参考 – backtrader中文教程

分析仪Reference

AnnualReturn

class backtrader.analyzers.AnnualReturn()

该分析仪通过观察开始计算AnnualReturns和year

Params结束:

  • (无)

<>6<>

  • rets:计算年度returns
  • ret<>8<>

get_analysis

  • 返回周年申报表的字典(键:年)

Calmar

class backtrader.analyzers.Calmar()

该分析仪计算CalmarRatio时间范围可以是从基础数据中所使用的不同PARAMS:

  • timeframe(默认:None<>16<>None<>17<>timeframe该1st系统中的数据将被used

    通过TimeFrame.NoTimeFrame考虑无整个数据集时间constraints

  • compression(默认:None<>24<>

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后1st该系统的数据将是used

  • None
  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

-“get_analysis“()

返回OrderedDict与该时间段和关键相应的滚动卡尔马ratio

-“calmar“最新计算卡尔马比率()

DrawDown

class backtrader.analyzers.DrawDown()

该分析仪计算交易系统刮涂统计信息,如缩编在%s和以美元计价,最大降深在%s和美元,缩编值长度和缩编最大length

Params:

  • fund(默认值:None

    如果None的代理的实际模式(fundmode- 真/假)将可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmodedocumentation

    Set它的压缩到TrueFalse用于特定behavior

-“get_analysis“()

返回字典(带。符号支持和subdctionaries)与缩编统计作为值,下列键/属性可用:

  • drawdown – 在0.XX%缩编值
  • moneydown– 货币units
  • len缩编值 – 缩编length
  • max.drawdown – 在0.XX%最大压降值
  • max.moneydown – 在货币units
  • max.len最大压降值 -最大降深length

TimeDrawDown

类backtrader.analyzers.TimeDrawDown()

该分析仪计算所选择的交易系统刮涂时间范围可以是从基础数据中所使用的不同PARAMS:

  • timeframe<>64<>None<>65<>None<>66<>timeframe<>67<><>68<>系统中的数据将被used

    通过TimeFrame.NoTimeFrame考虑无整个数据集时间constraints

  • compression(默认:None<>73<>

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后该系统的1st数据的压缩将used

  • None
  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

-“get_analysis“()

返回一个字典(带。符号支持和subdctionaries)与缩编统计作为值,下列键/属性可用:

  • drawdown – 在货币units
  • maxdrawdown缩编值 – – 缩编在0.XX%
  • maxdrawdownperiod值缩编length

– 这些都是可用的运行作为属性期间()

  • dd
  • maxdd
  • maxddlen

GrossLeverage

class backtrader.analyzers.GrossLeverage()

该分析仪计算当前的总的杠杆战略在时间表basis

Params:

  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

– get_analysis()

返回与返回为值的字典和日期时间点每个返回作为keys

PositionsValue

class backtrader.analyzers.PositionsValue()

该分析仪报告当前组的位置的值datas

Params:

  • 的时间内(默认:None)如果None那么系统的1st数据的时间表将是used
  • compression(默认:None

    只用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后该系统的1st数据的压缩将used

  • headers(默认:False

    添加一个初始关键辞典保持与名称的结果在DATAS(“日期时间”作为key

  • cash(默认:False

    包括实际的现金作为额外的位置(头“现金”将作为名称)

– get_analysis()

返回与作为回报值和日期时间点的字典每个返回作为keys

PyFolio

class backtrader.analyzers.PyFolio()

该分析仪使用4个孩子分析仪收集数据并把它转换在一个数据集兼容pyfolio

儿童Analyzer

  • TimeReturn

    Used计算全球投资组合value

  • PositionsValue

    Used的回报率来计算每个数据位置的值。它集headerscash参数True

  • Transactions

    用于上的数据(大小,价格,价值)记录每次交易。集该headers参数True

  • GrossLeverage

    可以跟踪总杠杆率(战略多少投资)的

PARAMS:

These are passed transparently to the children

* timeframe (default: `bt.TimeFrame.Days`)

  If `None` then the timeframe of the 1st data of the system will be
  used

* compression (default: 1\`)

  If `None` then the compression of the 1st data of the system will be
  used

没有timeframecompression是下面的默认设置行为pyfolio这正与daily数据和其上采样到obtaine像每年returns.

– get_analysis)值(

返回与作为回报值和日期时间点的字典每个返回作为keys

get_pf_items()

返回其可用于进一步的处理with

`pyfolio`

returns, positions, transactions, gross_leverage

Because的对象是指将被用作直接输入到4个元素的元组pyfolio这种方法使得pandas转换的内部backtrader结果pandas DataFrames这是预期输入通过,例如,pyfolio.create_full_tear_sheet

的方法,将打破如果pandas是不installed

LogReturnsRolling

类backtrader.analyzers.LogReturnsRolling()

这种分析仪计算轧制返回给定的时间内和compression

Params:

  • timeframe(默认:None)如果None`的timeframe所述1st数据的在该系统将used

    PassTimeFrame.NoTimeFrame考虑,没有整个数据集时间constraints

  • compression(默认:None

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后该系统的1st数据的压缩将used

  • data(默认:None

    参考资产跟踪,而不是组合value.

    NOTE:这些数据必须已被添加到了cerebro实例与addata, resampledatareplaydata

  • firstopen(默认值:True

    当跟踪的data以下完成时,返回跨越边界的时间表,例如Years

    • 最后close上年用作参考价格查看当前year

    The问题的回报是1st计算,因为数据有没有**以前**收盘价。因此,当这个参数是Trueopening价格将被用于1st calculation.

    This要求数据馈送以具有open价格(对于close标准[0]符号将不参考被用于一个场价格)

    否则最初的接近将used.

  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmodedocumentation

    将它设置为TrueFalse特定behavior

– get_analysis()

返回与作为回报值和日期时间点的字典每个回报keys

PeriodStats

class backtrader.analyzers.PeriodStats()

计算给定timeframe

PARAMS:

  • timeframe(默认:Years)如果Nonetimeframe该1st系统中的数据将被used

    PassTimeFrame.NoTimeFrame考虑,没有整个数据集时间constraints

  • compression(默认:1

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后将1st该系统的数据将是used

  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmodedocumentation

    将它设置为TrueFalse特定behavior

get_analysis返回一个包含键的字典:

  • average
  • stddev
  • positive
  • negative
  • nochange
  • best
  • worst

如果参数zeroispos设置以True,期间没有变化将被算作positive

Returns

class backtrader.analyzers.Returns()

总计,中等,使用化合物和年收益计算对数approach

See:

  • HTTPS:// www.crystalbull.com /夏普比,更好,与日志-返回/

PARAMS:

  • timeframe(默认:None

    如果Nonetimeframe该1st系统中的数据将被used

    PassTimeFrame.NoTimeFrame考虑,没有整个数据集时间constraints

  • compression(默认:None

    只用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后该系统的1st数据的压缩将used

  • tann(默认值:None

    期数使用用于the

    namely的年度化(归一化):

    • days: 252
    • weeks: 52
    • months: 12
    • years: 1
  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

– get_analysis()

返回与返回为值的字典和日期时间点每个返回作为返回keys

The字典以下键:

  • rtot:总化合物return
  • ravg:在整个期间(时间范围的特定)平均回报
  • rnorm:年度化/归一化return
  • rnorm100:年度化/归返回在100%

SharpeRatio

类backtrader.analyzers.SharpeRatio()

这个分析仪采用无风险计算战略的SharpeRatio资产这简直就是一个利息rate

Params:

  • timeframe:(默认:TimeFrame.Years
  • compression(默认:1

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

  • riskfreerate(默认: 0.01 -> 1%)

    在每年的术语表达(见convertrate以下)

  • convertrate(默认:True

    转换的riskfreerate从年度到每月,每周或每天率。分日转换不supported

  • factor(默认:None

    如果None,从无风险利率的转换系数annual252,周::52,月:12,年:所选择的时限,由预定义的table

    Days选择1

    否则指定的值将被used

  • annualize(默认:False

    如果convertrateTrueSharpeRatio将在交付该timeframe的choice.

    In大多数场合SharpeRatio`以年率形式交付。转换的riskfreerate从每年每月,每周或每日率。分日转换不supported

  • stddev_sample(默认:False

    如果设置为True`的standard deviation将被计算通过1在下降的平均分母。这是用来当计算standard deviation如果它认为,不是所有的样品用于计算。这就是所谓的Bessels’
    correction

  • daysfactor(默认:None

    老命名为factor。如果设置为别的比None和该timeframeTimeFrame.Days将假设这是老码和值将used

  • legacyannual(默认:False

    使用AnnualReturn回报分析仪,它顾名思义仅适用于years

  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set来TrueFalse特定behavior

– get_analysis()

返回与键一本字典“sharperatio”保持ratio

SharpeRatio_A

class backtrader.analyzers.SharpeRatio_A()

的SharpeRatio的扩展,其直接返回夏普比率在年form

The以下PARAM已经从SharpeRatio

  • annualize改变(默认:True

SQN

class backtrader.analyzers.SQN()

SQN或SystemQualityNumber。由范K.撒普定义归类交易systems.

  • 1.6 – 1.9以下average
  • 2.0 – 2.4 Average
  • 2.5 – 2.9 Good
  • 3.0 – 5.0 Excellent
  • 5.1- 6.9 Superb
  • 7.0 – 圣杯

公式:

  • SquareRoot(NumberTrades)*平均值(TradesProfit)/ StdDev(TradesProfit)

当交易次数> = 30时,sqn值应被认为是可靠的

– get_analysis()

返回一个字典,键“中队”和“交易”(数深思熟虑的交易)

TimeReturn

class backtrader.analyzers.TimeReturn()

该分析仪通过观察开始计算收益和timeframe

PARAMS:

  • timeframe(默认:None)如果Nonetimeframe该1st系统中的数据将被used

    PassTimeFrame.NoTimeFrame考虑,没有整个数据集时间constraints

  • compression(默认:None

    仅用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后将1st该系统的数据将是used

  • data(默认:None

    参考资产跟踪,而不是组合value.

    NOTE:这些数据必须已被添加到了cerebro实例与addata, resampledatareplaydata

  • firstopen(默认值:True

    当跟踪的data下面是完成时的回报跨越边界的时间表,例如Years

    • 最后close上年用作参考价格查看当前year

    The问题的回报是1st计算,因为数据有没有**以前**收盘价。因此,当这个参数是Trueopening价格将被用于1st calculation.

    This要求数据馈送以具有open价格(对于close标准[0]符号将不参考被用于一个场价格)

    否则最初的接近将used.

  • fund(默认:None

    。如果None实际的模式经纪人(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

– get_analysis()

返回与作为回报值和日期时间点的字典每个回报keys

TradeAnalyzer

class backtrader.analyzers.TradeAnalyzer()

提供有关封闭交易统计数据(也保持开放的人的数量)

  • 共开/关Trades
  • Streak韩元/失去电流/ Longest
  • ProfitAndLoss合计/ Average
  • Won /记不清/总PNL /平均PNL /最大PNL
  • 长/短计数/总PNL /平均PNL /最大PNL
    • Won /记不清/总PNL /平均PNL /最大PNL
  • Length(市场吧)
    • 总/平均/最大/ Min
    • Won /失落的总/平均/最大/ Min
    • Long /短总/平均/最大/ Min
    • 韩元/失去总/平均/最大/ Min

NOTE:分析仪使用的字段的“自动”翻译字典,这意味着如果没有交易被执行时,没有统计将generated.

In这种情况下,会有在字典中的单个字段/子场通过get_analysis,返回即:

  • dictname [“总”] [“总”]将具有0的值(字段是也可达到与点符号dictname.total.total

Transactions

class backtrader.analyzers.Transactions()

这个分析报告中的交易在每一个每一个数据发生在system

It着眼于订单执行位,创建了Position从开始在每个nextcycle.

The结果被下一期间使用0来记录transactions

Params:

  • 头(默认值:True

    添加一个初始关键辞典保持与名称的结果在datas

    This分析仪为蓝本,以促进与融合pyfolio和标题名称从用于样品取它:

    "date", "amount", "price", "sid", "symbol", "value"
    

– get_analysis()

返回与作为回报值和日期时间点的字典每个回报keys

VWR

class backtrader.analyzers.VWR()

变异加权回报:更好SharpeRatio与登录Returns

Alias:

  • VariabilityWeightedReturn

请参阅:

  • 的https://www.crystalbull.com/sharpe-ratio-better-with-log-returns/

Params:

  • timeframe(默认:None)如果None然后在整个回测期间完全恢复将reported

    PassTimeFrame.NoTimeFrame考虑,没有整个数据集时间constraints

  • compression(默认:None

    只用于子天的时间期限内,例如工作按小时时限通过指定“TimeFrame.Minutes”和60作为compression

    IfNone然后该系统的1st数据的压缩将used

  • tann(默认值:None

    期数用于的该年度化(归一化)平均收益。如果None,然后在标准t值将被使用,即:

    • days: 252
    • weeks: 52
    • months: 12
    • years: 1
  • tau(默认值:2.0

    因子进行计算(见文献)

  • sdev_max(默认值:0.20

    最大标准偏差(见文献)

  • fund(默认:None

    如果None券商的实际模式(fundmode – 真/假)会可以自动进行检测,以决定是否回报率是基于总净资产价值或基金净值。见经纪人set_fundmode它documentation

    Set到TrueFalse用于特定behavior

– get_analysis()

返回与返回为值的字典和日期时间点每个回报keys

The返回字典包含以下键:

  • vwr:变异加权Return