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/

    Multiple trades Long/Short Support?

    General Code/Help
    3
    3
    52
    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.
    • Nael Shichida
      Nael Shichida last edited by

      Hey everyone

      Newly enlisted backtrader here, I have been looking at youtube tutorials and the documentation. A lot of the examples cover 1 position at a time such as SMA crossover.

      However I am trying to have multiple buy orders using 1R/R of my portfolio for each trade, regardless of whether I am in a trade or not I want each one to be individually dealt with. The logic for entering long trades is working, however I am using a buy bracket since I need a log to see if the order is executed and if it has been executed, to set a close long either at target or stop price.

      If anyone can help guide me, would be extremely grateful as to how I should formulate the logic in Python?

      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.order = None
          self.dataclose = self.datas[0].close
          self.dataopen = self.datas[0].open
          self.zone = self.datas[0].close - self.datas[0].open
      
      
      def next(self):
          # Simply log the closing price of the series from the reference
          self.log('Close, %.2f' % self.dataclose[0])
          self.log('Open, %.2f' % self.dataopen[0])
          self.log('Zone, %.2f' % self.zone[0])
          self.log('shift, %.2f' % self.zone[-1])
      
          print(len(self))
          print(self.order)
          print(self.position)
          #
          """Enters Long position if below conditions are met"""
          if self.zone[0] < 0:
              print("Bar is red")
              # current close less than previous close
      
              if self.zone[1] > 0:
                  print("Next candle is green")
                  # Next close less than the previous close
                  if 1.5*abs(self.zone[0]) < abs(self.zone[1]):
                      print("Buy Zone found")
      
                      # BUY, BUY, BUY!!! (with all possible default parameters)
                      self.log('BUY CREATE, %.2f' % self.dataclose[0])
                      # self.buy()
      
                      self.order = self.buy_bracket(limitprice=self.dataopen[0], price=self.dataopen[0],
                                                    stopprice=self.dataclose[0])
                      # print(self.order)
                      print(type(self.order.ref))
      
      1 Reply Last reply Reply Quote 0
      • Carlus Remod
        Carlus Remod last edited by

        All apps have a particular purpose and have a manifest file to customize it. Manifest files are in XML format and define the functionality of your app to convert it into battle of warships apk. To create an Android app, you will need an idea, a programming language, and a manifest file to implement that idea.

        1 Reply Last reply Reply Quote 0
        • Discord fonts
          Discord fonts last edited by

          All applications have a specific reason and have a manifest document to redo it. Manifest records are in XML design and characterize the usefulness of your application to change over it into italic text in discord. To make an Android application, you will require a thought, a programming language, and a manifest record to execute that thought.

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