【发布时间】:2017-08-01 20:37:54
【问题描述】:
大家好,我刚开始研究 Ibpy 算法,我想先用纸面交易对其进行测试,但我对如何使用 reqMktData 获得最后价格有一点了解。我下单没问题,但是这 25 秒没有返回,我认为它只能在交易时间内使用,或者只是使用它有什么错误?
from ib.opt import ibConnection, message
from ib.ext.Contract import Contract
from time import sleep
def my_callback_handler(msg):
inside_mkt_bid = ''
inside_mkt_ask = ''
if msg.field == 1:
inside_mkt_bid = msg.price
print 'bid', inside_mkt_bid
elif msg.field == 2:
inside_mkt_ask = msg.price
print 'ask', inside_mkt_ask
tws = ibConnection()
tws.register(my_callback_handler, message.tickSize, message.tickPrice)
tws.connect()
c = Contract()
c.m_symbol = "DATA"
c.m_secType = "STK"
c.m_exchange = "SMART"
c.m_currency = "USD"
tws.reqMktData(788,c,"",False)
sleep(25)
print 'All done'
tws.disconnect()
【问题讨论】:
-
如果请求发送成功,它应该返回数据或某种错误消息。您应该确保您正在捕获错误消息。我对 Ibpy 不熟悉,但我在github.com/blampe/IbPy/wiki/Getting-Started 找到了如何启用日志记录。如果您使用的是 IBGateway,还请选中“显示日志”复选框以查看那里发生的情况(不确定如何在 TWS 中查看日志)。
-
您好我已经修改了它,所以我可以得到错误这是我得到的:TWS 连接时间:20170801 23:59:20 WET
-
所以显然它没有连接到 usfuture、usfarm、fundfarm 和 ushmds 是那些不应该是 24/7 的,还是我必须付费才能访问?
-
它们应该 24/7 都在上涨,如果您还没有购买任何市场数据,您必须为任何市场数据付费。您必须在账户管理 -> 管理账户 -> 交易配置下登录并在那里订阅。
-
明白了,我想我必须先完成应用程序才能获取数据。谢谢你的信息!
标签: python algorithmic-trading interactive-brokers ibpy