我正在尝试使用 R 上的 IBrokers API 获取实时市场数据。
由于一个奇怪的原因,微软(MSFT)不起作用。
例如,这有效:
library("IBrokers")
tws <- twsConnect()
nms <- c("AAPL","YHOO")
reqMktData(tws, lapply(nms, twsSTK), tickGenerics="", snapshot=T)
twsDisconnect(tws)
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
library("IBrokers")
tws <- twsConnect()
nms <- c("AAPL","YHOO","MSFT")
reqMktData(tws, lapply(nms, twsSTK), tickGenerics="", snapshot=T)
twsDisconnect(tws)
Run Code Online (Sandbox Code Playgroud)
错误信息如下:
2 3 200 The contract description specified for MSFT is ambiguous.
Run Code Online (Sandbox Code Playgroud)
然而,这并不是一个含糊的股票,并且与 YHOO 和 AAPL 位于同一交易所。
有谁知道我需要做什么来解决这个问题?谢谢。
为了解决这个问题,我只是指定了在纳斯达克交易的单独股票的证券交易所。
tickers_nasdaq<-c("MSFT","INTC","CSCO")
reqMktData(tws, lapply(tickers_nasdaq, twsSTK, exch = "SMART", primary="NASDAQ", currency = "USD"), tickGenerics="", snapshot=T)
Run Code Online (Sandbox Code Playgroud)
显然这并不理想,但至少它有效。