首页 > 解决方案 > 使用 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 支股票。最后交易价格的更新必须在几秒内检索,而不是几分钟。

标签: ribrokers

解决方案


您可以将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

推荐阅读