Отключение от Интерактивных Брокеров с помощью ibpy

Вот довольно стандартный фрагмент кода, который я использую для запроса некоторых данных из API Interactive Brokers через python:

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 ответ

Решение

Использование cancelMktData(), После вызова этого метода рыночные данные для указанного идентификатора перестанут течь.

Другие вопросы по тегам