R

Otener la cotización del Bitcoin con R

Para consultar la cotización del Bitcoin, o de cualquier otra criptomoneda, se puede usar una de las múltiples API que existen en la actualidad. La plataforma de intercambio de criptomonedas Bitmex ofrece posiblemente una de las API más sencillas de utilizar. Además de no ser necesario disponer de una clave privada para poder consultar las cotizaciones como puede suceder en otras plataformas. Por eso, en esta entrada vamos a aprender a consultar la cotización del Bitcoin con R utilizando para ello el API de Bitmex. Información que posteriormente se podrá utilizar para realizar análisis en R de las cotizaciones.

El API de Bitmex

Para evaluar el API que ofrece Bitmex para consultar la cotización de las criptomonedas se puede usar su explorador https://www.bitmex.com/api/explorer/. Una página en la que se puede consultar la potencia de esta herramienta. Para obtener la información de una criptomoneda solamente hay que indicar el símbolo de esta y el periodicidad con la que se desea obtener los valores. Obteniendo por defecto 100 cotizaciones, aunque el número de perdidos se puede cambiar con facilidad.

Acceso al API desde R

Para acceder al API de Bitmex desde R solamente será necesario contar con el paquete jsonlite. Un paquete con el que se puede importar cualquier JSON en un DataFrame, tanto desde un archivo como desde la web. Paquete que si no tenemos en nuestra instalación de R se puede obtener desde el CRAN ejecutando el siguiente comando en una sesión de R

install.packages("jsonlite")

Una vez instalado el paquete solamente debemos crear la URL, con las propiedades que nos interese en cada momento e importar los datos con jsonlite(). Las propiedades más interesantes son la criptomoneda, lo que se indica mediante el símbolo (symbol), la fecha de inicio (startTime), la periodicidad con la que se consultan los datos (binSize) y el número de perdidos que se desea importar (count). URL que se puede construir mediante la función paste0(), como se hace en la siguiente función:

library(tidyverse)
library(jsonlite)

bimex_reader <- function(symbol = "XBTEUR", binSize = "1d", count = 10, startTime = as.Date(today()) - 10) {
  url <- paste0("https://www.bitmex.com/api/v1/trade/bucketed?", 
                'binSize=', binSize, 
                '&symbol=', symbol, 
                '&count=', count,
                '&startTime=', startTime)
  
  fromJSON(url) %>% mutate(timestamp = as_datetime(timestamp))
}

Una función en la que por defecto se carga la cotización del Bitcoin frente al euro, con una periodicidad diaria y para los últimos 10 días. Obteniendo por defecto el día de inicio a partir de la fecha actual menos los 10 días. En la función, una vez importados los datos, se convierte los valores de la columna timestamp en fecha para facilitar su posterior análisis.

Ahora para consultar la cotización del Bitcoin en septiembre de 2021 solamente se tiene que llamar a la función con la fecha de inicio.

> bimex_reader(startTime="2021-09-01")
    timestamp symbol    open    high     low   close trades   volume     vwap lastSize    turnover homeNotional foreignNotional
1  2021-09-01 XBTEUR 39859.5 40896.0 39662.0 39986.0    656  2943900 40138.56      200  7334360332     73.34360         2943900
2  2021-09-02 XBTEUR 39986.0 41538.0 39464.5 41316.5   1233  1337800 40650.08    23700  3291018000     32.91018         1337800
3  2021-09-03 XBTEUR 41316.5 42530.0 41131.0 41598.0   1294  4249500 41850.99    40000 10153887842    101.53888         4249500
4  2021-09-04 XBTEUR 41598.0 43036.0 40800.0 42074.0   1696  7612000 42240.61      100 18020647593    180.20648         7612000
5  2021-09-05 XBTEUR 42074.0 42530.0 41550.0 42100.0    812  2645600 42097.11     4000  6284531790     62.84532         2645600
6  2021-09-06 XBTEUR 42100.0 43666.0 41681.0 43547.0   1708 10168200 42539.43    22700 23903067746    239.03068        10168200
7  2021-09-07 XBTEUR 43547.0 44504.5 43050.0 44437.5   1445  5481500 43669.08      100 12552409008    125.52409         5481500
8  2021-09-08 XBTEUR 44437.5 44600.0 34639.5 39472.0   3127 21243200 40948.87      200 51877480251    518.77480        21243200
9  2021-09-09 XBTEUR 39472.0 39911.0 37610.0 38987.0   2104  5342800 38976.78      900 13707677674    137.07678         5342800
10 2021-09-10 XBTEUR 38987.0 40019.0 38555.0 39172.0   1700  6721500 39257.72      100 17121524141    171.21524         6721500

Conclusiones

En esta entrada se ha visto como se puede consultar la cotización del Bitcoin con R gracias al uso del jsonlite y el API de Bitmex. Siendo bastante útil lo aprendido en esta entrada, ya que lo visto se puede adaptar para obtener información de cualquier otra API que sea de interés para nosotros.

Imagen de MichaelWuensch en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

3 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

4 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

1 semana ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.