Este es mi primer programa escrito en Python que utiliza Facebook Prophet para predecir el precio de apertura de una acción en un período futuro. El programa permite al usuario ingresar el ticker de la acción a analizar y descarga los datos históricos de Yahoo Finance. Luego, ajusta un modelo Prophet y realiza una predicción para el período especificado.
Este programa está basado en el tutorial "Predicción de precios de Ethereum con Python" de Benedict Neo, publicado en Medium (Link al tutorial).
Se ha utilizado su trabajo como base para el análisis de datos, la visualización de gráficos y la implementación del modelo de Prophet para la predicción de precios. También se han realizado algunas modificaciones y se han añadido nuevas funcionalidades.
El programa requiere las siguientes librerías de Python:
- pandas
- yfinance
- datetime
- dateutil
- plotly
- fbprophet
Estas librerías se pueden instalar todas a la vez a través del gestor de paquetes pip ejecutando el siguiente comando:
pip install pandas yfinance datetime dateutil plotly prophet
- Ejecuta el archivo predict.py en la consola de comandos.
- Ingresa el ticker de la acción que deseas analizar cuando se te solicite.
- El programa descargará los datos históricos de la acción y generará un gráfico de la serie de precios de apertura.
- Si los datos se han descargado correctamente, el programa intentará generar una predicción de precios utilizando el modelo Prophet.
- El programa generará dos archivos HTML: uno con el gráfico de la predicción y otro con los componentes de la predicción.
Ten en cuenta que si se introduce un ticker inválido o si hay problemas de conexión al descargar los datos, el programa mostrará un mensaje de error y se detendrá. En este caso, deberás reiniciar el programa.
El programa tiene las siguientes limitaciones:
- Solo funciona con acciones que se pueden descargar de Yahoo Finance.
- El modelo Prophet asume que los datos son estacionarios y que no hay cambios estructurales en los datos históricos.
- La predicción del modelo Prophet no debe interpretarse como una garantía del precio futuro de la acción.
Si encuentras algún error o problema en el código, o si deseas contribuir con una nueva funcionalidad, no dudes en abrir un issue o enviar una pull request.