Skip to content

文件夹概述

原文: https://www.backtrader.com/docu/analyzers/pyfolio/

笔记

截至(至少)2017-07-25,pyfolioAPI 已更改,create_full_tear_sheet不再以gross_lev作为命名参数。

因此,用于集成的示例不起作用

引用自处的pyfolio主页 http://quantopian.github.io/pyfolio/

pyfolio is a Python library for performance and risk analysis of financial
portfolios developed by Quantopian Inc. It works well with the Zipline open
source backtesting library 

现在它与反向交易者也能很好地协同工作。需要什么:

  • pyfolio显然

  • 以及它的依赖关系(比如pandasseaborn…)

    笔记

    在与版本0.5.1集成的过程中,需要对依赖项的最新包进行更新,例如seaborn从先前安装的0.7.0-dev更新为0.7.1,这显然是由于缺少方法swarmplot

用法

  1. PyFolio分析仪加入cerebro混合物中:

    py cerebro.addanalyzer(bt.analyzers.PyFolio)

  2. 运行并检索 1st策略:

    py strats = cerebro.run() strat0 = strats[0]

  3. 使用您为其指定的名称或将为其指定的默认名称检索分析仪:pyfolio。例如:

    py pyfolio = strats.analyzers.getbyname('pyfolio')

  4. 使用分析仪方法get_pf_items检索pyfolio所需的 4 种成分:

    py returns, positions, transactions, gross_lev = pyfoliozer.get_pf_items()

    !!! 笔记

    py The integration was done looking at test samples available with `pyfolio` and the same headers (or absence of) has been replicated

  5. pyfolio合作(这已经超出反向交易者生态系统)

一些与反向交易者没有直接关系的使用说明

  • pyfolio自动绘图在Jupyter 笔记本外部工作,但内部工作最好

  • pyfolio数据表的输出似乎在Jupyter 笔记本之外几乎不起作用。它在笔记本中工作

如果希望使用pyfolio工作,那么结论很简单:在 Jupyter 笔记本中工作

示例代码

代码如下所示:

...
cerebro.addanalyzer(bt.analyzers.PyFolio, _name='pyfolio')
...
results = cerebro.run()
strat = results[0]
pyfoliozer = strat.analyzers.getbyname('pyfolio')
returns, positions, transactions, gross_lev = pyfoliozer.get_pf_items()
...
...
# pyfolio showtime
import pyfolio as pf
pf.create_full_tear_sheet(
    returns,
    positions=positions,
    transactions=transactions,
    gross_lev=gross_lev,
    live_start_date='2005-05-01',  # This date is sample specific
    round_trips=True)

# At this point tables and chart will show up 

参考

查看PyFolio分析仪的分析仪参考及其内部使用的分析仪


我们一直在努力

apachecn/AiLearning

【布客】中文翻译组