我想要获取我之前订单的状态。我有以下简单的代码,但我只得到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
>>>
>>> 如何获取未完成订单的列表?我如何才能获得单个订单的状态?
谢谢。
发布于 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只是命令行打印出来的东西,我猜没什么问题。
https://stackoverflow.com/questions/40186531
复制相似问题