如何跟踪执行中的父子交易

时间:2019-12-11 15:39:06

标签: python interactive-brokers

我正在退出带有市场订单的未平仓交易,并且无法将退出与条目联系起来。在此示例中,我将退出命令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

这将导致异常。它还允许我多次退出条目。我认为它不会让已经完成的交易平仓。我想我的问题是,如何跟踪亲子/条目并通过处决退出?

3 个答案:

答案 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属性,并以此方式对其进行跟踪。