El objetivo de este documento es mostrar cómo puedes usar la librería coinmarkercapr para obener el trading de las cryptos (criptomonedas) en el momento que necesites. Además, mostraré cómo vincularse con google para volcar los datos un spreadsheet si lo requieres.
Así que, si tienes en mente obtener el valor de una o varias crypto (a USD) en el instante, registrar los valores en una spreadsheet y por qué no, hacer algún análisis sobre tu inversión, reporting o sencillamente chusmear, quizá esta RPUB te puede ayudar 😉
Los datos provienen de Coinmarkercap, una página con índices, capitalizaciones, precio, volumen y más, de las cryptos, segundo a segundo. Claro que para extraer datos deberás generar un Token y conectarte a la API que dejan a disposición (es gratuito para consultas moderadas)
library(coinmarketcapr)
library(googlesheets4)
library(tidyverse)
Genera tu Api Key en Coinmarkercap
Dashboard CoinMarkerCap API
En el dashboard obtendras la KEY que te permitirar usar la API para tus consultas. En el plan basic (gratuito) podrás hacer 333 consultas diarias o 10mil mensuales.
# Crear una variable con tu Key (no mostrar y mantener en privado)
ApiKeyCrypto1 <- ApiKeyCrypto # pegar el token o KEY de tipo "4****cl8-ka33-4***-12jsd-2i89*****"
setup(api_key = ApiKeyCrypto1, FALSE)
mercado <- get_marketcap_ticker_all()
head(mercado[,1:8])
| id | name | symbol | slug | num_market_pairs | date_added | tags | max_supply |
|---|---|---|---|---|---|---|---|
| 1 | Bitcoin | BTC | bitcoin | 9796 | 2013-04-28 | mineable , pow , sha-256 , store-of-value , state-channels , coinbase-ventures-portfolio , three-arrows-capital-portfolio, polychain-capital-portfolio | 21000000 |
| 1027 | Ethereum | ETH | ethereum | 6107 | 2015-08-07 | mineable , pow , smart-contracts , coinbase-ventures-portfolio , three-arrows-capital-portfolio, polychain-capital-portfolio | NA |
| 2010 | Cardano | ADA | cardano | 238 | 2017-10-01 | mineable , dpos , pos , platform , research , smart-contracts, staking , binance-chain | 45000000000 |
| 1839 | Binance Coin | BNB | binance-coin | 477 | 2017-07-25 | marketplace, payments | 170532785 |
| 825 | Tether | USDT | tether | 11074 | 2015-02-25 | store-of-value , payments , stablecoin , stablecoin-asset-backed | NA |
| 6636 | Polkadot | DOT | polkadot-new | 153 | 2020-08-19 | substrate , polkadot , binance-chain , dot-ecosystem , three-arrows-capital-portfolio, polychain-capital-portfolio | NA |
# Seleccionar las columnas importantes según cada necesidad:
Cryptos <- mercado %>%
select(id,name,symbol,slug, num_market_pairs, USD_price, USD_volume_24h, USD_percent_change_24h, USD_percent_change_7d, USD_percent_change_30d, USD_last_updated)
head(Cryptos[1:10,])
| id | name | symbol | slug | num_market_pairs | USD_price | USD_volume_24h | USD_percent_change_24h | USD_percent_change_7d | USD_percent_change_30d | USD_last_updated |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Bitcoin | BTC | bitcoin | 9796 | 51006.701484 | 55029425596 | 4.4177069 | 0.4095847 | 51.494101 | 2021-03-04 03:16:00 |
| 1027 | Ethereum | ETH | ethereum | 6107 | 1603.869171 | 23162262358 | 5.2237215 | -2.3126668 | 16.038026 | 2021-03-04 03:16:00 |
| 2010 | Cardano | ADA | cardano | 238 | 1.221296 | 4881474728 | -1.1359107 | 17.4778308 | 203.212619 | 2021-03-04 03:16:00 |
| 1839 | Binance Coin | BNB | binance-coin | 477 | 247.122767 | 5946642695 | 2.2414355 | -3.2680011 | 386.812799 | 2021-03-04 03:16:00 |
| 825 | Tether | USDT | tether | 11074 | 1.000515 | 98898153760 | -0.0325432 | 0.0229705 | -0.033706 | 2021-03-04 03:16:00 |
| 6636 | Polkadot | DOT | polkadot-new | 153 | 37.761845 | 2660574551 | 0.3088413 | 10.1549100 | 134.627773 | 2021-03-04 03:17:00 |
Primero se debe crear una hoja nueva en el Drive que estes usando con la cuenta gmail con la cual tengas acceso. Al crear el SS con el “gs4_create” la consola pedirá realizar el OAUTH esto es, autorizar a que RStudio pueda administrar tu sesión de Drive (crear, sobreescribir, etc) para mas información aquí El SS puedes crearlo con el nombre que desees.
a <- gs4_create("sheets-create-demo-1") # creo el SS con un nombre cualquiera
sheet_write(Cryptos,a, NULL) # vuelca el df al SS
El resultado será una “Hoja 1” en un Spreadsheet “sheets-create-demo-1” con los resultados obtenidos; al momento de actualizar los datos, o bien, incorporar una nueva consulta (ya que queremos mantener la marca temporal para analítica de mercado), utilizaremos la siguiente función “sheet_append”, dado que la función anterior “gs4_create” crearía una archivo nuevo cada vez que la ejecutemos.
sheet_append(a,Cryptos,"Hoja 1") # pega nuevas filas inmediatamente debajo de la última encontrada en la Hoja de la SS
Los archivos de Google tienen la ventaja de ser dinámicos, ágiles, permitiendo compartir reportes con otras personas de una manera rápida y efectiva.
Usa fórmulas para crear tus propias vistas y tableros, por ejemplo:
Puedes programar un bot que ejecute el código todos los días, para automatizar más la obtención de CryptoCurrency diaria.
Cuando tenga suficientes registros, publicaré algunos resultados analíticos con R, usando tidyverse y ggplot2! 😉
Encuentrame en LinkedIn Daniela Rattia - Geógrafa., Especialista en Datos y GisAnalytics