G C*_*Chu 32 matplotlib backtrader
Alpaca backtrader plot 问题:我遇到了这个导入问题并找到了这篇文章,所以我应用了代码,但同样的问题没有解决。有人可以帮忙吗?
我安装的 matplotlib 版本是 3.3.1 backtrader 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()
cam*_*ous 62
降级到 matplotlib 3.2.2,直到修复 backtrader 中的错误。
这是修复拉取请求:https : //github.com/mementum/backtrader/pull/418。
pip uninstall matplotlib  # or conda
pip install matplotlib==3.2.2
Jos*_*sip 12
如果不先卸载,我就无法安装matplotlib==3.2.2也无法安装补丁backtrader。
所以,这最终对我有用:
卸载backtrader:
pip uninstall backtrader
安装上述解决方案中提供的补丁:
pip install git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
如果需要,请matplotlib重新安装:
pip install matplotlib
如上所述,该问题已在此拉取请求中得到解决,补丁是对 master 的最新提交,但自 2019-05 以来一直没有发布。
您可以像这样安装补丁版本:
pip install git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
您也可以在 requirements.txt 中指定所需的提交,如下所示:
-e git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
…然后 pip install -r requirements.txt
使用任一方法安装后,您可以确认安装的版本pip freeze:
-e git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
| 归档时间: | 
 | 
| 查看次数: | 19051 次 | 
| 最近记录: |