Sistema de predicción direccional de Bitcoin con inteligencia artificial
BitcoinInsight es un sistema de predicción direccional de Bitcoin que combina machine learning avanzado con análisis de sentimiento para predecir movimientos de precio diarios. Desarrollado como Trabajo de Fin de Grado en Ingeniería en Matemática Aplicada al Análisis de Datos.
- 🤖 Modelo LightGBM optimizado con ROC-AUC de 0.578 (+15.6% vs predicción aleatoria)
- 📰 Análisis de Sentimiento de noticias financieras con RoBERTa
- ⚡ API REST con datos en tiempo real de Coinbase Pro
- 📊 Dashboard Responsive con visualizaciones interactivas
- 🔄 Automatización Diaria via GitHub Actions (02:00 UTC)
- 🔒 Seguridad y privacidad by design
Backend: Python 3.10+, FastAPI, LightGBM, scikit-learn, RoBERTa
Frontend: React 18, TypeScript, Tailwind CSS, Recharts
Base de Datos: Supabase (PostgreSQL)
APIs: Coinbase Pro, GNews, TheNews
Deploy: GitHub Actions, Docker
git clone https://github.com/alexquilis1/BitcoinInsight.git
cd BitcoinInsight
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cd frontend
npm install
Crear un archivo .env
en la raíz:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
GNEWS_API_KEY=your_gnews_api_key
THENEWS_API_KEY=your_thenews_api_key
python main.py
cd frontend
npm start
Accede a: http://localhost:3000
Método | Endpoint | Descripción |
---|---|---|
GET | /api/prediction/tomorrow |
Predicción para mañana |
GET | /api/prediction/latest |
Última predicción |
GET | /api/predictions/history?days=7 |
Historial |
POST | /api/prediction/generate |
Generar predicción |
GET | /api/bitcoin/realtime |
Precio actual |
import requests
response = requests.get("http://localhost:8000/api/prediction/tomorrow")
data = response.json()
if data["has_prediction"]:
prediction = data["prediction"]
direction = "📈 SUBIDA" if prediction["price_direction"] == 1 else "📉 BAJADA"
confidence = prediction["confidence_score"]
print(f"Predicción: {direction} (Confianza: {confidence:.1%})")
- Enfoque Multimodal: Análisis técnico + sentimiento + contexto macroeconómico
- Algoritmo: LightGBM optimizado con Optuna (25 iteraciones)
- Características: 13 variables (6 técnicas + 7 sentimiento)
- Validación: TimeSeriesSplit para evitar data leakage
- Dataset: 262 observaciones (2024), distribución equilibrada 50%-50%
- Efecto Contrario del Sentimiento: Sentimiento negativo moderado → 67.3% probabilidad de subida
- Superioridad de Modelos Simples: LightGBM > Redes Neuronales complejas
- Integración Multimodal: +12.9% mejora vs enfoques puros
Configurar secrets en Settings > Secrets and variables > Actions:
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
GNEWS_API_KEY=your_gnews_api_key
THENEWS_API_KEY=your_thenews_api_key
El sistema ejecuta automáticamente cada día:
- Recolecta datos de Coinbase Pro y noticias
- Procesa características
- Genera predicción para el día siguiente
- Almacena en Supabase
- ❌ Sin registro de usuarios requerido
- ❌ Sin cookies de seguimiento
- ❌ Sin almacenamiento de datos personales
- ✅ Logs temporales (auto-eliminados cada 24h)
- ✅ Variables de entorno para secrets
- ✅ Rate limiting y validación de entrada
- Fork el repositorio
- Crea una rama:
git checkout -b feature/nueva-feature
- Commit:
git commit -m 'Add nueva feature'
- Push:
git push origin feature/nueva-feature
- Abre un Pull Request
Licencia Personalizada - ver LICENSE para detalles.
Nota: El uso comercial requiere notificación y puede requerir permiso. Contactar para consultas de licenciamiento comercial.
Alex Quilis Vila
🎓 Grado en Ingeniería en Matemática Aplicada al Análisis de Datos
🏫 Universidad Europea de Madrid (2024-2025)
👨🏫 Director: Álvaro Sánchez Pérez
BitcoinInsight es un proyecto académico y educativo.
- ❌ NO constituye asesoramiento financiero
- ❌ NO debe ser la única base para inversiones
- ✅ Para fines educativos e informativos
⚠️ El mercado crypto es altamente volátil