我正在退出带有市场订单的未平仓交易,并且无法将退出与条目联系起来。在此示例中,我将退出命令201和208,并通过m_parentid进行链接。
forecasting = rf.predict(dataset_to_be_forecasted)
这成功执行,但是在执行方法中,我无法跟踪父子关系
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
这将导致异常。它还允许我多次退出条目。我认为它不会让已经完成的交易平仓。我想我的问题是,如何跟踪亲子/条目并通过处决退出?
答案 0 :(得分:1)
您没有正确使用parentId。用于其他类型的订单,其中父级填充将触发子级订单。
int ParentId [get,set]父订单的订单ID,用于 括号和自动尾随止损单。
例如https://interactivebrokers.github.io/tws-api/bracket_order.html
您似乎也正在使用ibpy,IB提供了更新的api。 http://interactivebrokers.github.io/#
您无法使用api来“链接”买卖订单,您必须自己跟踪。话虽如此,您的状态将显示为打开和关闭状态,而如果可能,佣金报告将显示已关闭的交易利润。
答案 1 :(得分:0)
该属性的拼写错误,m_parentId而不是m_parentid。不幸的是,现在有一个新问题。 IB无法找到要绑定的订单
ERROR - Error: <error id=1094, errorCode=135, errorMsg=Can't find order with id #
答案 2 :(得分:0)
您首先发送Transmit = False的订单,然后为下一个订单设置parentId参数(第一个订单的ID)并使用Transmit = True提交。
对于您所需要的,您始终可以为订单设置orderRef属性,并以此方式对其进行跟踪。