¡Mi primer artículo en Binance Square! 100% recomendado para data analysts y traders crypto! $BTC $ETH $BNB
LIVE
JLLC
--
Cómo crear un dataset crypto con Google Sheets
En estos últimos meses he estado escribiendo sobre el mercado crypto y la tecnología blockchain en general en LinkedIn. Sin embargo, he visto la oportunidad de compartir el mismo contenido en Binance Square, convirtiéndose en el 1er contenido que publico aquí. Aunque eso sí, si queréis acceder a los enlaces y a un artículo más completo donde podáis hacer 'click' a las fuentes, os recomiendo que busquéis el mismo artículo en LinkedIn, ya que Binance Square NO permite enlaces que no pertenezcan directamente a la propia Binance... Entonces, siguiendo con el tema del artículo, si quieres saber como crear un dataset con datos e información crypto para aplicarle algoritmos de machine learning y/o estudiarlo a nivel econométrico, sin depender de que exista esa información mediante terceros, este es tu post. ¡Allá vamos! Conceptos básicos Antes de meternos en materia, me gustaría empezar con una breve introducción explicando algunos conceptos importantes para entender el post. Recuerda también que algunas palabras que veas en azul serán conceptos que los habré linkeado directamente a Wikipedia o a su fuente original. Dataset. Se trata de un conjunto de datos con X filas y Z columnas que recoge información de un tema concreto. Por ejemplo, si estudiamos la altura, peso y forma física de la población de España, la población será X y los datos relacionados a esta (altura, peso y forma física) serán los atributos Z. Crypto. Se conoce como el mercado por el cual criptomonedas y tokens son parte de empresas y proyectos que poseen tecnología blockchain. Blockchain. Es la tecnología con la cual se desarrolló Bitcoin. Su objetivo inicial fue la descentralización de las finanzas, pero actualmente es aplicable a más sectores además del financiero/económico. API. Del inglés Application Programming Interface; una API nos permite acceder a información o infraestructura con la cual nos podemos ahorrar mucho tiempo de trabajo. El mejor ejemplo que te puedo dar de esta herramienta es con este post. Otros conceptos como ETF, Solana, spot o el término Bitcoin entre otros, los dejaré como he comentado antes, linkeados. Info Dataset: ¿Qué información quiero recopilar en el dataset? En mi caso, lo que se busca es crear un conjunto de datos que en su mayoría sean atemporales. Con ello, lo que quiero es que se puedan añadir filas al mismo en cualquier momento y no afecte a su desempeño. Pero, ¿Por qué? Pues porque ya hay mil y un analistas que se dedican a analizar e investigar de forma técnica todas y cada una de las gráficas en el sector crypto. Sin embargo, y a diferencia de como se hace en el mercado de las acciones, no existe una forma de analizar los fundamentales más allá del whitepaper o las noticias que rodeen al activo en cuestión. Por ello, los datos que al final he conseguido recopilar de una forma automatizada desde distintas APIs son:
Fuente: Elaboración propia vía Google Sheets En esta imagen detallo el número de columnas, filas, y qué representa cada columna. Con esto tenemos una imagen general de los datos que contiene el dataset. Como inciso, quiero aclarar que ha sido bastante complicado conseguir los datos, y no ha sido fácil generar 100 observaciones con 8 columnas. Dataset: Este será el resultado final (SPOILER) Antes de que sigáis leyendo, este será más o menos el resultado que obtendréis si seguís los pasos de este post:
Fuente: Elaboración propia vía CoinGecko, Cypto Compare y Google Sheets El dataset se compone principalmente de datos extraídos de forma automatizada de las APIs. Sin embargo, las 2 últimas columnas (TOP 10 y SUCCESS) están creadas manualmente. En otro orden, como podéis observar, la imagen es una muestra del dataset final hasta la fila número 20. Además, hay algunas celdas sin información o directamente con un N/A, esto lo voy a explicar más adelante el por qué, pero os lo resumo: las APIs gratuitas tienen sus límites, pero es que aunque acudas a una de pago, la información atemporal en el sector crypto es muy limitada. De ahí la voluntad de crear este dataset. Paso 0: Instalar la extensión API Connector en Chrome Antes de ponernos a montar el mueble, vamos a por las herramientas. En nuestro caso, para que la extracción de los datos sea más intuitiva y menos tediosa, si no tienes conocimientos informáticos nos apoyaremos en una extensión de la Chrome Web Store. La extensión se llama "API Connector", y en los siguientes enlaces Mixed Analytics (la propietaria de la extensión) te enseña paso a paso como instalar y utilizar CoinMarketCap, CoinGecko y CryptoCompare vía API. Me doy el lujo entonces de poneros las palabras clave para que lo busquéis en Google (AKA mis fuentes) y seguir con el post: Guía API CMC con la extensión API Connector para Google Sheets de Chrome Guía API CoinGecko con la extensión API Connector para Google Sheets de Chrome Guía API Crypto Compare con la extensión API Connector para Google Sheets de Chrome Puedes utilizar 1 de las 3 o todas a la vez. Para este dataset he utilizado las 3 para dar la mayor variedad de datos posible. Paso 1: Cómo encontrar y ejecutar la extensión en Google Sheets Una foto vale más que mil palabras: Fuente: Elaboración propia vía CMC y Google Sheets Como se puede ver, en primer lugar tenemos que tener abierto una pestaña en el navegador Chrome con un fichero nuevo de Google Sheets. Luego nos vamos en la cinta de superior a "Extensiones" y ahí buscamos la extensión "API Connector", para finalmente, hacer click en "Open". Con ello, ya tendríamos la extensión localizada y sabiendo como ejecutarla. Los datos que ves detrás son posteriores a haber ejecutado la extensión con las instrucciones que se detallan en la guía de API con CMC (ver link Nº1 del anterior epígrafe). En el conjunto de datos que te facilita CMC, utilizo las columnas que se denominan "data.symbol", "data.max_supply", "data.infinite_supply" y "data.platform.symbol". Paso 2: Lo mismo que en el Paso 1 pero esta vez con CoinGecko A modo de ejemplo, los datos que os deberían salir con Coingecko, serían tal que así: Fuente: Elaboración propia vía CoinGecko y Google Sheets Con este conjunto de datos que nos ofrece CoinGecko me quedo con los que se denominan "symbol", "total_supply" y "max_supply". Cabe destacar que, aunque "market_cap_rank" está resaltado en amarillo, al final esta columna no la utilicé. Paso 3: Más de lo mismo; última ejecución de la API con Crypto Compare Llegamos a la tercera y última fuente de la que se ha nutrido el dataset: CryptoCompare. He de decir que los datos más interesantes los he sacado con su API, aunque en términos de volumen de datos está muy limitada. Fuente: Elaboración propia vía Crypto Compare y Google Sheets Como en los dos ejemplos anteriores, este debería ser el resultado al ejecutar su API en Google Sheets. Nos quedaremos con las columnas "Data.CoinInfo.Name", "Data.CoinInfo.Algorithm" y "Data.CoinInfo.ProofType". De nuevo, se descarta la segunda columna en amarillo por ser prácticamente igual a la primera, por lo que así evitamos duplicar columnas y por tanto, datos. En resumidas cuentas, las fuentes serían las siguientes, y para cada una de ellas tendremos que introducir su código API en la extensión para así poder ejecutarla: Fuente: Elaboración propia vía Google Sheets Nota: No comparto mis códigos API porque su uso está limitado, por lo que cada uno tendréis que crearos una cuenta en cada uno de las webs y acceder a la API. Es totalmente gratis y si quieres más volumen de información siempre tendrás la opción de pagar la versión mejorada o premium. Paso 4: Nos traemos los datos seleccionados de los 3 pasos anteriores y creamos el dataset Así se vería la extracción de datos en otra hoja en el mismo fichero de Google Sheets: Fuente: Elaboración propia vía Google Sheets Como es lógico, nuestra PK (Primary Key) es el acrónimo de cada proyecto, ya que es de los pocos datos únicos que poseen en común y sirven para identificar directamente a la criptomoneda/token. Es decir, me refiero a la columna "Name". Con esta columna, utilizaremos la fórmula "BUSCARV" para traernos el resto de columnas. Posteriormente, para saber hasta qué punto las 3 fuentes de datos poseen las mismas PK, creamos una flag en la cual mediante un BUSCARV en la "Flag 1/2", veremos si teniendo como referencia CG (CoinGecko), se encuentran o no esos tokens o cryptos en el listado de CC (Crypto Compare). Por otro lado, en la "Flag 2/2" lo que se hace es comprobar vía BUSCARV si el listado CG coincide con el que sale como resultado en la "Flag 1/2". Así, contaremos cuantas coincidencias hay de las 250 observaciones que hay (215 en total, lo que nos da 35 diferencias). Fuente: Elaboración propia vía Google Sheets Después de un análisis, se concluye que la calidad de los datos en CoinGecko es superior a la de CMC, por lo que se opta por descartar la información recopilada de CMC. ¿Por qué? Porque la información recopilada de CMC y CoinGecko es a fin de cuentas, prácticamente la misma, y la de CoinGecko posee más coincidencias con Crypto Compare. Esto es esencial de cara a fusionar ambas fuentes de datos. Sin embargo, el límite de observaciones que nos puede ofrecer Crypto Compare (CC) son de 100 filas, por lo que nos toca volver a hacer el mismo proceso para saber cuantas PK coinciden entre CG y CC. El resultado final fue de 90 coincidencias, por lo que si al inicio de este post te comentaba que hay en total 102 observaciones, es porque he añadido manualmente 12 (90 +12 = 102). Por otro lado, a causa de que las columnas de "MAX SUPPLY" de ambas fuentes de datos a veces no coincidían por omisión de datos en una u otra, se procede a crear una columna en la que nos traigamos los datos de ambas. Paso Final: Dudas y consultas + Descarga del dataset Y para finalizar, si queréis ahorraros todo el proceso y descargaros el dataset, lo tendréis disponible en el repositorio de mi perfil en Kaggle: Link: https://www.kaggle.com/datasets/jonathanllacre/crypto-dataset/data Si tenéis cualquier duda o consulta siempre podréis hacerme DM vía LinkedIn. ¡Hasta la próxima! 😉
En estos últimos meses he estado escribiendo sobre el mercado crypto y la tecnología blockchain en general en LinkedIn. Sin embargo, he visto la oportunidad de compartir el mismo contenido en Binance Square, convirtiéndose en el 1er contenido que publico aquí. Aunque eso sí, si queréis acceder a los enlaces y a un artículo más completo donde podáis hacer 'click' a las fuentes, os recomiendo que busquéis el mismo artículo en LinkedIn, ya que Binance Square NO permite enlaces que no pertenezcan di
Descubre las últimas noticias sobre criptomonedas
⚡️ Participa en los debates más recientes sobre criptomonedas