使用ibpy断开与Interactive Brokers的连接

0 投票
1 回答
1629 浏览
提问于 2025-04-18 17:36

这是我用来通过Python从Interactive Brokers的API请求数据的一段很常见的代码:

from ib.ext.Contract import Contract
from ib.opt import ibConnection, message
import time

def watcher(msg):
    print msg

con = ibConnection()
con.registerAll(watcher)
con.connect()

contract = Contract()
contract.m_symbol = "EUR"
contract.m_exchange = "IDEALPRO"
contract.m_currency = "USD"
contract.m_secType = "CASH"

con.reqMktData(1, contract, '', False)

time.sleep(5)

con.disconnect()
print "DISCONNECTED"

time.sleep(60)

我本来以为在执行con.disconnect()之后,连接就会关闭,但它却仍然在不断接收新数据(消息会打印更新的买入价、卖出价等)。

为什么disconnect()似乎没有任何作用,我该如何真正关闭这个连接呢?

1 个回答

2

使用 cancelMktData() 这个方法。在调用这个方法之后,指定的ID的市场数据就会停止更新了。

撰写回答