Yahoo finanzas proporciona la última cotización de acciones bursátiles con R
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.
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 }
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)
language region quoteType typeDisp quoteSourceName triggerable 1 en-US US EQUITY Equity Nasdaq Real Time Price TRUE 2 en-US US EQUITY Equity Delayed Quote TRUE 3 en-US US EQUITY Equity Nasdaq Real Time Price TRUE 4 en-US US NONE < < FALSE customPriceAlertConfidence marketState regularMarketChangePercent 1 HIGH PREPRE -1.0042555 2 HIGH PREPRE -0.9252406 3 HIGH PREPRE 1.2799988 4 NONE < NA regularMarketPrice messageBoardId exchangeTimezoneName 1 58.16 finmb_530135269 America/New_York 2 53.54 finmb_301966 America/New_York 3 6.33 finmb_329438 America/New_York 4 NA < <NA> exchangeTimezoneShortName gmtOffSetMilliseconds market esgPopulated 1 EST -18000000 us_market FALSE 2 EST -18000000 us_market FALSE 3 EST -18000000 us_market FALSE 4 < NA < FALSE exchange shortName longName currency 1 NYQ CONSOL Energy Inc. CONSOL Energy Inc. USD 2 NYQ Schlumberger N.V. Schlumberger Limited USD 3 NYQ Teekay Corporation Teekay Corporation USD 4 < < < <NA> firstTradeDateMilliseconds priceHint postMarketChangePercent postMarketTime 1 1.51067e+12 2 -0.0171911 1678321189 2 3.78657e+11 2 -0.2614856 1678322487 3 8.06247e+11 2 -2.0537100 1678315847 4 NA NA NA NA postMarketPrice postMarketChange regularMarketChange regularMarketTime 1 58.15 -0.00999832 -0.59000015 2023-03-08 22:00:02 2 53.40 -0.13999939 -0.50000000 2023-03-08 22:00:01 3 6.20 -0.13000000 0.07999992 2023-03-08 22:00:01 4 NA NA NA <NA> regularMarketDayHigh regularMarketDayRange regularMarketDayLow 1 59.27 57.11 - 59.27 57.110 2 54.26 52.315 - 54.26 52.315 3 6.36 6.2 - 6.36 6.200 4 NA < NA regularMarketVolume regularMarketPreviousClose bid ask bidSize askSize 1 602135 58.75 0 0 9 10 2 7438903 54.04 0 0 9 9 3 1259287 6.25 0 0 30 10 4 NA NA NA NA NA NA fullExchangeName financialCurrency regularMarketOpen averageDailyVolume3Month 1 NYSE USD 58.88 941258 2 NYSE USD 53.71 9097559 3 NYSE USD 6.30 1065752 4 < < NA NA averageDailyVolume10Day fiftyTwoWeekLowChange fiftyTwoWeekLowChangePercent 1 1248230 29.10 1.001376 2 7184360 22.89 0.746819 3 2074230 3.79 1.492126 4 NA NA NA fiftyTwoWeekRange fiftyTwoWeekHighChange fiftyTwoWeekHighChangePercent 1 29.06 - 79.17 -21.00999800 -0.26537830 2 30.65 - 59.45 -5.91000000 -0.09941126 3 2.54 - 6.43 -0.09999991 -0.01555209 4 < NA NA fiftyTwoWeekLow fiftyTwoWeekHigh dividendDate earningsTimestamp 1 29.06 79.17 1677542400 1675782000 2 30.65 59.45 1680739200 1674225000 3 2.54 6.43 1550102400 1677168000 4 NA NA NA NA earningsTimestampStart earningsTimestampEnd trailingAnnualDividendRate 1 1682944200 1683289800 2.15 2 1681988400 1682334000 0.65 3 1683721800 1684153800 0.00 4 NA NA NA trailingPE trailingAnnualDividendYield epsTrailingTwelveMonths epsForward 1 4.449885 0.03659575 13.07 20.06 2 22.401672 0.01202813 2.39 3.72 3 17.108109 0.00000000 0.37 0.43 4 NA NA NA NA epsCurrentYear priceEpsCurrentYear sharesOutstanding bookValue 1 21.24 2.73823 34746900 33.552 2 3.02 17.72848 1427600000 12.453 3 NA NA 98318400 6.341 4 NA NA NA NA fiftyDayAverage fiftyDayAverageChange fiftyDayAverageChangePercent 1 58.9584 -0.7984009 -0.01354177 2 54.9444 -1.4043999 -0.02556038 3 5.0340 1.2960000 0.25744936 4 NA NA NA twoHundredDayAverage twoHundredDayAverageChange 1 61.7829 -3.622902 2 45.6561 7.883900 3 3.9711 2.358900 4 NA NA twoHundredDayAverageChangePercent marketCap forwardPE priceToBook 1 -0.05863923 2020879744 2.899302 1.7334288 2 0.17268010 76433702912 14.392473 4.2993655 3 0.59401673 622355456 14.720930 0.9982652 4 NA NA NA NA sourceInterval exchangeDataDelayedBy averageAnalystRating tradeable 1 15 0 2.0 - Buy FALSE 2 15 0 1.9 - Buy FALSE 3 15 0 3.0 - Hold FALSE 4 NA NA < FALSE cryptoTradeable displayName symbol 1 FALSE CONSOL Energy CEIX 2 FALSE Schlumberger SLB 3 FALSE Teekay TK 4 FALSE < TGP