我试图在R上使用IBrokers API捕捉实时市场数据。
由于一个奇怪的原因,微软(MSFT)没有工作。
例如,这有效:
library("IBrokers")
tws <- twsConnect()
nms <- c("AAPL","YHOO")
reqMktData(tws, lapply(nms, twsSTK), tickGenerics="", snapshot=T)
twsDisconnect(tws)
但是,这不起作用:
library("IBrokers")
tws <- twsConnect()
nms <- c("AAPL","YHOO","MSFT")
reqMktData(tws, lapply(nms, twsSTK), tickGenerics="", snapshot=T)
twsDisconnect(tws)
错误信息如下:
2 3 200 The contract description specified for MSFT is ambiguous.
然而,这不是一个模棱两可的股票代码,与YHOO和AAPL在同一个交易所。
有谁知道我需要做些什么来解决这个问题?谢谢。
答案 0 :(得分:2)
为了解决这个问题,我只是将股票交易所指定为在纳斯达克交易模糊的单独代码。
tickers_nasdaq<-c("MSFT","INTC","CSCO")
reqMktData(tws, lapply(tickers_nasdaq, twsSTK, exch = "SMART", primary="NASDAQ", currency = "USD"), tickGenerics="", snapshot=T)
显然这不是理想的,但至少它是有效的。
答案 1 :(得分:0)
稍后回答......
您不应指定主要交换,因为您将遇到其他符号问题,而是将m_localSymbol
上的contract()
指定为与{1}}相同的值m_symbol
,在这种情况下:MSFT
https://www.interactivebrokers.com/en/software/api/apiguide/java/contract.htm