首页 > 解决方案 > 如何跟踪执行中的父/子交易

问题描述

我正在使用市价单退出未平仓交易,并且无法将退出与进入关联起来。在此示例中,我将使用订单 208 退出订单 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

这会导致异常。它还允许我多次退出条目。我认为它不会让一个人结束已经关闭的交易。我想我的问题是如何跟踪父子/条目并通过处决退出?

标签: pythoninteractive-brokers

解决方案


您没有正确使用 parentId。它适用于其他类型的订单,其中父填写将触发子订单。

int ParentId [get, set] 父订单的订单ID,用于括号和自动追踪止损订单。

例如。https://interactivebrokers.github.io/tws-api/bracket_order.html

您似乎也在使用 ibpy,IB 有一个更新的 api。 http://interactivebrokers.github.io/#

您不能使用 api 像那样“链接”买卖订单,您必须自己跟踪。话虽如此,您的报表将显示打开和关闭,如果可能,commissionReport 将显示关闭的交易利润。


推荐阅读