Navigation

    Backtrader Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. gregOh
    For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/
    G
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 4
    • Best 0
    • Groups 0

    gregOh

    @gregOh

    0
    Reputation
    3
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    gregOh Unfollow Follow

    Latest posts made by gregOh

    • RE: ImportError: cannot import name MIN_PER_HOUR - when trying to plot

      ![alt text](2020-08-17_18-48-13.png image url)

      posted in General Code/Help
      G
      gregOh
    • RE: ImportError: cannot import name MIN_PER_HOUR - when trying to plot

      I am using MatPlotlib version 3.3.1
      backtrader 1.9.76.123
      python 3.8.5

      posted in General Code/Help
      G
      gregOh
    • RE: ImportError: cannot import name MIN_PER_HOUR - when trying to plot

      @ch4r0n I applied the changes and still showing the same error, any suggestions?
      complete code below(you need to change Alpaca keys to run, you can get your own key at https://alpaca.markets/)

      Complete code below:

      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 = "XXXX"
      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()

      posted in General Code/Help
      G
      gregOh
    • 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()

      posted in General Code/Help
      G
      gregOh