architecture - ErnestoCobos/MidasV4 GitHub Wiki
Arquitectura del Sistema
MidasScalpingv4 está construido con una arquitectura modular que permite flexibilidad, extensibilidad y mantenimiento sencillo. Este documento explica los componentes principales del sistema y cómo interactúan entre sí.
Estructura de Directorios
MidasScalpingv4/
├── core/ # Componentes centrales del sistema
├── models/ # Modelos de aprendizaje automático
├── strategy/ # Implementaciones de estrategias de trading
├── data/ # Manipulación y procesamiento de datos
├── tui/ # Interfaz de usuario textual
├── ai/ # Integraciones con IA (opcional)
Componentes Principales
1. Core
El módulo core contiene los componentes fundamentales del sistema:
config.py
: Gestión de configuración globalconstants.py
: Constantes del sistemalogging_setup.py
: Configuración de logging
2. Modelos
El directorio models/
contiene implementaciones de diferentes modelos predictivos:
lstm_model.py
: Modelo de red neuronal LSTM para predicción de series temporalesxgboost_model.py
: Modelo de gradient boosting para clasificación/regresióndeep_scalper.py
: Modelo de aprendizaje por refuerzo con redes Q dualesmodel_factory.py
: Fábrica para instanciar diferentes tipos de modelosmodel_trainer.py
: Sistema de entrenamiento automático de modelos
3. Estrategia
El módulo strategy/
implementa las estrategias de trading:
scalping_strategy.py
: Estrategia principal de scalping basada en indicadoressignal_generator.py
: Generador de señales de tradingrisk_manager.py
: Sistema de gestión de riesgomarket_regime.py
: Detector de regímenes de mercadollm_strategy.py
: Estrategia basada en modelos de lenguaje (opcional)rl_strategy.py
: Estrategia basada en aprendizaje por refuerzo
4. Datos
El módulo data/
maneja la obtención y procesamiento de datos:
binance_client.py
: Cliente para la API de Binancedata_processor.py
: Procesamiento y limpieza de datosdatabase.py
: Persistencia y recuperación de datosfeature_engineer.py
: Generación de características para modelos
5. Interfaz de Usuario
El módulo tui/
implementa la interfaz de usuario textual:
app.py
: Aplicación principal Textualcomponents/
: Componentes reutilizables de la interfaz
Flujo de Ejecución
-
Inicialización:
- Carga de configuración
- Establecimiento de conexiones a APIs y bases de datos
- Inicialización de modelos y estrategias
-
Ciclo de Trading:
- Obtención de datos de mercado
- Cálculo de indicadores técnicos
- Detección de régimen de mercado
- Generación de señales de trading
- Validación por gestión de riesgo
- Ejecución de órdenes (si se cumplen todos los criterios)
-
Aprendizaje y Retroalimentación:
- Registro de resultados de trading
- Cálculo de recompensas para aprendizaje por refuerzo
- Actualización periódica de modelos
Diagrama de Interacción
┌─────────────┐ ┌───────────────┐ ┌────────────────┐
│ Data Module │────▶│ Feature │────▶│ Strategy │
│ │◀────│ Engineering │◀────│ Implementation │
└─────────────┘ └───────────────┘ └────────────────┘
│
▼
┌─────────────┐ ┌────────────────┐
│ User │◀──────────────────────────│ Risk │
│ Interface │───────────────────────────▶│ Management │
└─────────────┘ └────────────────┘
▲
│
┌─────────────┐ ┌───────────────┐ ┌────────────────┐
│ Order │◀────│ Account │◀────│ Model │
│ Execution │────▶│ Management │────▶│ Predictions │
└─────────────┘ └───────────────┘ └────────────────┘
Extensibilidad
El sistema está diseñado para ser extensible:
- Nuevas estrategias: Implementa nuevas clases en el directorio
strategy/
- Nuevos modelos: Añade implementaciones en
models/
y actualizamodel_factory.py
- Nuevos exchanges: Crea nuevos clientes en el directorio
data/
Cada componente sigue principios SOLID, facilitando la adición de nuevas funcionalidades sin modificar el código existente.