Changes include: - Updated architecture documentation - Enhanced module definitions (OQI-001 to OQI-008) - ML integration documentation updates - Trading strategies documentation - Orchestration and inventory updates - Docker configuration updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
11 KiB
PLAN DE EJECUCION: ML-ENHANCED-001 - Enhanced Range Predictor
Agente: ML-Specialist-Agent + Trading-Strategist Tipo de tarea: Feature Prioridad: P0 Fecha creacion: 2026-01-05 Relacionado con: [RF-ML-001], [RF-ML-004], [ET-ML-002], [ET-ML-003]
VERIFICACION DE CATALOGO
OBLIGATORIO: Verificar @CATALOG_INDEX antes de implementar
Comando: grep -i "range-predictor" shared/catalog/CATALOG-INDEX.yml
Funcionalidades a verificar:
| Funcionalidad | Aplica? | Catalogo | Accion |
|---|---|---|---|
| auth/login | No | @CATALOG_AUTH | N/A |
| sesiones | No | @CATALOG_SESSION | N/A |
| rate-limit | No | @CATALOG_RATELIMIT | N/A |
| notificaciones | No | @CATALOG_NOTIFY | N/A |
| multi-tenant | No | @CATALOG_TENANT | N/A |
| feature-flags | No | @CATALOG_FLAGS | N/A |
| websocket | No | @CATALOG_WS | N/A |
| pagos | No | @CATALOG_PAYMENTS | N/A |
Resultado: No aplica catalogo - Modulos ML especificos del proyecto
OBJETIVO
Implementar un sistema mejorado de prediccion de rangos de precio basado en:
- Factor de volatilidad como unidad base (5 USD para XAUUSD)
- Atencion por sesion de trading y volatilidad
- Ensemble dual de horizontes (5 anos largo plazo + 3 meses corto plazo)
- Filtrado por ratio R:R minimo 2:1
Criterios de Aceptacion:
- Predicciones en multiplos del factor base (no USD absolutos)
- Targets calculados con formula corregida: MAX/MIN de horizon
- Pesos de muestra basados en magnitud de movimiento
- Pesos por sesion: London/NY overlap > London > NY > Tokyo > off-hours
- Pesos por volatilidad: Alta ATR > Normal > Baja (lateral)
- Modelo dual: largo plazo (patrones estructurales) + corto plazo (adaptacion)
- Filtro R:R ratio minimo 2:1 para oportunidades validas
- Script de entrenamiento CLI completo
ANALISIS PREVIO
Contexto
- El RangePredictor existente predice en USD absolutos
- No considera diferencias por sesion de trading ni volatilidad
- No distingue entre movimientos laterales y trending
- Usa un solo modelo sin adaptacion temporal
Estado Actual (Pre-implementacion)
- RangePredictor en
models/range_predictor_factor.py- parcialmente implementado - MovementMagnitudePredictor - problemas de rendimiento
- TPSLClassifier - accuracy 68%
- Sin ponderacion por sesion ni volatilidad
Problema Resuelto
- Predicciones mas precisas enfocadas en oportunidades de alto valor
- Menor ruido de mercados laterales
- Adaptacion a regimen actual del mercado
- Senales con ratio R:R favorable (minimo 2:1)
Anti-Duplicacion
# Comandos ejecutados para verificar no-duplicacion
grep -rn "sample_weighting" apps/ml-engine/src/
grep -rn "session_volatility" apps/ml-engine/src/
grep -rn "dual_horizon" apps/ml-engine/src/
# Resultado: No existe - Modulos nuevos
DISENO DE SOLUCION
Approach Seleccionado
Sistema modular con 5 componentes independientes que se integran en un predictor unificado.
Alternativas consideradas:
- Modificar RangePredictor existente - Descartado por alta complejidad y riesgo de regresion
- Modelo unico con todas las features - Descartado por dificultad de mantenimiento
Componentes Creados
ML Engine - Data:
corrected_targets.py- Calculo de targets con formula corregida
ML Engine - Training:
sample_weighting.py- Ponderacion por magnitud de movimientosession_volatility_weighting.py- Ponderacion por sesion y ATR
ML Engine - Models:
dual_horizon_ensemble.py- Ensemble de modelos largo/corto plazoenhanced_range_predictor.py- Integrador principal
ML Engine - Scripts:
train_enhanced_model.py- Script CLI de entrenamiento
CICLOS DE EJECUCION
Ciclo 1: Modulos de Ponderacion
Duracion estimada: 2 horas Objetivo: Crear sistema de pesos para muestras de entrenamiento
Tareas:
- Implementar SampleWeighter con ponderacion por magnitud
- Implementar SessionVolatilityWeighter con pesos por sesion
- Crear features de sesion (hour_sin, hour_cos, etc.)
Artefactos generados:
apps/ml-engine/src/training/sample_weighting.pyapps/ml-engine/src/training/session_volatility_weighting.py
Validacion:
cd apps/ml-engine
python -m src.training.sample_weighting
python -m src.training.session_volatility_weighting
Criterios de exito:
- Tests de modulo ejecutan sin errores
- Distribucion de pesos correcta por sesion
Ciclo 2: Targets Corregidos
Duracion estimada: 1 hora Objetivo: Implementar formula de targets correcta
Tareas:
- Implementar CorrectedTargetBuilder
- Formula: target_high = MAX(high[t+1:t+H]) - close[t]
- Formula: target_low = close[t] - MIN(low[t+1:t+H])
- Calculo de R:R ratios
Artefactos generados:
apps/ml-engine/src/data/corrected_targets.py
Validacion:
cd apps/ml-engine
python -m src.data.corrected_targets
Criterios de exito:
- Targets siempre no-negativos
- R:R ratios calculados correctamente
Ciclo 3: Ensemble Dual Horizon
Duracion estimada: 2 horas Objetivo: Crear modelo ensemble con dos horizontes temporales
Tareas:
- Modelo largo plazo (5 anos): patrones estructurales
- Modelo corto plazo (3 meses): adaptacion a regimen actual
- Ajuste dinamico de pesos por rendimiento
- Reentrenamiento periodico del modelo corto
Artefactos generados:
apps/ml-engine/src/models/dual_horizon_ensemble.py
Validacion:
cd apps/ml-engine
python -m src.models.dual_horizon_ensemble
Criterios de exito:
- Ambos modelos entrenan correctamente
- Pesos se ajustan dinamicamente
- Serialización/deserializacion funciona
Ciclo 4: Predictor Integrado
Duracion estimada: 2 horas Objetivo: Integrar todos los componentes
Tareas:
- EnhancedRangePredictor integrando todos los modulos
- Pipeline: OHLCV -> Targets -> Features -> Weights -> Ensemble -> Prediccion
- get_trading_signal() con entry/TP/SL
- Confianza basada en acuerdo entre modelos
Artefactos generados:
apps/ml-engine/src/models/enhanced_range_predictor.py
Validacion:
cd apps/ml-engine
python -m src.models.enhanced_range_predictor
Criterios de exito:
- Pipeline completo funciona
- Predicciones en multiplos del factor
- Senales de trading generadas
Ciclo 5: Script de Entrenamiento
Duracion estimada: 1 hora Objetivo: CLI para entrenamiento y validacion
Tareas:
- Argumentos CLI (--symbol, --timeframe, --base-factor, etc.)
- Walk-forward validation
- Generacion de reporte en Markdown
- Guardado de modelo
Artefactos generados:
apps/ml-engine/scripts/train_enhanced_model.py
Validacion:
python scripts/train_enhanced_model.py --help
python scripts/train_enhanced_model.py --symbol XAUUSD --timeframe 15m --validate
Criterios de exito:
- CLI funcional con todos los argumentos
- Reporte generado correctamente
- Modelo guardado y cargable
Ciclo 6: Documentacion
Duracion estimada: 1 hora Objetivo: Documentar segun estandares
Tareas:
- Este documento PLAN
- Especificacion tecnica ET-ML-006
- Actualizar _MAP.md de OQI-006
- Actualizar inventarios si aplica
Artefactos generados:
docs/.../PLAN-ENHANCED-RANGE-PREDICTOR.mddocs/.../ET-ML-006-enhanced-range-predictor.md
Validacion:
- Documentos siguen templates estandar
- Referencias actualizadas
DEPENDENCIAS
Depende de:
- [OQI-006]: Arquitectura ML existente
- [RF-ML-001]: Prediccion de precios
Bloquea:
- [OQI-007]: LLM Agent puede usar estas predicciones mejoradas
Requerimientos externos:
- Datos historicos OHLCV (5 anos para modelo largo plazo)
- XGBoost >= 2.0
- Python >= 3.11
RIESGOS IDENTIFICADOS
| Riesgo | Probabilidad | Impacto | Mitigacion |
|---|---|---|---|
| Datos insuficientes para 5 anos | Media | Alto | Usar datos disponibles, ajustar horizon |
| Overfitting modelo corto plazo | Media | Medio | Regularizacion, depth bajo, retrain periodico |
| Pesos extremos en sesiones | Baja | Medio | Normalizacion a media=1 |
| Performance lenta en prediccion | Baja | Medio | Modelos optimizados, cache |
ESTIMACIONES
Tiempo total estimado: 10 horas
Desglose:
- Analisis: 1h
- Desarrollo: 7h
- Testing: 1h
- Documentacion: 1h
- Buffer (15%): 1.5h
Recursos necesarios:
- Agentes: ML-Specialist, Trading-Strategist
- Herramientas: Python, XGBoost, Pandas
DOCUMENTACION GENERADA
Durante ejecucion:
- Codigo documentado con docstrings
- Comentarios inline en secciones complejas
Post-ejecucion:
- PLAN-ENHANCED-RANGE-PREDICTOR.md (este documento)
- ET-ML-006-enhanced-range-predictor.md
- Actualizacion de _MAP.md
- Reporte de entrenamiento (generado por script)
CRITERIOS DE EXITO
La tarea se considera COMPLETADA cuando:
- Todos los ciclos ejecutados exitosamente
- 6 modulos creados y funcionales
- Documentacion completa segun estandares
- Inventarios actualizados
- Sin errores de ejecucion
- Tests de modulo pasan
- Cumple estandares de codigo
ARCHIVOS CREADOS
| Archivo | Tipo | Lineas | Proposito |
|---|---|---|---|
src/training/sample_weighting.py |
Python | 345 | Ponderacion por magnitud |
src/training/session_volatility_weighting.py |
Python | 422 | Ponderacion por sesion/ATR |
src/data/corrected_targets.py |
Python | 441 | Targets con formula corregida |
src/models/dual_horizon_ensemble.py |
Python | 452 | Ensemble largo/corto plazo |
src/models/enhanced_range_predictor.py |
Python | 510 | Integrador principal |
scripts/train_enhanced_model.py |
Python | 380 | CLI de entrenamiento |
Total: ~2,550 lineas de codigo
ARCHIVOS MODIFICADOS (Integracion v2.0)
| Archivo | Cambios | Proposito |
|---|---|---|
src/models/range_predictor.py |
+80 lineas | Integracion sample/session weighting |
src/models/movement_magnitude_predictor.py |
+90 lineas | Integracion sample/session weighting |
src/models/amd_detector_ml.py |
+100 lineas | Integracion sample/session weighting |
Cambios en modelos existentes:
- Import de modulos de weighting con fallback graceful
- Nuevos parametros:
use_sample_weighting,use_session_weighting - Metodo
compute_sample_weights()para calculo combinado - Modificacion de
fit()/train()para usarsample_weighten XGBoost
Total adicional: ~270 lineas de codigo
REFERENCIAS
Documentacion del proyecto:
- RF-ML-001: docs/02-definicion-modulos/OQI-006-ml-signals/requerimientos/RF-ML-001-predicciones.md
- ET-ML-002: docs/02-definicion-modulos/OQI-006-ml-signals/especificaciones/ET-ML-002-modelos.md
- Vision: docs/00-vision-general/VISION-PRODUCTO.md
Templates usados:
- TEMPLATE-PLAN.md: orchestration/templates/TEMPLATE-PLAN.md
Version: 1.0 Ultima actualizacion: 2026-01-05 Estado: Completado