IBrokers позволяют задерживать рыночные данные?

Я пытаюсь загрузить данные из IBrokers, но в настоящее время получаю сообщение об ошибке. Я не уверен, как решить это.

Примечание: у меня нет подписки на реальные котировки, но я получаю задержанные рыночные данные.

Мои шаги:

security = twsSTK("AAPL")
is.twsContract(security)

1 ИСТИНА

security_copy= twsEquity('AAPL')
reqMktData(tws,security)

Ошибка вывода:

Сообщение TWS: 2 1 162 Сообщение об ошибке службы исторических данных рынка: Нет разрешений на рыночные данные для ISLAND STK Сообщение TWS: 2 1 366 Запрос исторических данных не найден для идентификатора тикера: 1 Сообщение TWS: 2 1 10168 Запрошенные рыночные данные не подписаны. Задержка рыночных данных не включена

Функция исторических данных также, кажется, имеет проблемы.

data_AAPL=reqHistoricalData(tws, security)

Я также попробовал пример в ссылке

 IBrokersRef() # IBrokers Reference Card in PDF viewer
 tws <- twsConnect() # make a new connection to the TWS
 reqCurrentTime(tws) # check the server's timestamp
 contract <- twsEquity('IBKR','SMART','ISLAND') # equity specification
 reqHistoricalData(tws,contract) # request historical data

Результат:

ждать ответа TWS на IBKR .... не удалось. NULL Предупреждающее сообщение: В errorHandler(con, verbose, OK = c(165, 300, 366, 2104, 2106,:
Сообщение об ошибке службы исторических данных рынка: нет разрешений на рыночные данные для ОСТРОВА

1 ответ

На основе документации TWS (здесь ) можно получить отложенные рыночные данные с помощью reqMarketDataType(4).

При этом я бы рекомендовал использовать пакет ib_insync от Ewald de Wit & Co.

Ниже приведен пример кода, который я использую для получения отложенных рыночных данных:

      from ib_insync import *

util.startLoop()

ib = IB()
ib.sleep(2)
ib.connect('127.0.0.1', port=7490, clientId=12) # NB: Non default port could be 7498 on your machine by default when using TWS

ib.reqMarketDataType(4) # This line is the one that counts to get delayed data without subscription if available
Другие вопросы по тегам