Navigation

    Backtrader Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. Misbah Asif
    For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 4
    • Best 1
    • Groups 0

    Misbah Asif

    @Misbah Asif

    1
    Reputation
    1
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Misbah Asif Unfollow Follow

    Best posts made by Misbah Asif

    • RE: Multiple TimeFrames

      @emr Thank you for your reply. But I resolved the issue.

      posted in Indicators/Strategies/Analyzers
      Misbah Asif
      Misbah Asif

    Latest posts made by Misbah Asif

    • notify order executing after next interval

      I am working on live data with 3 minutes interval. My intraday strategy takes both long and short trades according to the conditions. When strategy status is completed I store strategy data into csv file to display on front end, this thing I do in notify order. Everything is working fine but the problem is notify order is working 3 minutes late i.e it creates csv row or show trade completed on next interval which is creating issue for the client.
      So if anyone have any solution please help me out.
      Thanks in advance.

      posted in General Code/Help
      Misbah Asif
      Misbah Asif
    • How to cancel bracket order.

      I am trying this strategy using bracket order. I am trying to enter into short strategy and have stoploss, takeprofit and exit square off conditions to take exit. But the problem is The trade is exiting multiple time but it should complete only one exit order and cancel other two.
      I am attaching my code please let me know what I am doing wrong.

      def next(self):
          self.starttime = self.data.datetime.time()
          self.new_time = timedelta(hours=self.starttime.hour+5, minutes=self.starttime.minute+30)
          self.curr_time = datetime.strptime(str(self.new_time), '%H:%M:%S').time()
          pos = self.getposition()
          if self.orefs:
              return
          if not self.position:
              # if self.data.high[0] < self.ema[0] and self.p.position_type in ["short"]:
              if self.p.position_type in ["short"] and self.starttime >= self.entry_time and self.starttime <= self.exit_time:
                  self.stoploss = self.data.close[0] * (self.p.stoploss + (0.1 / 100))
                  self.takeprofit = self.data.close[0] * (self.p.takeprofit - (0.1 / 100))
                  if not self.p.usebracket:
                      self.o1 = self.sell(exectype=bt.Order.Market, data=self.data, valid=bt.Order.DAY,
                                          size=self.p.quantity, transmit=False)
                      self.o1.addinfo(Trigger='SSEN', name="SSEN")
                      print('{}: Oref {} / Sell at {}'.format(
                          self.datetime.datetime(), self.o1.ref, self.data.close[0]))
                      self.o1.addinfo(Trigger='SSEN', name="SSEN")
                      self.trade_entry_time = self.datetime.datetime()
                      # print(self.order_in)
                      self.o2 = self.buy(exectype=bt.Order.Stop, data=self.data, price=self.stoploss,
                                         valid=bt.Order.DAY, size=self.o1.size, parent=self.o1,
                                         transmit=False)
                      self.o2.addinfo(Trigger='SBSL', name='SBSL')
      
                      print('{}: Oref {} / Buy Stop at {}'.format(
                      self.datetime.datetime(), self.o2.ref, self.stoploss))
                      # self.orefs.append(self.o2.ref)
                      self.o3 = self.buy(exectype=bt.Order.Limit, data=self.data, price=self.takeprofit,
                                         valid=bt.Order.DAY, size=self.o1.size, parent=self.o1, transmit=True)
                      self.o3.addinfo(Trigger='SBTP', name='SBTP')
      
                      print('{}: Oref {} / Buy TP at {}'.format(
                      self.datetime.datetime(), self.o3.ref, self.takeprofit))
                      # self.orefs.append(self.o3.ref)
                      self.o4 = self.buy(exectype=bt.Order.Market, size=self.p.quantity, data=self.data)
                      self.o4.addinfo(Trigger='SBEX', name='SBEX')
      
                      print('{}: Oref {} / Buy Exit at {}'.format(
                      self.datetime.datetime(), self.o4.ref, self.data.close[0]))
                      # self.orefs.append(self.o4.ref)
                      self.o5 = self.buy(exectype=bt.Order.Market, size=self.p.quantity,
                                             data=self.data)
                      self.o5.addinfo(Trigger='SBSO', name='SBSO')
                      print('{}: Oref {} / Buy Exit at {}'.format(
                      self.datetime.datetime(), self.o5.ref, self.data.close[0]))
                      # self.orefs.append(self.o5.ref)
      
                      self.orefs= [self.o1.ref, self.o2.ref, self.o3.ref, self.o4.ref, self.o5.ref]
                      print(self.orefs)
      
      def notify_order(self, order):
          if order.status in[order.Submitted, order.Accepted]:
              # print("Order Accepted")
              return
          elif order.status in [order.Completed]:
              if order.isbuy():
                  self.buyprice = order.executed.price
                  self.buycomm = order.executed.comm
                  self.stoploss = order.executed.price * (self.p.stoploss - (0.1/100))
                  self.takeprofit = order.executed.price * (self.p.takeprofit + (0.1/100))
                  self.ord_type = "BUY"
                  self.buytrade = self.buytrade + 1
                  self.total_buy_qty = self.total_buy_qty + order.executed.size
              elif order.issell():
                  self.sellprice = order.executed.price
                  self.stoploss = order.executed.price * (self.p.stoploss + (0.1/100))
                  self.takeprofit = order.executed.price * (self.p.takeprofit - (0.1/100))
                  self.ord_type = "SELL"
                  self.selltrade = self.selltrade+1
                  self.total_sell_qty = self.total_sell_qty + abs(order.executed.size)
              print("Completed %s: %s %s Executed Price: %.2f Size: %.2f Commission: %.2f %s" %
                    (self.ord_type, order.ref,
                     # self.data.num2date(order.executed.dt).date().isoformat(),
                     self.datetime.datetime(),
                     order.executed.price,
                     order.executed.size,
                     order.executed.comm,
                     order.info['name'],))
      
          elif order.status in [order.Cancelled, order.Rejected, order.Margin]:
              print(order.ref,": Order Cancelled/Rejected/Margin")
      
          self.order = None
      

      ThankYou

      posted in Indicators/Strategies/Analyzers
      Misbah Asif
      Misbah Asif
    • RE: Multiple TimeFrames

      @emr Thank you for your reply. But I resolved the issue.

      posted in Indicators/Strategies/Analyzers
      Misbah Asif
      Misbah Asif
    • Multiple TimeFrames

      I get a live futures/options data of multiple symbols. My strategy works perfectly for these data and with 3 minute interval but now I want to run it for two different intervals that is 3 minute which is already present and with 10 seconds interval. But I am getting error when I am resampling it two times. Any idea how can I achieve this?
      Thank you in advance.

      posted in Indicators/Strategies/Analyzers
      Misbah Asif
      Misbah Asif