首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBpy正在获取订单状态更新

IBpy正在获取订单状态更新
EN

Stack Overflow用户
提问于 2016-10-22 06:57:57
回答 1查看 1.6K关注 0票数 2

我想要获取我之前订单的状态。我有以下简单的代码,但我只得到True/False值。下面是我的代码:

代码语言:javascript
复制
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)

下面是输出:

代码语言:javascript
复制
>>> 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
>>> 
>>> 

如何获取未完成订单的列表?我如何才能获得单个订单的状态?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-22 08:09:27

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

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

这是刚刚在TWS (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设置为“连接时下载打开的订单”,但它并不可靠,最好是您自己跟踪订单并请求执行。你看..。如果订单是在您未连接的情况下完成的,那么它就不再是未完成的订单,您将无法获得它。

对于那些commands...means,true只是命令行打印出来的东西,我猜没什么问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40186531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档