@backtrader I swap the ordering of stop and profit. Now the stoploss got placed but profit was missing.
IB gateway: v974.4g
http://cdn.quantconnect.com/interactive/ibgateway-latest-standalone-linux-x64-v974.4g.sh
I moved the stop from 2834.25 to 2842.25, but profit order didn't get placed at all..
def moveBracketStopLoss(self, bracket, bt):
# cancel stop order automatically cancels the profit order of the bracket too
self.cancel(bracket[1])
self.cancel(bracket[2])
before = bracket[1].created.price
stopOrder = profitOrder = None
# need to replace both stopOrder and profitOrder
if bracket[0].ordtype == 0: # buy
profitOrder = self.sell(
price=bracket[2].created.price, size=bracket[0].size, exectype=bt.Order.Limit,
transmit=False)
stopOrder = self.sell(
price=bracket[0].executed.price, size=bracket[0].size, exectype=bt.Order.Stop,
transmit=True, oco=profitOrder)
if bracket[0].ordtype == 1: # sell
profitOrder = self.buy(
price=bracket[2].created.price, size=bracket[0].size, exectype=bt.Order.Limit,
transmit=False)
stopOrder = self.buy(
price=bracket[0].executed.price, size=bracket[0].size, exectype=bt.Order.Stop,
transmit=True, oco=profitOrder)
bracket[1] = stopOrder
bracket[2] = profitOrder
Helper.log(self, 'Move stoploss to breakeven for ',
'long' if bracket[0].ordtype == 0 else 'short',
'position from ',
before, 'to',
bracket[1].created.price)