有人知道如何在响应Rblpapi包中的订阅请求时区分不同的安全性吗?
secs <- c("RXU6 Comdty", "TYU6 Comdty", "SHSZ300 INDEX")
flds <- c("LAST_PRICE")
subscribe(secs,flds, fun = parseResponse)
parseResponse <- function (x) {
if (x$event.type == "SUBSCRIPTION_DATA") {
s <- as.character(x$data$TRADE_UPDATE_STAMP_RT)
if (!is.null(s)) {
if (length(s)>0) {
ts <- as.POSIXct(s)
if ((ts > beg.time) & (ts < end.time)) {
print(x$data$EVENT_TIME)
print(x$data$LAST_PRICE)
}
}
}
}
}
[1] 132.7188
[1] "15:27:16"
[1] 166.15
[1] "15:27:16"
[1] 166.15
[1] "15:27:16"
[1] 166.15
[1] "15:27:16"
[1] 132.7344我需要一种方法来知道132.7344对应于secs2,166.15对应于数据,但是我在x$ secs1对象中看不到任何这样做的字段。
谢谢您抽时间见我。
发布于 2019-07-17 22:29:33
查看来自subscribe函数的结果对象的一个好方法是:
subscribe(securities=c("AAPL US Equity"),
fields=c("LAST_PRICE"),
fun=function(x) print(str(x)))从那里,您可以以自己的方式进入数据:
subscribe(securities=c("AAPL US Equity", "INTC US Equity"),
fields=c("LAST_PRICE","BID","ASK"),
fun=function(x) {
if (!is.null(x$data$MKTDATA_EVENT_TYPE) && x$data$MKTDATA_EVENT_TYPE == "TRADE" && exists("LAST_PRICE", where = x$data)) {
print(data.frame(Ticker = x$topic, DateTime = x$data$TRADE_UPDATE_STAMP_RT, Trade = x$data$LAST_PRICE))
}
})可以使用subscribe的FUN参数直接处理或存储数据。
https://stackoverflow.com/questions/38015077
复制相似问题