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 code but Strategy not working

    Indicators/Strategies/Analyzers
    4
    5
    275
    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.
    • P
      pradeepofc1 last edited by

      This code is same as mentioned in Quickstart code but Strategy not working

      import backtrader as bt
      import pandas as pd
      import datetime
      import requests

      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":
      # ce = bt.Cerebro()
      # ce.addstrategy(A2)
      # ce.broker.set_cash(10000)
      # # df = pd.read_csv("INFY.NS.CSV", delimiter=",", parse_dates=True, index_col="Date")
      # # print(df.head(5))
      # # print(df)
      data = bt.feeds.YahooFinanceData(dataname="Csv.csv", fromdate=datetime.datetime(2020, 3, 30),todate=datetime.datetime(2021, 3, 29), reverse=False)
      # ce.adddata(data)
      #
      # ce.run()

      # 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.YahooFinanceCSVData(
      #     dataname=datapath,
      #     # 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())
      
      run-out 1 Reply Last reply Reply Quote 0
      • run-out
        run-out @pradeepofc1 last edited by

        @pradeepofc1 When you say not working what exaclty do you mean?

        RunBacktest.com

        P 1 Reply Last reply Reply Quote 1
        • P
          pradeepofc1 @run-out last edited by

          @run-out output not rendering

          I 1 Reply Last reply Reply Quote 0
          • I
            Ivan 0 @pradeepofc1 last edited by

            @pradeepofc1
            I have the same problem. There is no logs making by "next" method of the TestStrategy.

            1 Reply Last reply Reply Quote 0
            • A
              ab_trader last edited by

              Data feed was changed, so the code is not a quickstart code anymore. I bet data feed is incorrectly imported. Hard to say since the script is shown badly. Pay attention to the top of the page where the requirement to how the code should be posted are written.

              • If my answer helped, hit reputation up arrow at lower right corner of the post.
              • Python Debugging With Pdb
              • New to python and bt - check this out
              1 Reply Last reply Reply Quote 2
              • 1 / 1
              • First post
                Last post
              Copyright © 2016, 2017, 2018, 2019, 2020, 2021 NodeBB Forums | Contributors