python - 在 Backtrader 问题中获取数据

标签 python backtrader

我正在尝试用 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 (most recent call last): File "c:\Users\risha\PycharmProjects\PythonDataScience\BacktraderBacktesting\TestingData.py", line 9, in cerebro.run() File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\cerebro.py", line 1127, in run runstrat = self.runstrategies(iterstrat) File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\cerebro.py", line 1210, in runstrategies data._start() File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py", line 203, in _start self.start() File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py", line 355, in start super(YahooFinanceData, self).start() File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feeds\yahoo.py", line 94, in start super(YahooFinanceCSVData, self).start() File "C:\Users\risha\anaconda3\lib\site-packages\backtrader\feed.py", line 674, in start self.f = io.open(self.p.dataname, 'r') FileNotFoundError: [Errno 2] No such file or directory: 'SPY'

我很困惑为什么会这样。我也尝试通过在 Cebro 中添加一个策略来运行它,但这仍然导致了同样的错误。有人可以帮我解决这个问题吗?

最佳答案

我实际上想出了解决方案。如果你使用,代码:

import yfinance as yf

data = bt.feeds.PandasData(dataname=yf.download('SPY', '2015-07-06', '2021-07-01', auto_adjust=True))

这将允许您从网上获取任何代码的数据。您还必须使用:

pip install yfinance

在运行此代码之前。

关于python - 在 Backtrader 问题中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68229953/

相关文章:

python - 在表的特定列中搜索不匹配的项目

python - 使用python从xml数据中提取所有文本

python - 无法使用 CGI 处理程序启用线程安全

python - 使用python在高斯过程回归中对训练数据集进行数据增强

python - 有没有办法通过指定时间范围将 pandas 中的两个表连接到时间列上?

python - 每次在 tqdm 对象(VSCode 终端)上调用更新时,进度条(使用 tqdm)都会在新行中打印

python - 反向交易者错误 : 'DataFrame' object has no attribute 'setenvironment'