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/

    Problem with the simple sample

    General Code/Help
    2
    3
    2371
    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.
    • M
      mirono last edited by backtrader

      Using the sample code:

       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 the backtrader platform
      import backtrader as bt
      
      # Create a Stratey
      class TestStrategy(bt.Strategy):
      
          def log(self, txt, dt=None):
              ''' Logging function fot 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]:
                  # current close less than previous close
      
                  if self.dataclose[-1] < self.dataclose[-2]:
                      # previous close less than the previous close
      
                      # BUY, BUY, BUY!!! (with all possible default parameters)
                      self.log('BUY CREATE, %.2f' % self.dataclose[0])
                      self.buy()
      
      
      if __name__ == '__main__':
          # Create a cerebro entity
          cerebro = bt.Cerebro()
      
          # Add a strategy
          cerebro.addstrategy(TestStrategy)
      
          # Datas are in a subfolder of the samples. Need to find where the script is
          # because it could have been called from anywhere
          modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
          datapath = os.path.join(modpath, '../../datas/orcl-1995-2014.txt')
      
          # Create a Data Feed
          data = bt.feeds.YahooFinanceData(
              dataname="AAPL",
              # Do not pass values before this date
              fromdate=datetime.datetime(2000, 1, 1),
              # Do not pass values before this date
              todate=datetime.datetime(2000, 12, 31),
              # Do not pass values after this date
              reverse=False)
      
          # Add the Data Feed to Cerebro
          cerebro.adddata(data)
      
          # Set our desired cash start
          cerebro.broker.setcash(100000.0)
      
          # Print out the starting conditions
          print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
      
          # Run over everything
          cerebro.run()
      
          # Print out the final result
          print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
      

      I get the following output:

      Starting Portfolio Value: 100000.00
      2000-12-29, Close, 0.97
      2000-12-28, Close, 0.96
      2000-12-28, BUY CREATE, 0.96
      2000-12-27, Close, 0.96
      2000-12-26, Close, 0.96
      2000-12-22, Close, 0.98
      2000-12-21, Close, 0.91
      2000-12-20, Close, 0.94
      2000-12-19, Close, 0.91
      2000-12-18, Close, 0.93
      2000-12-15, Close, 0.91
      2000-12-14, Close, 0.94
      2000-12-13, Close, 0.98
      2000-12-12, Close, 1.00
      2000-12-11, Close, 0.99
      2000-12-08, Close, 0.98
      2000-12-08, BUY CREATE, 0.98
      2000-12-07, Close, 0.93
      2000-12-07, BUY CREATE, 0.93
      2000-12-06, Close, 0.93
      2000-12-05, Close, 1.11
      2000-12-04, Close, 1.09
      2000-12-01, Close, 1.11
      2000-11-30, Close, 1.07
      2000-11-29, Close, 1.14
      2000-11-28, Close, 1.17
      2000-11-27, Close, 1.22
      2000-11-24, Close, 1.26
      2000-11-22, Close, 1.20
      2000-11-21, Close, 1.22
      2000-11-20, Close, 1.23
      2000-11-17, Close, 1.20
      2000-11-16, Close, 1.24
      2000-11-15, Close, 1.29
      2000-11-14, Close, 1.32
      2000-11-13, Close, 1.26
      2000-11-10, Close, 1.24
      2000-11-10, BUY CREATE, 1.24
      2000-11-09, Close, 1.31
      2000-11-08, Close, 1.31
      2000-11-07, Close, 1.39
      2000-11-06, Close, 1.39
      2000-11-03, Close, 1.45
      2000-11-02, Close, 1.45
      2000-11-01, Close, 1.33
      2000-10-31, Close, 1.27
      2000-10-31, BUY CREATE, 1.27
      2000-10-30, Close, 1.26
      2000-10-30, BUY CREATE, 1.26
      2000-10-27, Close, 1.21
      2000-10-27, BUY CREATE, 1.21
      2000-10-26, Close, 1.20
      2000-10-26, BUY CREATE, 1.20
      2000-10-25, Close, 1.20
      2000-10-24, Close, 1.23
      2000-10-23, Close, 1.33
      2000-10-20, Close, 1.27
      2000-10-19, Close, 1.23
      2000-10-19, BUY CREATE, 1.23
      2000-10-18, Close, 1.31
      2000-10-17, Close, 1.31
      2000-10-16, Close, 1.40
      2000-10-13, Close, 1.44
      2000-10-12, Close, 1.30
      2000-10-11, Close, 1.28
      2000-10-11, BUY CREATE, 1.28
      2000-10-10, Close, 1.36
      2000-10-09, Close, 1.42
      2000-10-06, Close, 1.44
      2000-10-05, Close, 1.44
      2000-10-04, Close, 1.54
      2000-10-03, Close, 1.45
      2000-10-02, Close, 1.58
      2000-09-29, Close, 1.68
      2000-09-28, Close, 3.48
      2000-09-27, Close, 3.18
      2000-09-26, Close, 3.35
      2000-09-25, Close, 3.48
      2000-09-22, Close, 3.40
      2000-09-21, Close, 3.69
      2000-09-20, Close, 3.97
      2000-09-19, Close, 3.90
      2000-09-18, Close, 3.95
      2000-09-15, Close, 3.59
      2000-09-14, Close, 3.70
      2000-09-13, Close, 3.77
      2000-09-12, Close, 3.76
      2000-09-11, Close, 3.80
      2000-09-08, Close, 3.83
      2000-09-07, Close, 4.03
      2000-09-06, Close, 3.80
      2000-09-05, Close, 4.06
      2000-09-01, Close, 4.13
      2000-08-31, Close, 3.96
      2000-08-30, Close, 3.87
      2000-08-30, BUY CREATE, 3.87
      2000-08-29, Close, 3.85
      2000-08-29, BUY CREATE, 3.85
      2000-08-28, Close, 3.78
      2000-08-28, BUY CREATE, 3.78
      2000-08-25, Close, 3.70
      2000-08-25, BUY CREATE, 3.70
      2000-08-24, Close, 3.65
      2000-08-24, BUY CREATE, 3.65
      2000-08-23, Close, 3.53
      2000-08-23, BUY CREATE, 3.53
      2000-08-22, Close, 3.36
      2000-08-22, BUY CREATE, 3.36
      2000-08-21, Close, 3.29
      2000-08-21, BUY CREATE, 3.29
      2000-08-18, Close, 3.25
      2000-08-18, BUY CREATE, 3.25
      2000-08-17, Close, 3.35
      2000-08-16, Close, 3.16
      2000-08-15, Close, 3.04
      2000-08-15, BUY CREATE, 3.04
      2000-08-14, Close, 3.06
      2000-08-11, Close, 3.10
      2000-08-10, Close, 3.09
      2000-08-09, Close, 3.09
      2000-08-08, Close, 3.04
      2000-08-07, Close, 3.12
      2000-08-04, Close, 3.08
      2000-08-03, Close, 3.12
      2000-08-02, Close, 3.07
      2000-08-01, Close, 3.21
      2000-07-31, Close, 3.31
      2000-07-28, Close, 3.14
      2000-07-27, Close, 3.38
      2000-07-26, Close, 3.26
      2000-07-25, Close, 3.26
      2000-07-24, Close, 3.17
      2000-07-21, Close, 3.48
      2000-07-20, Close, 3.59
      2000-07-19, Close, 3.43
      2000-07-18, Close, 3.72
      2000-07-17, Close, 3.79
      2000-07-14, Close, 3.75
      2000-07-13, Close, 3.68
      2000-07-13, BUY CREATE, 3.68
      2000-07-12, Close, 3.83
      2000-07-11, Close, 3.70
      2000-07-10, Close, 3.72
      2000-07-07, Close, 3.54
      2000-07-06, Close, 3.37
      2000-07-06, BUY CREATE, 3.37
      2000-07-05, Close, 3.36
      2000-07-05, BUY CREATE, 3.36
      2000-07-03, Close, 3.47
      2000-06-30, Close, 3.41
      2000-06-29, Close, 3.33
      2000-06-29, BUY CREATE, 3.33
      2000-06-28, Close, 3.54
      2000-06-27, Close, 3.37
      2000-06-26, Close, 3.52
      2000-06-23, Close, 3.36
      2000-06-22, Close, 3.50
      2000-06-21, Close, 3.62
      2000-06-20, Close, 3.29
      2000-06-19, Close, 3.14
      2000-06-19, BUY CREATE, 3.14
      2000-06-16, Close, 2.97
      2000-06-16, BUY CREATE, 2.97
      2000-06-15, Close, 3.00
      2000-06-14, Close, 2.94
      2000-06-13, Close, 3.07
      2000-06-12, Close, 2.97
      2000-06-09, Close, 3.11
      2000-06-08, Close, 3.08
      2000-06-07, Close, 3.14
      2000-06-06, Close, 3.02
      2000-06-05, Close, 2.97
      2000-06-05, BUY CREATE, 2.97
      2000-06-02, Close, 3.01
      2000-06-01, Close, 2.90
      2000-05-31, Close, 2.73
      2000-05-31, BUY CREATE, 2.73
      2000-05-30, Close, 2.85
      2000-05-26, Close, 2.81
      2000-05-25, Close, 2.84
      2000-05-24, Close, 2.85
      2000-05-23, Close, 2.79
      2000-05-22, Close, 2.93
      2000-05-19, Close, 3.06
      2000-05-18, Close, 3.28
      2000-05-17, Close, 3.30
      2000-05-16, Close, 3.44
      2000-05-15, Close, 3.29
      2000-05-12, Close, 3.50
      2000-05-11, Close, 3.34
      2000-05-10, Close, 3.23
      2000-05-10, BUY CREATE, 3.23
      2000-05-09, Close, 3.43
      2000-05-08, Close, 3.58
      2000-05-05, Close, 3.68
      2000-05-04, Close, 3.60
      2000-05-03, Close, 3.74
      2000-05-02, Close, 3.83
      2000-05-01, Close, 4.04
      2000-04-28, Close, 4.04
      2000-04-27, Close, 4.12
      2000-04-26, Close, 3.95
      2000-04-25, Close, 4.17
      2000-04-24, Close, 3.92
      2000-04-20, Close, 3.87
      2000-04-20, BUY CREATE, 3.87
      2000-04-19, Close, 3.94
      2000-04-18, Close, 4.13
      2000-04-17, Close, 4.03
      2000-04-14, Close, 3.64
      2000-04-14, BUY CREATE, 3.64
      2000-04-13, Close, 3.70
      2000-04-12, Close, 3.55
      2000-04-11, Close, 3.89
      2000-04-10, Close, 4.07
      2000-04-07, Close, 4.29
      2000-04-06, Close, 4.07
      2000-04-05, Close, 4.24
      2000-04-04, Close, 4.14
      2000-04-03, Close, 4.34
      2000-03-31, Close, 4.42
      2000-03-30, Close, 4.09
      2000-03-29, Close, 4.42
      2000-03-28, Close, 4.53
      2000-03-27, Close, 4.54
      2000-03-24, Close, 4.51
      2000-03-23, Close, 4.60
      2000-03-22, Close, 4.69
      2000-03-21, Close, 4.39
      2000-03-20, Close, 4.00
      2000-03-20, BUY CREATE, 4.00
      2000-03-17, Close, 4.07
      2000-03-16, Close, 3.95
      2000-03-15, Close, 3.78
      2000-03-15, BUY CREATE, 3.78
      2000-03-14, Close, 3.72
      2000-03-14, BUY CREATE, 3.72
      2000-03-13, Close, 3.95
      2000-03-10, Close, 4.09
      2000-03-09, Close, 3.98
      2000-03-08, Close, 3.97
      2000-03-08, BUY CREATE, 3.97
      2000-03-07, Close, 4.00
      2000-03-06, Close, 4.09
      2000-03-03, Close, 4.16
      2000-03-02, Close, 3.97
      2000-03-01, Close, 4.24
      2000-02-29, Close, 3.73
      2000-02-28, Close, 3.68
      2000-02-28, BUY CREATE, 3.68
      2000-02-25, Close, 3.59
      2000-02-25, BUY CREATE, 3.59
      2000-02-24, Close, 3.75
      2000-02-23, Close, 3.78
      2000-02-22, Close, 3.70
      2000-02-18, Close, 3.62
      2000-02-18, BUY CREATE, 3.62
      2000-02-17, Close, 3.74
      2000-02-16, Close, 3.71
      2000-02-15, Close, 3.87
      2000-02-14, Close, 3.77
      2000-02-11, Close, 3.54
      2000-02-11, BUY CREATE, 3.54
      2000-02-10, Close, 3.69
      2000-02-09, Close, 3.66
      2000-02-08, Close, 3.74
      2000-02-07, Close, 3.71
      2000-02-04, Close, 3.51
      2000-02-04, BUY CREATE, 3.51
      2000-02-03, Close, 3.36
      2000-02-03, BUY CREATE, 3.36
      2000-02-02, Close, 3.21
      2000-02-02, BUY CREATE, 3.21
      2000-02-01, Close, 3.26
      2000-01-31, Close, 3.38
      2000-01-28, Close, 3.31
      2000-01-27, Close, 3.58
      2000-01-26, Close, 3.58
      2000-01-25, Close, 3.65
      2000-01-24, Close, 3.46
      2000-01-21, Close, 3.62
      2000-01-20, Close, 3.69
      2000-01-19, Close, 3.47
      2000-01-18, Close, 3.38
      2000-01-18, BUY CREATE, 3.38
      2000-01-14, Close, 3.27
      2000-01-14, BUY CREATE, 3.27
      2000-01-13, Close, 3.15
      2000-01-13, BUY CREATE, 3.15
      2000-01-12, Close, 2.84
      2000-01-12, BUY CREATE, 2.84
      2000-01-11, Close, 3.02
      2000-01-10, Close, 3.18
      2000-01-07, Close, 3.24
      2000-01-06, Close, 3.09
      2000-01-05, Close, 3.38
      2000-01-04, Close, 3.33
      2000-01-03, Close, 3.64
      Final Portfolio Value: 100000.00
      

      Why the cash is not reducing?

      1 Reply Last reply Reply Quote 0
      • B
        backtrader administrators last edited by

        Because you have told the platform to go from the future to the past? (See the date ordering of your own log)

        1 Reply Last reply Reply Quote 1
        • M
          mirono last edited by

          Thanks! I missed that. should have been reverse=True

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