0

我的代码

library(Rblpapi)
library(purrr)
blpConnect()
tickers = c("AAPL US Equity", "VOD LN Equity")
adjustmentFactors = setNames({
  tickers %>% map(function(ticker){
    res = bds(
      security = ticker
      , field = "EQY_DVD_ADJUST_FACT"
      , overrides = c("CORPORATE_ACTIONS_FILTER"="ABNORMAL_CASH|CAPITAL_CHANGE|NORMAL_CASH")
    )
    message(ticker)
    res
  })
}, tickers)

这需要很长时间才能运行,因为每次调用bds都是一个单独的请求。有没有办法把它打包成一个请求?或者也许有其他加快速度的方法?

4

1 回答 1

0

抱歉,我稍微读了你的问题,并认为这是一个bdpbdh电话。从 Rblpapi 的文档中可以看出,bds仅将单个代码作为参数。无论如何,这是我的方法:

tickers = c("AAPL US Equity", "VOD LN Equity", "BMW GY Equity")
get_bds <- function(x){
  bds(
    security = x
    , field = "EQY_DVD_ADJUST_FACT"
    , overrides = c("CORPORATE_ACTIONS_FILTER"="ABNORMAL_CASH|CAPITAL_CHANGE|NORMAL_CASH")
  )
}

test <- lapply(tickers, FUN = get_bds)
> head(test[[1]], 3)
  Adjustment Date Adjustment Factor Adjustment Factor Flag Adjustment Factor Operator Type
1      2020-11-06            1.0000                      1                               2
2      2020-08-31            4.0000                      3                               1
3      2020-08-07            0.9982                      1                               2
于 2020-11-05T13:03:33.767 回答