Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ImportError无法导入名称';警告';从';matplotlib.dates_Matplotlib_Backtrader - Fatal编程技术网

ImportError无法导入名称';警告';从';matplotlib.dates

ImportError无法导入名称';警告';从';matplotlib.dates,matplotlib,backtrader,Matplotlib,Backtrader,羊驼backtrader绘图问题:我遇到了这个导入问题并发现了,所以我应用了代码,但相同的问题没有解决。有人能帮忙吗 我安装的matplotlib版本是3.3.1 反向交易者1.9.76.123 python 3.8.5 整个代码发布如下: from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,MONTHS_PER_YEAR, DAYS_PER_WEEK,SEC_PER_HOUR, SE

羊驼backtrader绘图问题:我遇到了这个导入问题并发现了,所以我应用了代码,但相同的问题没有解决。有人能帮忙吗

我安装的matplotlib版本是3.3.1 反向交易者1.9.76.123 python 3.8.5

整个代码发布如下:

from matplotlib.dates 

import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,MONTHS_PER_YEAR, 
        DAYS_PER_WEEK,SEC_PER_HOUR, SEC_PER_DAY,num2date, rrulewrapper, 
        YearLocator,MicrosecondLocator)

import alpaca_backtrader_api

import backtrader as bt

from datetime import datetime

#import matplotlib
ALPACA_API_KEY = "XXXXX"

ALPACA_SECRET_KEY = "XXXX"

ALPACA_PAPER = True

class SmaCross(bt.SignalStrategy):

def init(self):

sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)

crossover = bt.ind.CrossOver(sma1, sma2)

self.signal_add(bt.SIGNAL_LONG, crossover)

cerebro = bt.Cerebro()

cerebro.addstrategy(SmaCross)

store = alpaca_backtrader_api.AlpacaStore( key_id=ALPACA_API_KEY,secret_key=ALPACA_SECRET_KEY,paper=ALPACA_PAPER)

if not ALPACA_PAPER:
  
  broker = store.getbroker() # or just alpaca_backtrader_api.AlpacaBroker()
  
  cerebro.setbroker(broker)
  
  DataFactory = store.getdata # or use alpaca_backtrader_api.AlpacaData
  
  data0 = DataFactory(dataname='AAPL', historical=True, fromdate=datetime(2015, 1, 1), timeframe=bt.TimeFrame.Days)
  
  cerebro.adddata(data0)
  
  print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
  
  cerebro.run()
  
  print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
  
  cerebro.plot()

我遇到了和你一样的问题,你的链接提供了完美的解决方案。只需从
locator.py


降级至matplotlib 3.2.2,直到backtrader中的错误修复

以下是修复请求:


pip卸载matplotlib#或conda

pip安装matplotlib==3.2.2
@laffuste将matplotlib降级到3.2.2版的解决方案为我解决了这个问题。修复此问题的PR仍处于打开状态,您还可以按照以下步骤了解有关此问题的更多信息:

Mac Big Sur 对我来说,只有在以下情况下,它才会起作用: 将python3.9降级为python3.8
然后我把matplotlib==3.2.2降级了。我也这么做了:python 3.8.5,卸载matplotlib,安装matplotlib==3.2.2


我是新手,所以我首先尝试了简单的方法,通过anaconda.org,但找不到版本3.2.2。然后在Jupyter笔记本上用conda安装了它。。。没用。我最终直接通过终端完成了这项工作,效果很好。

如上所述,该问题已在中解决,该补丁是最新提交给master的,但自2019-05年以来一直没有发布过

您可以按如下方式安装修补版本:

pip安装git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
您也可以在requirements.txt中指定所需的提交,如下所示:

-e git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
…然后
pip安装-r requirements.txt

使用任何一种方法安装后,您都可以确认使用
pip freeze
安装的版本:

。。。
反向交易者==1.9.76.123
...

如果不先卸载
backtrader
,我无法安装
matplotlib==3.2.2
或修补程序

因此,这最终对我起了作用:

  • 卸载backtrader

    pip uninstall backtrader
    
  • 安装中提供的修补程序:

  • 如有必要,再次安装
    matplotlib

    pip install matplotlib
    

  • 请缩进您的代码,这是否适用于Python 3.9?在我的情况下,它不起作用,我无法安装此版本的matplotlib。这对我起作用。非常感谢!PackagesNotFoundError使用conda(miniforge/osx arm)请提供您使用的确切终端命令。请记住将格式设置为code.pip uninstall matplotlibpip install matplotlib==3.2.2这在python3.9上对我有效这在python3.9上对我也有效。添加到requirements.txt中的选项是一个很好的选择,这是使用Python3.9和MacOSXCatalina的唯一答案。在系统上查找locator.py并从import语句中删除“warnings”参数。请参阅Ch4r0n在上述答案中给出的链接上的帖子。
    pip install matplotlib