5 votos

Bloomberg y R: Acceso a múltiples valores con getBars() en R

Estoy intentando acceder a los datos comerciales de 1 minuto de 50 valores utilizando la API de Bloomberg (rblpapi). El siguiente es el código que obtuve del CRAN:

con <- blpConnect() 
security<- "NIFTY Index" 
field<- "INDX_MEMBERS"sec<- bds( security, field) 
getBars("XYZ IS EQUITY", eventType = "TRADE", barInterval = 01, 
        startTime = Sys.time() - 1360 * 60 * 6, endTime = Sys.time(),
        options = NULL, verbose = FALSE, returnAs = getOption("blpType","matrix"), 
tz= Sys.getenv("TZ", unset = "UTC"))

Quiero acceder a los 50 valores sin repetir mi código. ¿Hay alguna manera de llamar directamente a una lista de valores miembros de un índice desde Bloomberg y utilizarla para acceder a los datos intradía de una sola vez? Además, cuando introduzco fechas específicas como:

getBars("XYZ IS EQUITY", eventType = "TRADE", barInterval = 01,
    startTime = as.Date("2014-01-01 03:30:00"), endTime = as.Date(" 2014-02-04 09:30:00"),
    options = NULL, verbose = FALSE, returnAs = getOption("blpType",
                                                          "matrix"), tz = Sys.getenv("TZ", unset = "UTC"))

lo muestra:

Error: startTime and endTime must be Datetime objects

Gracias de antemano.

0 votos

De la documentación de As.date ( stat.ethz.ch/R-manual/R-devel/library/base/html/as.Date.html ): " Argumentos: x Un objeto a convertir. format Una cadena de caracteres. Si no se especifica, probará con "%Y-%m-%d" y luego con "%Y/%m/%d" en el primer elemento que no sea AN, y dará un error si no funciona ninguno de los dos. En caso contrario, el procesamiento se realiza mediante strptime"

1voto

Vitalik Puntos 184

Brevemente:

  1. Algunas funciones simplemente no están vectorizadas. Si quieres hacer un bucle getBars() sobre un vector de símbolos, escribe otra envoltura que haga el bucle.

  2. Como dice nuestra documentación: startTime: Un objeto Datetime con la hora de inicio, por defecto una hora antes de la hora actual (y lo mismo para endTime) es necesario suministrar un objeto DateTime, y as.POSIXct() es una forma de hacerlo. Poner la fecha y la hora en as.Date() no lo es.

0 votos

Intentaré escribir la envoltura.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X