python - IBpy 获取订单状态更新

标签 python interactive-brokers ibpy

我想了解之前订单的状态。我有以下简单代码,但我只得到 True/False 值。这是我的代码:

from ib.opt import Connection, message

tws_conn = Connection.create(port=7497, clientId=999)
tws_conn.connect()

def acct_update(msg):
    print msg  

tws_conn.register(acct_update, message.openOrder)
tws_conn.register(acct_update, message.orderStatus)

这是输出:

>>> from ib.opt import Connection, message
>>> 
>>> tws_conn = Connection.create(port=7497, clientId=999)
>>> tws_conn.connect()
Server Version: 76
TWS Time at connection:20161021 18:53:42 EST
True
>>> 
>>> def acct_update(msg):
...     print msg  
... 
>>> tws_conn.register(acct_update, message.openOrder)
True
>>> tws_conn.register(acct_update, message.orderStatus)
True
>>> 
>>> 

如何获取未结订单列表?以及如何获取单个订单的状态?

谢谢。

最佳答案

你忘了问!添加一行tws_conn.reqOpenOrders()得到订单。您会看到 openOrder 和 orderStatus 回调。您可能需要添加一行 tws_conn.register(acct_update, message.openOrderEnd)知道您何时完成获取 openOrders。我从来没有测试过,而且像往常一样,人们在周五晚上问这些问题;)

如果您希望所有客户和 TWS 都下订单,请使用 tws_conn.reqAllOpenOrders()

这是刚刚在交易平台 (clientId = 0) 中下达的订单示例,但显然几天内不会成交。

<openOrder orderId=0, contract=<ib.ext.Contract.Contract object at 0x00000000041FA0F0>, order=<ib.ext.Order.Order object at 0x00000000043FF080>, orderState=<ib.ext.OrderState.OrderState object at 0x00000000043FF5C0>>

<orderStatus orderId=0, status=PreSubmitted, filled=0, remaining=1, avgFillPrice=0.0, permId=1905611953, parentId=0, lastFillPrice=0.0, clientId=0, whyHeld=None>

<openOrderEnd>

请注意,有一个 API 设置“连接时下载打开的订单”,但它不可靠,最好是您自己跟踪订单并请求执行。看...如果订单在您未连接时已成交,则它不再是未结订单,您将不会收到它。

true正是命令行为这些命令打印的内容...我猜这意味着没有出错。

关于python - IBpy 获取订单状态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186531/

相关文章:

python循环遍历输入文件

python - Interactive Brokers - 获取OPT的历史数据(MIDPOINT和TRADES)

java - TWS Interactive Brokers API - 如何修复 "No security definition has been found for the request"?

python - 默认用户模型 OneToOneField 属性错误

c++ - 将文档定义转换为强大类的类似 IDL 的解析器?

python - 下单后如何获取盈透证券(IBPY)的交易价格和佣金?

python - IbPy 无法发送订单 - 必须指定帐户

python - Django 2.0 : NoReverseMatch at/url/(/pledges/group/7/)

python - 无法使用 python 连接到 Interactive Brokers