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