ib_insync клиент — одноранговое закрытое соединение

#python #python-3.x #interactive-brokers #ib-api

#питон #python-3.x #интерактивные брокеры #ib-api

Вопрос:

Я использую отличный пакет ib_insync для создания проекта IB . Я получаю некоторые данные о реальном времени следующим образом () pseudo code :

 await self._ib_instance.connectAsync(host=self._host, port=self._port, clientId=100, readonly=True)

for contract in contracts:
    self._ib_instance.reqMktData(contract)
sleep(2)

for ticker in tickerEvent:
   print(ticker)
 

В основном я вставляю в tickerEvent 5 тыс. контрактов, а затем прослушиваю данные тикера. И это работает просто идеально, но по прошествии времени (без шаблона, всегда разные временные интервалы), например, 5 минут или 50 минут, я получаю ошибку:

 client - Peer closed connection
 

Я нашел в документах эту ошибку. Но я не знаю, как с этим справиться? Как его поймать? Я пытаюсь поймать его и снова подключиться, но это не помогло!

Пожалуйста, помогите решить эту проблему!

Комментарии:

1. В итоге вы нашли решение этой проблемы?

Ответ №1:

Количество контрактов, для которых вы можете запрашивать данные одновременно, ограничено. 5000 контрактов нереально без покупки необходимых пакетов бустеров.

https://interactivebrokers.github.io/tws-api/market_data.html

По умолчанию каждый пользователь имеет максимальное ограничение в 100 строк рыночных данных и, таким образом, может получать рыночные данные в реальном времени до 100 инструментов одновременно. Однако этот лимит может быть дополнительно увеличен либо за счет покупки пакетов повышения котировок, либо за счет увеличения собственного капитала и / или комиссий учетной записи пользователя.

Комментарии:

1. но почему это работает в течение часа или около того? а затем прерывается?