https://github.com/alexquilis1/bitcoininsight
Trabajo de Fin de Grado en Ingeniería Matemática: Sistema de predicción direccional de Bitcoin mediante modelos de machine learning (LightGBM) y análisis de sentimiento (RoBERTa). Investigación sobre integración multimodal en mercados financieros.
https://github.com/alexquilis1/bitcoininsight
academic-project algorithmic-trading automated-training bitcoin-prediction crypto-analytics cryptocurrency-analysis financial-ml financial-sentiment price-prediction quantita tfg thesis-project
Last synced: 3 months ago
JSON representation
Trabajo de Fin de Grado en Ingeniería Matemática: Sistema de predicción direccional de Bitcoin mediante modelos de machine learning (LightGBM) y análisis de sentimiento (RoBERTa). Investigación sobre integración multimodal en mercados financieros.
- Host: GitHub
- URL: https://github.com/alexquilis1/bitcoininsight
- Owner: alexquilis1
- License: other
- Created: 2025-03-19T16:26:09.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-30T13:34:01.000Z (4 months ago)
- Last Synced: 2025-06-30T14:38:37.191Z (4 months ago)
- Topics: academic-project, algorithmic-trading, automated-training, bitcoin-prediction, crypto-analytics, cryptocurrency-analysis, financial-ml, financial-sentiment, price-prediction, quantita, tfg, thesis-project
- Language: Jupyter Notebook
- Homepage: https://tfg-flame.vercel.app
- Size: 13 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🚀 BitcoinInsight
**Sistema de predicción direccional de Bitcoin con inteligencia artificial**
[](https://python.org)
[](https://fastapi.tiangolo.com)
[](https://reactjs.org)
[](https://typescriptlang.org)## 📖 Descripción
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.
## ✨ Características Principales
- 🤖 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## 🛠️ Stack Tecnológico
**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## 🚀 Instalación
### 1. Clonar y configurar
```
git clone https://github.com/alexquilis1/BitcoinInsight.git
cd BitcoinInsight
```#### Backend
```
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```#### Frontend
```
cd frontend
npm install
```### 2. Variables de entorno
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
```### 3. Ejecutar
#### Backend (Puerto 8000)
```
python main.py
```#### Frontend (Puerto 3000)
```
cd frontend
npm start
```Accede a: http://localhost:3000
## 📊 API Endpoints
| 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 |### Ejemplo de uso
```
import requestsresponse = 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%})")
```## 🧠 Modelo de Machine Learning
### Metodología
- 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%### Hallazgos Científicos
- 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## 🔄 GitHub Actions
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## 🔒 Seguridad y Privacidad
- ❌ 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## 🤝 Contribuir
- 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
Licencia Personalizada - ver [LICENSE](LICENSE) para detalles.
**Nota:** El uso comercial requiere notificación y puede requerir permiso. Contactar para consultas de licenciamiento comercial.
## 👨💻 Autor
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## ⚠️ Disclaimer
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
Desarrollado con ❤️ para la comunidad Bitcoin