- Added DATA-PIPELINE-SPEC.md for ML signals module - Added TASK-2026-01-25-ML-TRAINING-ENHANCEMENT documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
785 lines
26 KiB
Markdown
785 lines
26 KiB
Markdown
# 03-PLANEACIÓN: Mejora Integral de Modelos ML para Trading
|
|
|
|
**Task ID:** TASK-2026-01-25-ML-TRAINING-ENHANCEMENT
|
|
**Fase:** P - Planeación
|
|
**Estado:** En Progreso
|
|
**Fecha:** 2026-01-25
|
|
|
|
---
|
|
|
|
## 1. ESTRUCTURA JERÁRQUICA DE SUBTAREAS
|
|
|
|
```
|
|
TASK-2026-01-25-ML-TRAINING-ENHANCEMENT (TAREA MAESTRA)
|
|
│
|
|
├── FASE 1: INFRAESTRUCTURA (Prerequisitos)
|
|
│ │
|
|
│ ├── 1.1 TASK-ML-DATA-PIPELINE
|
|
│ │ ├── 1.1.1 Migrar datos históricos MySQL → PostgreSQL
|
|
│ │ ├── 1.1.2 Implementar data loader para entrenamiento
|
|
│ │ ├── 1.1.3 Crear validadores de calidad de datos
|
|
│ │ └── 1.1.4 Documentar schema y pipelines
|
|
│ │
|
|
│ └── 1.2 TASK-ML-ATTENTION-ARCHITECTURE
|
|
│ ├── 1.2.1 Implementar Price-Focused Attention base
|
|
│ ├── 1.2.2 Implementar Positional Encoding agnóstico
|
|
│ ├── 1.2.3 Crear módulo de extracción de attention scores
|
|
│ └── 1.2.4 Tests unitarios de attention
|
|
│
|
|
├── FASE 2: ESTRATEGIAS DE MODELOS (Paralelo)
|
|
│ │
|
|
│ ├── 2.1 TASK-ML-STRATEGY-1-PVA (Price Variation Attention)
|
|
│ │ ├── 2.1.1 Implementar feature engineering de retornos
|
|
│ │ ├── 2.1.2 Crear Transformer Encoder
|
|
│ │ ├── 2.1.3 Implementar XGBoost prediction head
|
|
│ │ ├── 2.1.4 Entrenar por cada activo (6 modelos)
|
|
│ │ ├── 2.1.5 Validar con walk-forward
|
|
│ │ └── 2.1.6 Documentar métricas y configuración
|
|
│ │
|
|
│ ├── 2.2 TASK-ML-STRATEGY-2-MRD (Momentum Regime Detection)
|
|
│ │ ├── 2.2.1 Implementar Hidden Markov Model para regímenes
|
|
│ │ ├── 2.2.2 Crear features de momentum y tendencia
|
|
│ │ ├── 2.2.3 Implementar LSTM + XGBoost ensemble
|
|
│ │ ├── 2.2.4 Entrenar por cada activo (6 modelos)
|
|
│ │ ├── 2.2.5 Validar detección de regímenes
|
|
│ │ └── 2.2.6 Documentar métricas y configuración
|
|
│ │
|
|
│ ├── 2.3 TASK-ML-STRATEGY-3-VBP (Volatility Breakout Predictor)
|
|
│ │ ├── 2.3.1 Implementar features de volatilidad y compresión
|
|
│ │ ├── 2.3.2 Crear CNN 1D con attention
|
|
│ │ ├── 2.3.3 Implementar balanced sampling para breakouts
|
|
│ │ ├── 2.3.4 Entrenar por cada activo (6 modelos)
|
|
│ │ ├── 2.3.5 Validar predicción de breakouts
|
|
│ │ └── 2.3.6 Documentar métricas y configuración
|
|
│ │
|
|
│ ├── 2.4 TASK-ML-STRATEGY-4-MSA (Market Structure Analysis)
|
|
│ │ ├── 2.4.1 Implementar detector de swing points
|
|
│ │ ├── 2.4.2 Crear features ICT/SMC (BOS, CHoCH, FVG, OB)
|
|
│ │ ├── 2.4.3 Implementar modelo (GNN opcional o XGBoost)
|
|
│ │ ├── 2.4.4 Entrenar por cada activo (6 modelos)
|
|
│ │ ├── 2.4.5 Validar detección de estructura
|
|
│ │ └── 2.4.6 Documentar métricas y configuración
|
|
│ │
|
|
│ └── 2.5 TASK-ML-STRATEGY-5-MTS (Multi-Timeframe Synthesis)
|
|
│ ├── 2.5.1 Implementar agregación de features por timeframe
|
|
│ ├── 2.5.2 Crear Hierarchical Attention Network
|
|
│ ├── 2.5.3 Implementar síntesis de señales
|
|
│ ├── 2.5.4 Entrenar por cada activo (6 modelos)
|
|
│ ├── 2.5.5 Validar alineación multi-TF
|
|
│ └── 2.5.6 Documentar métricas y configuración
|
|
│
|
|
├── FASE 3: INTEGRACIÓN (Secuencial post-Fase 2)
|
|
│ │
|
|
│ ├── 3.1 TASK-ML-METAMODEL-ENSEMBLE
|
|
│ │ ├── 3.1.1 Implementar Neural Gating Network
|
|
│ │ ├── 3.1.2 Crear pipeline de ensemble
|
|
│ │ ├── 3.1.3 Entrenar gating con predicciones de estrategias
|
|
│ │ ├── 3.1.4 Implementar confidence calibration
|
|
│ │ └── 3.1.5 Documentar arquitectura final
|
|
│ │
|
|
│ └── 3.2 TASK-ML-LLM-STRATEGY-INTEGRATION
|
|
│ ├── 3.2.1 Diseñar prompt structure para decisiones
|
|
│ ├── 3.2.2 Implementar Signal Formatter
|
|
│ ├── 3.2.3 Integrar con LLM Agent existente
|
|
│ ├── 3.2.4 Crear Signal Logger para feedback
|
|
│ └── 3.2.5 Documentar flujo de decisión
|
|
│
|
|
└── FASE 4: VALIDACIÓN (Final)
|
|
│
|
|
└── 4.1 TASK-ML-BACKTESTING-VALIDATION
|
|
├── 4.1.1 Ejecutar backtesting por estrategia
|
|
├── 4.1.2 Ejecutar backtesting de ensemble
|
|
├── 4.1.3 Calcular métricas (Sharpe, Sortino, Max DD)
|
|
├── 4.1.4 Validar objetivo 80% efectividad
|
|
├── 4.1.5 Generar reportes comparativos
|
|
└── 4.1.6 Documentar resultados finales
|
|
```
|
|
|
|
---
|
|
|
|
## 2. DETALLE DE SUBTAREAS NIVEL 1
|
|
|
|
### 2.1 FASE 1: INFRAESTRUCTURA
|
|
|
|
#### TASK-1.1: ML-DATA-PIPELINE
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-DATA-PIPELINE"
|
|
tipo: "feature"
|
|
prioridad: "P0"
|
|
bloqueante: true
|
|
|
|
descripcion: |
|
|
Migrar datos históricos del proyecto antiguo (MySQL dumps de WorkspaceOld)
|
|
a PostgreSQL y crear pipelines de datos para entrenamiento.
|
|
|
|
prerequisitos: []
|
|
|
|
subtareas:
|
|
- id: "1.1.1"
|
|
titulo: "Migrar datos históricos MySQL → PostgreSQL"
|
|
descripcion: |
|
|
Cargar los 3 dumps SQL (db.sql, db_financial.sql, db_res.sql = 5.6GB total)
|
|
en PostgreSQL. Transformar schema si es necesario.
|
|
archivos_afectados:
|
|
- apps/data-service/scripts/migrate_mysql_data.py (CREAR)
|
|
- apps/database/ddl/schemas/ml/migrations/ (CREAR)
|
|
criterios_aceptacion:
|
|
- Todos los datos migrados sin pérdida
|
|
- Índices creados para queries eficientes
|
|
- Validación de integridad (row counts match)
|
|
|
|
- id: "1.1.2"
|
|
titulo: "Implementar data loader para entrenamiento"
|
|
descripcion: |
|
|
Crear clase DataLoader que carga datos de PostgreSQL en batches
|
|
eficientes para entrenamiento de modelos.
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/data/training_loader.py (CREAR)
|
|
- apps/ml-engine/src/data/dataset.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Soporta batch loading
|
|
- Memory efficient (streaming)
|
|
- Soporta filtrado por símbolo, timeframe, fecha
|
|
|
|
- id: "1.1.3"
|
|
titulo: "Crear validadores de calidad de datos"
|
|
descripcion: |
|
|
Implementar validaciones de calidad de datos: gaps, outliers,
|
|
consistency checks.
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/data/validators.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Detecta gaps en series temporales
|
|
- Detecta outliers estadísticos
|
|
- Reporte de calidad generado
|
|
|
|
- id: "1.1.4"
|
|
titulo: "Documentar schema y pipelines"
|
|
descripcion: |
|
|
Documentar el schema de datos migrado y los pipelines creados.
|
|
archivos_afectados:
|
|
- docs/02-definicion-modulos/OQI-006-ml-signals/DATA-PIPELINE.md (CREAR)
|
|
criterios_aceptacion:
|
|
- ERD actualizado
|
|
- Descripción de cada tabla
|
|
- Ejemplos de uso del data loader
|
|
|
|
entregables:
|
|
- 5.6GB de datos migrados
|
|
- Data loader funcional
|
|
- Validadores de calidad
|
|
- Documentación completa
|
|
|
|
metricas_exito:
|
|
- Tiempo de carga de 1M registros < 30s
|
|
- 0 errores de integridad
|
|
- 100% datos migrados
|
|
```
|
|
|
|
#### TASK-1.2: ML-ATTENTION-ARCHITECTURE
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-ATTENTION-ARCHITECTURE"
|
|
tipo: "feature"
|
|
prioridad: "P0"
|
|
bloqueante: true
|
|
|
|
descripcion: |
|
|
Implementar la arquitectura base de atención enfocada en variación de precio,
|
|
agnóstica al tiempo y activo. Esta es la base para la Estrategia 1 (PVA).
|
|
|
|
prerequisitos:
|
|
- TASK-ML-DATA-PIPELINE (parcial - solo data loader)
|
|
|
|
subtareas:
|
|
- id: "1.2.1"
|
|
titulo: "Implementar Price-Focused Attention base"
|
|
descripcion: |
|
|
Crear módulo de Self-Attention que opera sobre secuencias de retornos.
|
|
Multi-head attention con 8 heads, d_model=256.
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/attention/price_attention.py (CREAR)
|
|
- apps/ml-engine/src/models/attention/multi_head_attention.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Implementación correcta de scaled dot-product attention
|
|
- Multi-head parallelizable
|
|
- Forward pass produce shapes correctos
|
|
|
|
- id: "1.2.2"
|
|
titulo: "Implementar Positional Encoding agnóstico"
|
|
descripcion: |
|
|
Crear positional encoding que NO usa información temporal real.
|
|
Solo posición relativa en la secuencia (learnable o sinusoidal).
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/attention/positional_encoding.py (CREAR)
|
|
criterios_aceptacion:
|
|
- No depende de timestamps reales
|
|
- Soporta secuencias de longitud variable
|
|
- Encodings diferenciables para backprop
|
|
|
|
- id: "1.2.3"
|
|
titulo: "Crear módulo de extracción de attention scores"
|
|
descripcion: |
|
|
Implementar extracción y almacenamiento de attention scores
|
|
para interpretabilidad y debugging.
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/attention/attention_extractor.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Extrae scores de cada head
|
|
- Produce heatmaps de atención
|
|
- Exportable a PostgreSQL para análisis
|
|
|
|
- id: "1.2.4"
|
|
titulo: "Tests unitarios de attention"
|
|
descripcion: |
|
|
Crear suite de tests para validar implementación de attention.
|
|
archivos_afectados:
|
|
- apps/ml-engine/tests/test_attention.py (CREAR)
|
|
criterios_aceptacion:
|
|
- 100% cobertura del módulo attention
|
|
- Tests de shapes, gradients, outputs
|
|
- Test de reproducibilidad
|
|
|
|
entregables:
|
|
- Módulo de Price-Focused Attention
|
|
- Positional Encoding agnóstico
|
|
- Extractor de attention scores
|
|
- Tests unitarios
|
|
|
|
metricas_exito:
|
|
- Forward pass < 10ms para batch de 256
|
|
- Gradients estables (no NaN/Inf)
|
|
- Tests pasan al 100%
|
|
```
|
|
|
|
---
|
|
|
|
### 2.2 FASE 2: ESTRATEGIAS DE MODELOS
|
|
|
|
#### TASK-2.1: STRATEGY-1-PVA (Price Variation Attention)
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-STRATEGY-1-PVA"
|
|
tipo: "feature"
|
|
prioridad: "P1"
|
|
|
|
descripcion: |
|
|
Estrategia enfocada en atención sobre variación de precio pura.
|
|
Transformer Encoder + XGBoost Head. Agnóstica al tiempo y activo.
|
|
|
|
prerequisitos:
|
|
- TASK-ML-DATA-PIPELINE
|
|
- TASK-ML-ATTENTION-ARCHITECTURE
|
|
|
|
subtareas:
|
|
- id: "2.1.1"
|
|
titulo: "Implementar feature engineering de retornos"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/features/returns_features.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Returns calculados correctamente (1, 5, 10, 20 períodos)
|
|
- Derivados: acceleration, volatility, skewness, kurtosis
|
|
- No NaN/Inf en outputs
|
|
|
|
- id: "2.1.2"
|
|
titulo: "Crear Transformer Encoder"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/strategies/pva/transformer_encoder.py (CREAR)
|
|
criterios_aceptacion:
|
|
- 4 capas de self-attention
|
|
- Feed-forward networks
|
|
- Dropout y layer normalization
|
|
|
|
- id: "2.1.3"
|
|
titulo: "Implementar XGBoost prediction head"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/strategies/pva/xgb_head.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Toma embeddings de transformer
|
|
- Produce direction, magnitude, confidence
|
|
- Hiperparámetros configurables
|
|
|
|
- id: "2.1.4"
|
|
titulo: "Entrenar por cada activo (6 modelos)"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/training/pva_trainer.py (CREAR)
|
|
- apps/ml-engine/models/strategies/pva/{symbol}/ (CREAR)
|
|
criterios_aceptacion:
|
|
- 6 modelos entrenados (XAUUSD, EURUSD, BTCUSD, GBPUSD, USDJPY, AUDUSD)
|
|
- Walk-forward validation aplicada
|
|
- Modelos serializados y versionados
|
|
|
|
- id: "2.1.5"
|
|
titulo: "Validar con walk-forward"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/validation/pva_validation.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Métricas por fold de walk-forward
|
|
- Reporte de overfitting (train vs val gap)
|
|
- Stability analysis
|
|
|
|
- id: "2.1.6"
|
|
titulo: "Documentar métricas y configuración"
|
|
archivos_afectados:
|
|
- docs/02-definicion-modulos/OQI-006-ml-signals/estrategias/PVA-SPEC.md (CREAR)
|
|
criterios_aceptacion:
|
|
- Arquitectura documentada con diagramas
|
|
- Hiperparámetros documentados
|
|
- Métricas de rendimiento
|
|
|
|
entregables:
|
|
- 6 modelos PVA entrenados
|
|
- Feature engineering module
|
|
- Transformer + XGBoost pipeline
|
|
- Documentación completa
|
|
|
|
metricas_exito:
|
|
- Direction accuracy > 60%
|
|
- MAE magnitude < 1%
|
|
- Sharpe ratio > 1.0
|
|
```
|
|
|
|
#### TASK-2.2 a 2.5: ESTRATEGIAS 2-5
|
|
|
|
*(Estructura similar a TASK-2.1, adaptada para cada estrategia)*
|
|
|
|
**Resumen de Estrategias:**
|
|
|
|
| ID | Estrategia | Arquitectura | Features Clave | Target Principal |
|
|
|----|------------|--------------|----------------|------------------|
|
|
| 2.1 | PVA | Transformer + XGBoost | Returns, derivados | Direction + Magnitude |
|
|
| 2.2 | MRD | HMM + LSTM + XGBoost | Momentum, RSI, ADX | Regime + Continuation |
|
|
| 2.3 | VBP | CNN 1D + Attention | ATR, BB squeeze | Breakout + Direction |
|
|
| 2.4 | MSA | XGBoost (o GNN) | Swing, BOS, FVG | Structure reaction |
|
|
| 2.5 | MTS | Hierarchical Attention | Multi-TF features | Unified direction |
|
|
|
|
---
|
|
|
|
### 2.3 FASE 3: INTEGRACIÓN
|
|
|
|
#### TASK-3.1: METAMODEL-ENSEMBLE
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-METAMODEL-ENSEMBLE"
|
|
tipo: "feature"
|
|
prioridad: "P1"
|
|
|
|
descripcion: |
|
|
Implementar el Neural Gating Metamodel que combina las predicciones
|
|
de las 5 estrategias en una señal final ponderada dinámicamente.
|
|
|
|
prerequisitos:
|
|
- TASK-ML-STRATEGY-1-PVA (completada)
|
|
- TASK-ML-STRATEGY-2-MRD (completada)
|
|
- TASK-ML-STRATEGY-3-VBP (completada)
|
|
- TASK-ML-STRATEGY-4-MSA (completada)
|
|
- TASK-ML-STRATEGY-5-MTS (completada)
|
|
|
|
subtareas:
|
|
- id: "3.1.1"
|
|
titulo: "Implementar Neural Gating Network"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/metamodel/gating_network.py (CREAR)
|
|
criterios_aceptacion:
|
|
- MLP de 3 capas (256, 128, 5)
|
|
- Softmax output para pesos
|
|
- Batch normalization
|
|
|
|
- id: "3.1.2"
|
|
titulo: "Crear pipeline de ensemble"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/metamodel/ensemble_pipeline.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Orquesta llamadas a 5 estrategias
|
|
- Aplica gating network
|
|
- Produce output unificado
|
|
|
|
- id: "3.1.3"
|
|
titulo: "Entrenar gating con predicciones de estrategias"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/training/metamodel_trainer.py (MODIFICAR)
|
|
criterios_aceptacion:
|
|
- Entrenado con predicciones reales de estrategias
|
|
- Optimiza weighted ensemble loss
|
|
- Regularización para evitar colapso a una estrategia
|
|
|
|
- id: "3.1.4"
|
|
titulo: "Implementar confidence calibration"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/models/metamodel/calibration.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Isotonic regression o Platt scaling
|
|
- Calibrated probabilities (reliability diagram)
|
|
|
|
- id: "3.1.5"
|
|
titulo: "Documentar arquitectura final"
|
|
archivos_afectados:
|
|
- docs/02-definicion-modulos/OQI-006-ml-signals/METAMODEL-SPEC.md (CREAR)
|
|
criterios_aceptacion:
|
|
- Diagrama de arquitectura
|
|
- Flujo de datos documentado
|
|
- Ejemplo de uso
|
|
|
|
entregables:
|
|
- Neural Gating Metamodel entrenado
|
|
- Ensemble pipeline funcional
|
|
- Confidence calibration
|
|
- Documentación
|
|
|
|
metricas_exito:
|
|
- Ensemble accuracy > individual strategies
|
|
- Calibration error < 5%
|
|
- Latencia total < 100ms
|
|
```
|
|
|
|
#### TASK-3.2: LLM-STRATEGY-INTEGRATION
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-LLM-STRATEGY-INTEGRATION"
|
|
tipo: "feature"
|
|
prioridad: "P1"
|
|
|
|
descripcion: |
|
|
Integrar el metamodel con el LLM Agent para que tome decisiones
|
|
de trading basadas en las predicciones ensemble.
|
|
|
|
prerequisitos:
|
|
- TASK-ML-METAMODEL-ENSEMBLE (completada)
|
|
|
|
subtareas:
|
|
- id: "3.2.1"
|
|
titulo: "Diseñar prompt structure para decisiones"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/llm/prompts/trading_decision.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Template estructurado con todas las señales
|
|
- Formato parseable de respuesta
|
|
- Incluye contexto de mercado
|
|
|
|
- id: "3.2.2"
|
|
titulo: "Implementar Signal Formatter"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/llm/signal_formatter.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Convierte predicciones a formato de prompt
|
|
- Incluye metadata de estrategias
|
|
- Agrega contexto de riesgo
|
|
|
|
- id: "3.2.3"
|
|
titulo: "Integrar con LLM Agent existente"
|
|
archivos_afectados:
|
|
- apps/backend/src/modules/llm/llm-trading.service.ts (MODIFICAR)
|
|
- apps/ml-engine/src/api/llm_endpoints.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Endpoint que LLM Agent consume
|
|
- Formato compatible con tools existentes
|
|
- Manejo de errores robusto
|
|
|
|
- id: "3.2.4"
|
|
titulo: "Crear Signal Logger para feedback"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/llm/signal_logger.py (CREAR)
|
|
- apps/database/ddl/schemas/ml/llm_signals.sql (CREAR)
|
|
criterios_aceptacion:
|
|
- Registra cada señal enviada al LLM
|
|
- Registra decisión del LLM
|
|
- Registra resultado del trade (para fine-tuning)
|
|
|
|
- id: "3.2.5"
|
|
titulo: "Documentar flujo de decisión"
|
|
archivos_afectados:
|
|
- docs/02-definicion-modulos/OQI-006-ml-signals/LLM-INTEGRATION.md (CREAR)
|
|
criterios_aceptacion:
|
|
- Diagrama de flujo end-to-end
|
|
- Ejemplos de prompts y respuestas
|
|
- Guía de troubleshooting
|
|
|
|
entregables:
|
|
- Integración ML-LLM funcional
|
|
- Signal Logger con feedback loop
|
|
- Documentación de integración
|
|
|
|
metricas_exito:
|
|
- LLM recibe señales en < 200ms
|
|
- 100% de trades loggeados
|
|
- Formato de respuesta válido > 99%
|
|
```
|
|
|
|
---
|
|
|
|
### 2.4 FASE 4: VALIDACIÓN
|
|
|
|
#### TASK-4.1: BACKTESTING-VALIDATION
|
|
|
|
```yaml
|
|
id: "TASK-2026-01-25-ML-BACKTESTING-VALIDATION"
|
|
tipo: "validation"
|
|
prioridad: "P0"
|
|
bloqueante: true
|
|
|
|
descripcion: |
|
|
Validar el sistema completo mediante backtesting exhaustivo.
|
|
Verificar que se alcanza el objetivo de 80% de efectividad.
|
|
|
|
prerequisitos:
|
|
- TASK-ML-METAMODEL-ENSEMBLE (completada)
|
|
- TASK-ML-LLM-STRATEGY-INTEGRATION (completada)
|
|
|
|
subtareas:
|
|
- id: "4.1.1"
|
|
titulo: "Ejecutar backtesting por estrategia"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/backtesting/strategy_backtest.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Backtest de cada estrategia individualmente
|
|
- Período: últimos 2 años
|
|
- Métricas por símbolo
|
|
|
|
- id: "4.1.2"
|
|
titulo: "Ejecutar backtesting de ensemble"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/backtesting/ensemble_backtest.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Backtest del metamodel completo
|
|
- Simula decisiones de LLM
|
|
- Incluye slippage y comisiones
|
|
|
|
- id: "4.1.3"
|
|
titulo: "Calcular métricas (Sharpe, Sortino, Max DD)"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/backtesting/metrics_calculator.py (MODIFICAR)
|
|
criterios_aceptacion:
|
|
- Sharpe Ratio
|
|
- Sortino Ratio
|
|
- Maximum Drawdown
|
|
- Win Rate
|
|
- Profit Factor
|
|
- Calmar Ratio
|
|
|
|
- id: "4.1.4"
|
|
titulo: "Validar objetivo 80% efectividad"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/backtesting/effectiveness_validator.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Win rate de operaciones ≥ 80%
|
|
- O profit factor ≥ 2.0 con win rate ≥ 60%
|
|
- Consistency across symbols
|
|
|
|
- id: "4.1.5"
|
|
titulo: "Generar reportes comparativos"
|
|
archivos_afectados:
|
|
- apps/ml-engine/src/backtesting/report_generator.py (CREAR)
|
|
criterios_aceptacion:
|
|
- Reporte HTML/PDF con gráficos
|
|
- Comparación estrategia vs ensemble
|
|
- Análisis de drawdown
|
|
|
|
- id: "4.1.6"
|
|
titulo: "Documentar resultados finales"
|
|
archivos_afectados:
|
|
- docs/02-definicion-modulos/OQI-006-ml-signals/BACKTEST-RESULTS.md (CREAR)
|
|
criterios_aceptacion:
|
|
- Todas las métricas documentadas
|
|
- Conclusiones y recomendaciones
|
|
- Limitaciones identificadas
|
|
|
|
entregables:
|
|
- Resultados de backtesting por estrategia
|
|
- Resultados de backtesting ensemble
|
|
- Reporte comparativo completo
|
|
- Documentación de resultados
|
|
|
|
metricas_exito:
|
|
- Efectividad ≥ 80% en operaciones
|
|
- Sharpe Ratio ≥ 1.5
|
|
- Max Drawdown ≤ 15%
|
|
- Consistent across 6 symbols
|
|
```
|
|
|
|
---
|
|
|
|
## 3. CRONOGRAMA Y DEPENDENCIAS
|
|
|
|
### 3.1 Diagrama de Gantt (Simplificado)
|
|
|
|
```
|
|
Semana 1 2 3 4 5 6 7 8
|
|
|---------|---------|---------|---------|---------|---------|---------|
|
|
|
|
FASE 1 - INFRAESTRUCTURA
|
|
├─ 1.1 Data Pipeline [███████]
|
|
└─ 1.2 Attention Arch [███████]
|
|
|
|
FASE 2 - ESTRATEGIAS (Paralelo)
|
|
├─ 2.1 PVA [███████████]
|
|
├─ 2.2 MRD [███████████]
|
|
├─ 2.3 VBP [███████████]
|
|
├─ 2.4 MSA [███████████]
|
|
└─ 2.5 MTS [███████████]
|
|
|
|
FASE 3 - INTEGRACIÓN
|
|
├─ 3.1 Metamodel [███████]
|
|
└─ 3.2 LLM Integration [███████]
|
|
|
|
FASE 4 - VALIDACIÓN
|
|
└─ 4.1 Backtesting [███████]
|
|
```
|
|
|
|
### 3.2 Grafo de Dependencias
|
|
|
|
```
|
|
┌─────────────────┐
|
|
│ 1.1 Data │
|
|
│ Pipeline │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ 1.2 Attention │
|
|
│ Architecture │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────────────────┼────────────────────┐
|
|
│ │ │
|
|
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
|
|
│ 2.1 PVA │ │ 2.2 MRD │ │ 2.3 VBP │
|
|
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘
|
|
│ │ │
|
|
│ ┌───────▼───────┐ ┌───────▼───────┐
|
|
│ │ 2.4 MSA │ │ 2.5 MTS │
|
|
│ └───────┬───────┘ └───────┬───────┘
|
|
│ │ │
|
|
└────────────────────┼────────────────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ 3.1 Metamodel │
|
|
│ Ensemble │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ 3.2 LLM │
|
|
│ Integration │
|
|
└────────┬────────┘
|
|
│
|
|
┌────────▼────────┐
|
|
│ 4.1 Backtesting │
|
|
│ Validation │
|
|
└─────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 4. ASIGNACIÓN DE AGENTES
|
|
|
|
| Subtarea | Agente Sugerido | Herramientas |
|
|
|----------|-----------------|--------------|
|
|
| 1.1 Data Pipeline | PERFIL-DATA-ENGINEER | Bash, Python, PostgreSQL |
|
|
| 1.2 Attention Arch | PERFIL-ML-ENGINEER | Python, PyTorch |
|
|
| 2.1-2.5 Estrategias | PERFIL-ML-ENGINEER (paralelo) | Python, XGBoost, PyTorch |
|
|
| 3.1 Metamodel | PERFIL-ML-ARCHITECT | Python, PyTorch |
|
|
| 3.2 LLM Integration | PERFIL-BACKEND + PERFIL-ML | TypeScript, Python |
|
|
| 4.1 Backtesting | PERFIL-QUANT | Python, Pandas |
|
|
|
|
---
|
|
|
|
## 5. CRITERIOS DE ACEPTACIÓN GLOBALES
|
|
|
|
### 5.1 Criterios Técnicos
|
|
|
|
| Criterio | Umbral | Verificación |
|
|
|----------|--------|--------------|
|
|
| Build pasa | 100% | `npm run build` / `python -m pytest` |
|
|
| Tests pasan | ≥95% | CI/CD pipeline |
|
|
| Cobertura tests | ≥80% | Coverage report |
|
|
| No memory leaks | 0 | Profiling |
|
|
| Latencia inference | <200ms | Benchmark |
|
|
|
|
### 5.2 Criterios de ML
|
|
|
|
| Criterio | Umbral | Verificación |
|
|
|----------|--------|--------------|
|
|
| Efectividad operaciones | ≥80% | Backtesting |
|
|
| Direction accuracy | ≥70% | Validation set |
|
|
| Sharpe Ratio | ≥1.5 | Backtesting |
|
|
| Max Drawdown | ≤15% | Backtesting |
|
|
| Calibration error | ≤5% | Reliability diagram |
|
|
|
|
### 5.3 Criterios de Documentación
|
|
|
|
| Criterio | Umbral | Verificación |
|
|
|----------|--------|--------------|
|
|
| Especificaciones completas | 100% | Review |
|
|
| Diagramas actualizados | 100% | Review |
|
|
| Código documentado | 100% | Docstrings |
|
|
| Inventarios actualizados | 100% | Checklist |
|
|
|
|
---
|
|
|
|
## 6. PLAN DE PRUEBAS
|
|
|
|
### 6.1 Tests Unitarios
|
|
|
|
- Cada módulo nuevo debe tener ≥80% cobertura
|
|
- Mock de datos para tests reproducibles
|
|
- Fixtures compartidos para estrategias
|
|
|
|
### 6.2 Tests de Integración
|
|
|
|
- Pipeline completo con datos sintéticos
|
|
- Integración ML-LLM con mock responses
|
|
- Database round-trip tests
|
|
|
|
### 6.3 Tests de Rendimiento
|
|
|
|
- Benchmark de inference time
|
|
- Memory profiling
|
|
- Load testing de API endpoints
|
|
|
|
### 6.4 Backtesting como Test
|
|
|
|
- Walk-forward validation obligatoria
|
|
- Out-of-sample period de 6 meses mínimo
|
|
- Robustness checks (different seeds, params)
|
|
|
|
---
|
|
|
|
## 7. DOCUMENTACIÓN A CREAR/ACTUALIZAR
|
|
|
|
### 7.1 Crear (Nuevos)
|
|
|
|
| Archivo | Propósito |
|
|
|---------|-----------|
|
|
| `DATA-PIPELINE.md` | Schema y pipeline de datos |
|
|
| `PVA-SPEC.md` | Especificación estrategia 1 |
|
|
| `MRD-SPEC.md` | Especificación estrategia 2 |
|
|
| `VBP-SPEC.md` | Especificación estrategia 3 |
|
|
| `MSA-SPEC.md` | Especificación estrategia 4 |
|
|
| `MTS-SPEC.md` | Especificación estrategia 5 |
|
|
| `METAMODEL-SPEC.md` | Especificación del ensemble |
|
|
| `LLM-INTEGRATION.md` | Integración con LLM |
|
|
| `BACKTEST-RESULTS.md` | Resultados de backtesting |
|
|
| `ML_INVENTORY.yml` | Inventario de modelos |
|
|
|
|
### 7.2 Actualizar (Existentes)
|
|
|
|
| Archivo | Cambio |
|
|
|---------|--------|
|
|
| `OQI-006/_MAP.md` | Agregar nuevas estrategias |
|
|
| `OQI-006/README.md` | Actualizar arquitectura |
|
|
| `MASTER_INVENTORY.yml` | Agregar nuevos modelos |
|
|
| `PROXIMA-ACCION.md` | Reflejar plan actual |
|
|
|
|
---
|
|
|
|
## 8. PRÓXIMOS PASOS INMEDIATOS
|
|
|
|
1. **Validar este plan** → Fase V de CAPVED
|
|
2. **Aprobar recursos** → GPU time, storage
|
|
3. **Crear subtareas** en sistema de tracking
|
|
4. **Iniciar FASE 1** → Data Pipeline + Attention Architecture
|
|
5. **Asignar agentes** para ejecución paralela en FASE 2
|
|
|
|
---
|
|
|
|
**Siguiente Fase:** 04-VALIDACION.md
|