文件夹概述
笔记
截至(至少)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显然 -
以及它的依赖关系(比如
pandas、seaborn…)笔记
在与版本
0.5.1集成的过程中,需要对依赖项的最新包进行更新,例如seaborn从先前安装的0.7.0-dev更新为0.7.1,这显然是由于缺少方法swarmplot
用法
-
将
PyFolio分析仪加入cerebro混合物中:py cerebro.addanalyzer(bt.analyzers.PyFolio) -
运行并检索 1st策略:
py strats = cerebro.run() strat0 = strats[0] -
使用您为其指定的名称或将为其指定的默认名称检索分析仪:
pyfolio。例如:py pyfolio = strats.analyzers.getbyname('pyfolio') -
使用分析仪方法
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 -
与
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分析仪的分析仪参考及其内部使用的分析仪
