Este programa en Python capaz de tomar decisiones de compra y venta de Bitcoin en tiempo real, ¿Interesante verdad?.
Para empezar, se puede utilizar cualquier entorno de Python, tan sólo asegúrate que sea una versión 3.X, el base es Jupyter Notebook, también necesitarás instalar algunas librerías de Python que son esenciales para este proyecto, como:
- Pandas
- Numpy
- Matplotlib
- Yfinance
- Time
- BeautifulSoup
- Request
Para la obtención de datos se recurrió al uso de la API llamada YFinance que proporciona los datos históricos de precios de Bitcoin y muchas mas monedas en formato JSON. Su documentación la encontrarán en el siguiente enlace: https://pypi.org/project/yfinance/
Por otro lado, se realiza Web Scraping en un sitio de noticias para obtener el precio actual y algunos indicadores de tendencias del Bitcoin
El sitio elegido fue: https://coinmarketcap.com
Una vez se tienen los datos históricos, se cargan en un DataFrame de Pandas para poder manipularlos y analizarlos, dónde se identifican y eliminan los outliers, además de tratar cualquier valor nulo o duplicados en la base. Finalmente, con la base limpia, se calcula el precio promedio del Bitcoin.
Con la obtención del precio promedio, se compara con el precio actual y tendencia del Bitcoin, que previamente se obtuvo con Web Scraping. Si el precio actual es mayor/igual que la media y la tendencia es de baja, entonces se debe vender, pero si el precio actual es menor que la media y la tendencia es de alta, entonces se debe comprar, si ninguna condición se cumple, la instrucción es esperar.
Se utiliza la librería Matplotlib para crear un gráfico donde se muestre la evolución del precio del Bitcoin durante el periodo seleccionado, y una línea recta que pase sobre el precio medio. Por último, se muestra un mensaje en el gráfico que indique “Vender”, “Comprar” o “Esperar” según sea la decisión del algoritmo.
Finalmente, ahora que se tienen: la extracción de información, la limpieza de datos, la visualización, y el algoritmo de decisión, es hora de automatizar el proceso. Se utiliza la librería de Python "time" para ejecutar el algoritmo de decisión cada 5 minutos y actualizar el gráfico, además del método clear_output para limpiar el gráfico antes de volver a iniciar el ciclo.
Desarrollador 😉