Backtrader 文档学习- Analyzers - PyFolio

Backtrader 文档学习- Analyzers - PyFolio

As of (at least) 2017-07-25 the pyfolio APIs have changed and create_full_tear_sheet no longer has a gross_lev as a named argument. Consequently the sample for integration doesn’t work

自2017-07-25开始,pyfolio APIs发生了变化,create_full_tear_sheet不再将gross_lev作为命名参数。 因此集成的示例不起作用 。
就是 PyFolio 和 PyFolio Integration 中的示例都不能正常运行。

测试验证一下:

cerebro = bt.Cerebro()

# data
dataname = './datas/2005-2006-day-001.txt'
data = btfeeds.BacktraderCSVData(dataname=dataname)

ret_data = cerebro.adddata(data)

# strategy
cerebro.addstrategy(btstrats.SMA_CrossOver)
# add analyser
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()

import pyfolio as pf
# create_returns_tear_sheet  create_full_tear_sheet
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)

报错信息:

TypeError                                 Traceback (most recent call last)
Cell In[15], line 20
     18 import pyfolio as pf
     19 # create_returns_tear_sheet  create_full_tear_sheet
---> 20 pf.create_full_tear_sheet(
     21     returns,
     22     positions=positions,
     23     transactions=transactions,
     24     gross_lev=gross_lev,
     25     live_start_date='2005-05-01' ,  # This date is sample specific
     26     round_trips=True)

TypeError: create_full_tear_sheet() got an unexpected keyword argument 'gross_lev'

参考 pyfolio 主页:

http://quantopian.github.io/pyfolio/:

看pyfolio示例,的确没有create_full_tear_sheet方法了。
示例:

# 导入PyFolio
import pyfolio as pf
%matplotlib inline

# silence warnings
import warnings
warnings.filterwarnings('ignore')

# 加载日线数据,facebook
stock_rets = pf.utils.get_symbol_rets('FB')

# 数据分析返回结果,并且做图分析
pf.create_returns_tear_sheet(stock_rets, live_start_date='2015-12-1')

尝试更换为BT的数据源,看看能否兼容:

#stock_rets = pf.utils.get_symbol_rets('FB')
ret_data = cerebro.adddata(data)
pf.create_returns_tear_sheet(ret_data, live_start_date='2015-12-1')

结果不出所料,报错:
还是数据源结构不同,不兼容。

AttributeError: 'NoneType' object has no attribute 'addindicator'
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值