【发布时间】:2021-09-14 16:32:48
【问题描述】:
我正在尝试用 Python 编写 Backtrader 的回测策略,下面是给我错误的代码。我正在使用截至 2021 年 7 月 2 日的最新版本的 backtrader。
import backtrader as bt
import backtrader.feeds as btfeeds
from datetime import datetime
cerebro = bt.Cerebro()
cerebro.broker.setcash(100000)
data = btfeeds.YahooFinanceData(dataname="SPY", fromdate=datetime(2016, 6, 25),
todate=datetime(2021, 6, 25))
cerebro.adddata(data)
cerebro.run()
我得到的错误是
Traceback(最近一次调用最后一次):文件 "c:\Users\risha\PycharmProjects\PythonDataScience\BacktraderBacktesting\TestingData.py", 第 9 行,在 cerebro.run() 文件 "C:\Users\risha\anaconda3\lib\site-packages\backtrader\cerebro.py", 第 1127 行,运行中 runstrat = self.runstrategies(iterstrat) 文件 "C:\Users\risha\anaconda3\lib\site-packages\backtrader\cerebro.py", 第 1210 行,在运行策略中 data._start() 文件“C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py”,行 203,在_开始 self.start() 文件 "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py", 第 355 行,开始 super(YahooFinanceData, self).start() 文件 "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py", 第 94 行,开始 super(YahooFinanceCSVData, self).start() 文件“C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py”,行 674,开始 self.f = io.open(self.p.dataname, 'r') FileNotFoundError: [Errno 2] 没有这样的文件或目录:'SPY'
我对为什么会发生这种情况感到困惑。我也尝试通过在 Cebro 中添加策略来运行它,但这仍然会导致相同的错误。有人可以帮我解决这个问题吗?
【问题讨论】:
-
只是一个澄清的评论:这个错误刚刚在 Backtrader2 上得到修复。请参阅拉取请求:github.com/backtrader2/backtrader/pull/67 以获取修复。您可以安装 backtrader 2,或者只需将此处找到的一行:github.com/backtrader2/backtrader/pull/67/files 添加到 feeds/yahoo.py 中的 backtrader 库中
标签: python backtrader