为了将数据从IB下载到R中,我遵循了以下步骤:IBrokers request Historical Futures Contract Data?。它们与这里的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 FAQ在该消息中说:“为什么我收到错误200 --当我为股票合约调用reqContractDetails、reqMktData或addOrder()时,没有为请求找到任何安全定义?当对股票合约使用这些方法时,将全局符号和交易类保留为空白。”(在https://www.interactivebrokers.com/en/software/api/apiguide/tables/frequentlyaskedquestions.htm发现)
会非常感谢你对此有任何见解。谢谢。
发布于 2016-04-27 11:41:30
您需要将include_expired设置为true。我猜密码是:
twsFuture("ES","GLOBEX","201603",include_expired='1')文档中args的完整列表是:
twsEquity(symbol,
exch="SMART",
primary,
strike='0.0',
currency='USD',
right='',
local='',
multiplier='',
include_expired='0',
conId=0)并引用帮助页面:
endDateTime参数必须是“CCYYMMDD:MM:SS”形式。如果没有指定,将使用从TWS服务器返回的当前时间。这是回填数据的首选方法。字符串的‘TZ’部分是可选的。
所以你也可以试着用
reqHistoricalData(..., endDateTime='20160315 16:00:00')https://stackoverflow.com/questions/36881425
复制相似问题