所以目前我是这样做的:
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只股票。必须在几秒内而不是几分钟内检索到对其上次交易价格的更新。
您可以在快照设置为TRUE
的情况下使用函数reqMktData
。
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