简体   繁体   中英

API IB TWS Python Bracket Problems

The order gets placed into tws but on activation it just cancels itself and the attached stop and target. Leaving me with no orders no pos. Is this because of the way I am attaching the parent and not setting transmit to false until target? I was couldn't figure out the example by in the tws guide using the transmit = false then last one true. Is that why this isn't working?


###################################Place Buy /BUY Bracket
                if direction == "BUY":
                    app.reqGlobalCancel()
                    Entry = Order()
                    Entry.action = 'BUY'
                    Entry.orderId = app.nextorderId
                    Entry.orderType = 'STP LMT'
                    Entry.auxPrice = price + .25
                    Entry.lmtPrice = price + .25
                    Entry.totalQuantity = lotsize
                    Entry.outsideRth = True
                    Entry.tif = 'GTC'
                    app.placeOrder(Entry.orderId, contract, Entry)

###################################Place Stop /BUY Bracket                  
                    app.nextorderId += 1
                    stop_order = Order()
                    stop_order.parentId = Entry.orderId
                    stop_order.action = 'SELL'
                    stop_order.orderType = 'STP'
                    stop_order.auxPrice = buystop + .25
                    stop_order.totalQuantity = lotsize                  
                    stop_order.orderId= Entry.orderId +1
                    stop_order.outsideRth = True
                    stop_order.tif = 'GTC'
                    app.placeOrder(stop_order.orderId, contract, stop_order)
                    stopid=str(stop_order.orderId)
###################################Store Stop Id for stop adjustments                   
                    if path.exists("StopOrder.txt"):
                        os.remove("StopOrder.txt")            
                    file = open("StopOrder.txt","w")
                    file.write(stopid)
                    file.close()
###################################Place Target /BUY Bracket
                    app.nextorderId += 1                
                    target_order = Order()
                    target_order.parentId = Entry.orderId
                    target_order.action = 'SELL'
                    target_order.orderType = 'LMT'
                    target_order.lmtPrice = buytar + .25
                    target_order.totalQuantity = lotsize
                    target_order.outsideRth = True
                    target_order.tif = 'GTC'
                    app.placeOrder(app.nextorderId, contract, target_order)

Problem was there was a lot size limit and 40 exceeded it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM