我是退出公开交易与市场订单,并有困难的出口与入口连接。在本例中,我使用命令208退出order 201,并通过m_parentid进行链接。
entry_orderid_ = 201
order = IBOrder()
order.m_orderId = 208
order.m_orderType = 'MKT'
order.m_totalQuantity = 1
order.m_action = "SELL"
order.m_transmit = True
order.m_parentid = entry_orderid_
log.info("Placing market exit order. {} {} {}.".format(order.m_action, 1, 'ES'))
print '.....placing order..'
try:
app.con.placeOrder(order.m_orderId, self.contract, order)
except Exception, e:
print e
这将成功执行,但在执行方法中,我无法跟踪父级子关系。
ex = msg.execution
parent_order = ex.m_parentid
这将导致异常。它还允许我多次退出一个条目。我认为它不会让一个人关闭一个已经关闭的交易。我想我的问题是,如何跟踪父-子/入口并通过执行退出?
发布于 2019-12-12 19:01:21
您没有正确地使用parentId。它适用于其他类型的订单,其中父级填充将触发子订单。
int ParentId get,设置父订单的订单ID,用于括号和自动跟踪停止订单。
例如:https://interactivebrokers.github.io/tws-api/bracket_order.html
您似乎也在使用ibpy,IB中有一个更新的api。http://interactivebrokers.github.io/#
你不能用api“链接”买卖这样的订单,你必须自己跟踪。尽管如此,如果可能的话,你的饱和将显示开放和关闭,而commissionReport将显示封闭的贸易利润。
发布于 2019-12-11 08:26:30
属性拼写错误,m_parentid而不是m_parentId。不幸的是,现在出现了一个新的问题。IB找不到要绑定到的顺序。
ERROR - Error: <error id=1094, errorCode=135, errorMsg=Can't find order with id #
发布于 2019-12-16 22:37:43
首先用Transmit=False发送一个订单,然后为下一个订单设置parentId参数(第一个订单的id),然后用Transmit=True提交。
为了满足您的需要,您可以始终为订单设置orderRef属性,并以这种方式跟踪它们。
https://stackoverflow.com/questions/59289273
复制