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