For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

cannot import name 'warnings' from 'matplotlib.dates'



  • I ran into this import issue and found article below, so I apply the code, but same issue not resolved. any one can help please?

    https://community.backtrader.com/topic/981/importerror-cannot-import-name-min_per_hour-when-trying-to-plot/8

    2020-08-17_18-48-13.png

    The entire source code is posted below(you need to plug in Alpaca keys in order to run)

    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()


Log in to reply
 

});