使用 IBrokers 和 R,在实时交易时段检索最后交易价格的合适方法是什么?

Using IBrokers and R, what is the appropriate way to retrieve last traded price during live trading session?

所以目前我是这样做的:

  contract <- lapply(sym, function(x) twsEquity(x, 'SMART','ISLAND'))
  lapply(contract, function(x) reqHistoricalData(tws, Contract=x, barSize = "1 day", duration = "1 D", verbose = FALSE))

sym 只是一个包含 30 个左右股票代码的向量。 这非常慢。

因此,这不是正确的方法。 在我的实时交易时段,我必须监控 100 只股票。 他们最后交易价格的更新必须在滑秒内检索,而不是分钟。

您可以使用函数 reqMktData 并将快照设置为 TRUE

sym <- c("AAPL", "MSFT")
contracts <- lapply(sym, function(x) twsEquity(x, 'SMART','ISLAND'))

last_prices <-   lapply(contracts, function(x) reqMktData(tws, 
                                                          Contract = x,
                                                          snapshot = TRUE))

忽略您收到的警告。

请注意,lastTimeStamp 是您的本地时间,而不是交易所的时间戳。

last_prices
[[1]]
        lastTimeStamp symbol bidSize bidPrice askPrice askSize lastPrice  Volume   Open   High Low  Close
1 2020-08-31 18:38:48   AAPL       4   129.46   129.48       3    129.48 1311118 127.67 130.05 126 124.81

[[2]]
        lastTimeStamp symbol bidSize bidPrice askPrice askSize lastPrice Volume  Open  High    Low  Close
1 2020-08-31 18:38:47   MSFT       1   225.68    225.7       3    225.69 146282 227.1 228.7 224.31 228.91