R IBrokers API не запрашивает исторические данные за истекшие месяцы

Чтобы загрузить данные из IB в R I, выполните следующие шаги: IBrokers запрашивают данные исторических фьючерсных контрактов?, Примерно так же, как здесь: https://cran.r-project.org/web/packages/IBrokers/vignettes/IBrokers.pdf.

Все работает За одним исключением: reqHistoricalData не работает с истекшим месяцем. Выполнение следующего кода выдает сообщение об ошибке: "Предупреждение: В errorHandler(con, verbose, OK = c(165, 300, 366, 2104, 2106,: не найдено определение безопасности для запроса")

#DOES NOT WORK (using expired month)
tws <- twsConnect()
mydata <- reqHistoricalData(tws, twsFuture("ES","GLOBEX","201603"), barSize='1 min', duration='5 D', useRTH='0', whatToShow='TRADES')

#YET THE FOLLOWING DO WORK (using unexpired months)
mydata <- reqHistoricalData(tws, twsFuture("ES","GLOBEX","201606"), barSize='1 min', duration='5 D', useRTH='0', whatToShow='TRADES')
mydata <- reqHistoricalData(tws, twsFuture("ES","GLOBEX","201609"), barSize='1 min', duration='5 D', useRTH='0', whatToShow='TRADES')
getContract("ES_M6")

Часто задаваемые вопросы IB ​​говорят об этом сообщении: "Почему я получаю ошибку 200 - Не найдено определение безопасности для запроса, когда я вызываю reqContractDetails, reqMktData или addOrder() для контракта на акции? При использовании этих методов для контракт на акции, оставьте Global Symbol и Trading Class незаполненными." (находится по адресу https://www.interactivebrokers.com/en/software/api/apiguide/tables/frequentlyaskedquestions.htm)

Был бы очень признателен за понимание этого. Спасибо.

1 ответ

Решение

Вам нужно установить include_expired к истине. Я предполагаю, что код будет:

twsFuture("ES","GLOBEX","201603",include_expired='1')

Полный список аргументов из документов:

twsEquity(symbol,
          exch="SMART",
          primary,
          strike='0.0',
          currency='USD',
          right='',
          local='',
          multiplier='',
          include_expired='0',
          conId=0)

И процитировать страницу помощи:

Аргумент endDateTime должен иметь форму "CCYYMMDD HH:MM:SS TZ". Если не указан, будет использовано текущее время, возвращаемое с сервера TWS. Это предпочтительный метод обратной засыпки данных. Часть строки "TZ" является необязательной.

Таким образом, вы также можете попробовать использовать

reqHistoricalData(..., endDateTime='20160315 16:00:00')
Другие вопросы по тегам