UP | HOME |

Yahoo finanzas proporciona la última cotización de acciones bursátiles con R

2025-10-23

Yahoo finanzas proporciona la última cotización de acciones bursátiles con R

Yahoo finanzas ofrece la posibilidad de seguir la cotización de las acciones bursátiles, ya sea de la última cotización disponible, ya sea del histórico de cotizaciones. Detallamos aquí la forma de conseguir la última cotización bursátil.

La Anunciación, El Greco (Domenikos Theotokópoulos)

Aquí se detallan las principales funcionalidades de la forma de obtener la información de Yahoo. En los siguientes apartados nos centramos en la cotización bursátil más reciente.

La API de Yahoo con R

Con unas pocas líneas de código en R, se accede la web de Yahoo y se descarga la información en un fichero JSON. Extraemos el contenido de ese fichero a una base de datos. Por último, transformamos la variable regularMarketTime en una variable de tiempo legible para los humanos.

library(jsonlite)

conseguirultimacotizacion <- function(tickers){
    Symbols <- paste(unique(tickers),collapse=",")
    tmp <- tempfile()
    download.file(paste0("https://query1.finance.yahoo.com/v7/finance/quote?symbols=",
                         Symbols), destfile = tmp, quiet = TRUE)
    response <- jsonlite::fromJSON(tmp)
    dt <- response$quoteResponse$result
    dt$regularMarketTime  <- .POSIXct(dt$regularMarketTime)
    dt
}


Adjuntando el paquete: ‘jsonlite’

The following object is masked from ‘package:purrr’:

    flatten

Necesitamos disponer de los tickers o acrónimos de las empresas o índices que deseamos descargar. Basta con consultar la página de Yahoo para ir anotando los que sean de interés.

En el siguiente ejemplo se han seleccionado cuatro empresas. Por defecto se recopilan setenta y cuatro variables de interés. Por ejemplo, el regularMarketPrice recoge la última cotización disponible, que corresponde al instante detallado en regularMarketTime.

tickers <- c("CEIX","SLB","TK","TGP") 

conseguirultimacotizacion(tickers)
Error in download.file(paste0("https://query1.finance.yahoo.com/v7/finance/quote?symbols=",  (from #4) : 
  no fue posible abrir la URL 'https://query1.finance.yahoo.com/v7/finance/quote?symbols=CEIX,SLB,TK,TGP'
Además: Avisos:
1: In download.file(paste0("https://query1.finance.yahoo.com/v7/finance/quote?symbols=",  :
  downloaded length 0 != reported length 157
2: In download.file(paste0("https://query1.finance.yahoo.com/v7/finance/quote?symbols=",  :
  cannot open URL 'https://query1.finance.yahoo.com/v7/finance/quote?symbols=CEIX,SLB,TK,TGP': HTTP status was '401 Unauthorized'