Keyboard Shortcuts
Likes
Search
Placing future order with stop loss and take profit
gil zur
Hi all,
I'm trying to place an order with take profit and stop loss without success. Where is my mistake? ibcontract = IBcontract()
? ? ? ? ibcontract.secType = "FUT"
? ? ? ? ibcontract.lastTradeDateOrContractMonth = "201809"
? ? ? ? ibcontract.symbol = "ES"
? ? ? ? ibcontract.exchange = "GLOBEX"
?
? ? ? ? bracket = CustomOrder().BracketOrder(1, "Buy", 1, 2925.01, 2925.31, 2909.43)
? ? ? ? for o in bracket:
? ? ? ? ? ? self.placeOrder(o.orderId,ibcontract, o)
?
? ? def BracketOrder(self,parentOrderId: int, action: str, quantity: float,limitPrice:float, takeProfitLimitPrice: float,stopLossPrice:float):
? ? ? ? parent = Order()
? ? ? ? parent.orderId = parentOrderId
? ? ? ? parent.action = action
? ? ? ? parent.orderType = "LMT"
? ? ? ? parent.totalQuantity = quantity
? ? ? ? parent.lmtPrice = limitPrice
? ? ? ? parent.transmit = False
?
? ? ? ? takeProfit = Order()
? ? ? ? takeProfit.orderId = parent.orderId + 1
? ? ? ? takeProfit.action = "SELL" if action == "BUY" else "BUY"
? ? ? ? takeProfit.orderType = "LMT"
? ? ? ? takeProfit.totalQuantity = quantity
? ? ? ? takeProfit.lmtPrice = takeProfitLimitPrice
? ? ? ? takeProfit.parentId = parentOrderId
? ? ? ? takeProfit.transmit = False
?
? ? ? ? stopLoss = Order()
? ? ? ? stopLoss.orderId = parent.orderId + 2
? ? ? ? stopLoss.action = "SELL" if action == "BUY" else "BUY"
? ? ? ? stopLoss.orderType = "STP"
? ? ? ? stopLoss.auxPrice = stopLossPrice
? ? ? ? stopLoss.totalQuantity = quantity
? ? ? ? stopLoss.parentId = parentOrderId
? ? ? ? stopLoss.transmit = True
?
? ? ? ? bracketOrder = [parent, takeProfit, stopLoss]
? ? ? ? return bracketOrder |
¿ªÔÆÌåÓýHelp us to help you! ? What happens when you do this? Do you get an error message returned via the API? If so, what does it say? If not, make sure you are handling the error message callback (I don¡¯t know what it¡¯s called in Python, but there must be one and it¡¯s imperative that you handle it. ? Richard ? From: [email protected] <[email protected]> On Behalf Of gil zur
Sent: 29 August 2018 20:39 To: [email protected] Subject: [TWS API] Placing future order with stop loss and take profit ? Hi all, ibcontract = IBcontract() ? ? ? ? ibcontract.secType = "FUT" ? ? ? ? ibcontract.lastTradeDateOrContractMonth = "201809" ? ? ? ? ibcontract.symbol = "ES" ? ? ? ? ibcontract.exchange = "GLOBEX" ? ? ? ? ? bracket = CustomOrder().BracketOrder(1, "Buy", 1, 2925.01, 2925.31, 2909.43) ? ? ? ? for o in bracket: ? ? ? ? ? ? self.placeOrder(o.orderId,ibcontract, o) ? ? ? def BracketOrder(self,parentOrderId: int, action: str, quantity: float,limitPrice:float, takeProfitLimitPrice: float,stopLossPrice:float): ? ? ? ? parent = Order() ? ? ? ? parent.orderId = parentOrderId ? ? ? ? parent.action = action ? ? ? ? parent.orderType = "LMT" ? ? ? ? parent.totalQuantity = quantity ? ? ? ? parent.lmtPrice = limitPrice ? ? ? ? parent.transmit = False ? ? ? ? ? takeProfit = Order() ? ? ? ? takeProfit.orderId = parent.orderId + 1 ? ? ? ? takeProfit.action = "SELL" if action == "BUY" else "BUY" ? ? ? ? takeProfit.orderType = "LMT" ? ? ? ? takeProfit.totalQuantity = quantity ? ? ? ? takeProfit.lmtPrice = takeProfitLimitPrice ? ? ? ? takeProfit.parentId = parentOrderId ? ? ? ? takeProfit.transmit = False ? ? ? ? ? stopLoss = Order() ? ? ? ? stopLoss.orderId = parent.orderId + 2 ? ? ? ? stopLoss.action = "SELL" if action == "BUY" else "BUY" ? ? ? ? stopLoss.orderType = "STP" ? ? ? ? stopLoss.auxPrice = stopLossPrice ? ? ? ? stopLoss.totalQuantity = quantity ? ? ? ? stopLoss.parentId = parentOrderId ? ? ? ? stopLoss.transmit = True ? ? ? ? ? bracketOrder = [parent, takeProfit, stopLoss] ? ? ? ? return bracketOrder |