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/

    Quickstart - get different result for the tutorial

    General Discussion
    2
    3
    1122
    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.
    • D
      derek2017 last edited by

      Hi,

      For below code which i took from the quick start, tutorial shows result as 95823.62, but i am get 99725.08, which seems incorrect. Can you please advise? thanks.

          from __future__ import (absolute_import, division, print_function,
                                  unicode_literals)
          import datetime  # For datetime objects
          import os.path  # To manage paths
          import sys  # To find out the script name (in argv[0])
      
          import backtrader as bt
      
      
          # Create a strategy
      
          class TestStrategy(bt.Strategy):
      
              def log(self, txt, dt=None):
                  '''Loggin function for this strategy'''
                  dt = dt or self.datas[0].datetime.date(0)
                  print('%s %s' % (dt.isoformat(), txt))
      
              def __init__(self):
                  # Keep a reference to the "close" line in the data[0] dataseries
                  self.dataclose = self.datas[0].close
      
              def next(self):
                  # Simply log the closing price of the series from the reference
                  self.log('Close, %.2f' % self.dataclose[0])
      
                  if self.dataclose[0] < self.dataclose[-1]:
                      # Currnet close less than previous close
      
                      if self.dataclose[-1] < self.dataclose[-2]:
                          # previous close less than the previous close
                          self.log('BUY CREATE, %.2f' % self.dataclose[0])
                          self.buy()
      
          if __name__ == '__main__':
              cerebro = bt.Cerebro()
      
              # Add a strategy
              cerebro.addstrategy(TestStrategy)
      
              # Load Data
              modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
              datapath = os.path.join(modpath, 'datas/orcl-1995-2014.txt')
      
              # Create a datafeed
              data = bt.feeds.YahooFinanceCSVData(
                  dataname=datapath,
                  # Do not pass values before this date
                  fromdate=datetime.datetime(2000, 1, 1),
                  # Do not pass values after this date
                  todate=datetime.datetime(2000, 12, 31),
                  reverse=False)
      
              # Add the Data Feed to Cerebro
              cerebro.adddata(data)
      
              # Set our desired cash start
              cerebro.broker.setcash(100000.0)
      
              print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
              cerebro.run()
              print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
      
      

      Results from the tutorial

      2000-12-20T00:00:00, BUY CREATE, 26.88
      2000-12-21T00:00:00, Close, 27.82
      2000-12-22T00:00:00, Close, 30.06
      2000-12-26T00:00:00, Close, 29.17
      2000-12-27T00:00:00, Close, 28.94
      2000-12-27T00:00:00, BUY CREATE, 28.94
      2000-12-28T00:00:00, Close, 29.29
      2000-12-29T00:00:00, Close, 27.41
      Final Portfolio Value: 95823.62
      

      Results on my laptop

      2000-12-14 BUY CREATE, 25.93
      2000-12-15 Close, 26.93
      2000-12-18 Close, 30.18
      2000-12-19 Close, 28.88
      2000-12-20 Close, 26.88
      2000-12-20 BUY CREATE, 26.88
      2000-12-21 Close, 27.82
      2000-12-22 Close, 30.06
      2000-12-26 Close, 29.17
      2000-12-27 Close, 28.94
      2000-12-27 BUY CREATE, 28.94
      2000-12-28 Close, 29.29
      2000-12-29 Close, 27.41
      Final Portfolio Value: 99725.08
      
      
      1 Reply Last reply Reply Quote 0
      • B
        backtrader administrators last edited by

        That's a leftover in the documentation. The Quickstart was one of the 1st parts to be ever written and the sample was then changed and in the process of updating, that line remained there (you can see that the operations match).

        Documentation has been updated (Use Shift + F5 to force a reload in the browser bypassing the cache)

        1 Reply Last reply Reply Quote 0
        • D
          derek2017 last edited by derek2017

          Thanks for the prompt reply!

          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post
          Copyright © 2016, 2017, 2018, 2019, 2020, 2021 NodeBB Forums | Contributors