Navigation

    Backtrader Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

    Getting daily historical through Interactive Brokers (IB)

    General Code/Help
    1
    1
    26
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rajah9 last edited by

      I have been following the Medium article Interactive Brokers in Python with backtrader and have been able to resample Minutes data to get hourly bars.

      However, I am having some trouble getting daily bars.

      Here's the code I'm running:

      _TICKER = "TSLA-STK-SMART-USD" # "AAPL-STK-SMART-USD"
      _FROMDATE = datetime.datetime(2021,1,4) 
      _TODATE = datetime.datetime(2021,1,8) datetime.datetime(2019, 9, 25)
      
      def run(args=None):
          cerebro = bt.Cerebro(stdstats=False)
      
          store = ibstore.IBStore(host="127.0.0.1", port=7497, clientId= _CLIENTID )
          cerebro.broker = store.getbroker()
          stockkwargs = dict(
              timeframe=bt.TimeFrame.Days,
              compression=1,
              rtbar=False,  # use RealTime 5 seconds bars
              historical=True,  # only historical download
              qcheck=0.5,  # timeout in seconds (float) to check for events
              fromdate=_FROMDATE,  # get data from..
              todate=_TODATE,  # get data to..
              latethrough=False,  # let late samples through
              tradename=None  # use a different asset as order target
          )
      
          data0 = store.getdata(dataname=_TICKER, **stockkwargs)
          cerebro.resampledata(data0, timeframe=bt.TimeFrame.Days, )
      
          cerebro.addstrategy(St)
          cerebro.run()
      

      I was expecting it to give me four daily bars from 1/4/21 to 1/7/21, but instead, I get two bars:

      TWS Time at connection:20210215 11:17:01 EST
      ***** DATA Notification: DELAYED
      DEBUG:__main__:1,2021-01-06T00:00:00,709.00,744.49,709.00,733.60,334298.00
      DEBUG:__main__:2,2021-01-08T00:00:00,748.00,774.00,746.66,763.60,307274.00
      ***** DATA Notification: DISCONNECTED
      

      I have tried hourly bars but the resample gives me the same skip.

          stockkwargs = dict(
              timeframe=bt.TimeFrame.Minutes,
              compression=60,
      

      Please tell me what I should do to get daily bars.

      1 Reply Last reply Reply Quote 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2016, 2017, 2018 NodeBB Forums | Contributors
      $(document).ready(function () { app.coldLoad(); }); }