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

问题描述

所以目前我是这样的:

  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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...