我试图用Python在Backtrader上编写一个反测试策略,下面是给我错误的代码。从2021年7月2日起,我使用的是最新版本的反向交易者。
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()我所犯的错误是
回溯(最近一次调用):文件"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(迭代)文件"C:\Users\risha\anaconda3\lib\site-packages\backtrader\cerebro.py",第1210行,在运行策略()文件"C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py",第203行,在_start self.start()文件"C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py",第355行,在开始超级(YahooFinanceData,self).start()文件"C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py",第94行,在开始超级(YahooFinanceCSVData,文件"C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py",第674行,在StartSel.f= io.open(self.p.dataname,'r') FileNotFoundError: Errno 2中没有这样的文件或目录:“间谍”
我很困惑为什么会发生这种事。我也尝试通过在Cebro中添加一个策略来运行它,但是这仍然会导致相同的错误。有人能帮我解决这个问题吗?
发布于 2021-07-05 16:18:34
实际上我想出了解决办法。如果您使用,代码:
import yfinance as yf
data = bt.feeds.PandasData(dataname=yf.download('SPY', '2015-07-06', '2021-07-01', auto_adjust=True))这将允许您从网上获取任何滴答器的数据。您还必须使用:
pip install yfinance在你运行这个代码之前。
发布于 2021-07-19 06:01:36
雅虎!金融稍微改变了它们的结构。现在需要用于http请求上的数据retreival的headers。因为backtrader在第271行有一个“旧版本”的yahoo.py,所以您需要添加标题。一旦做好就行了。
这种情况也发生在熊猫和熊猫数据采集器上,如果你使用它,就需要升级它们。(已经排序)
对于yahoo.py第271行中的Backtrader:
crumb = None
sess = requests.Session()
## ADD HEADERS
sess.headers['User-Agent'] = 'backtrader'
## END HERE
for i in range(self.p.retries + 1): # at least once
resp = sess.get(url, **sesskwargs)
if resp.status_code != requests.codes.ok:这里有yahoo.py 变化的原始链接。
后援交易者可能很快就会推出升级。
用于Pandas和Pandas-DataReader
pip install --upgrade pandas
pip install --upgrade pandas-datareader祝你今天愉快;)
发布于 2021-07-04 17:55:32
试着升级你的后援交易者。7月3日有一个新的发行版。我确实更新了它,但它仍然不起作用。问题是它没有bt.feed.YahooFinance,以正确的格式获取数据。是一种新的虫子..。我也在等他们把它修好。
https://stackoverflow.com/questions/68229953
复制相似问题