# 02-ANALISIS.md - OQI-006 ML Utility Panels

## Analisis de Comportamiento Esperado

### ModelSelector
**Comportamiento:**
- Mostrar lista de modelos ML disponibles
- Permitir selección de modelo activo
- Mostrar métricas de accuracy por modelo
- Soportar variantes: dropdown, tabs, cards
- Indicar estado del modelo (active, training, inactive, deprecated)

**Inputs:**
- `models`: Array de MLModel
- `selectedModelId`: ID del modelo seleccionado
- `onModelChange`: Callback de cambio
- `variant`: 'dropdown' | 'tabs' | 'cards'
- `showMetrics`: Mostrar accuracy

**Outputs:**
- Componente renderizado según variante
- Evento de selección de modelo

### EnsemblePanel
**Comportamiento:**
- Configurar método de votación (weighted, majority, unanimous)
- Ajustar pesos de cada modelo con sliders
- Validar que suma de pesos = 100%
- Permitir bloquear pesos individuales
- Auto-calcular pesos por accuracy

**Inputs:**
- `config`: EnsembleConfig con weights y thresholds
- `onConfigChange`: Callback de cambio
- `onSave/onReset`: Callbacks de acción
- `readOnly`: Modo lectura

**Outputs:**
- Panel de configuración
- EnsembleConfig actualizado

### ICTAnalysisPanel
**Comportamiento:**
- Configurar timeframe de análisis
- Habilitar/deshabilitar features ICT
- Ajustar parámetros por sección (Order Blocks, FVG, etc.)
- Secciones colapsables para organización

**Inputs:**
- `params`: ICTParams con todas las configuraciones
- `onParamsChange`: Callback de cambio
- `onSave/onReset`: Callbacks de acción

**Outputs:**
- Panel de configuración con secciones
- ICTParams actualizado

---

## Analisis de Capas Impactadas

```
┌─────────────────────────────────────────────┐
│                 FRONTEND                     │
├─────────────────────────────────────────────┤
│  modules/ml/components/                      │
│    ├── ModelSelector.tsx       [NUEVO]      │
│    ├── EnsemblePanel.tsx       [NUEVO]      │
│    ├── ICTAnalysisPanel.tsx    [NUEVO]      │
│    └── index.ts                [MODIFICADO] │
├─────────────────────────────────────────────┤
│  Dependencias:                               │
│    lucide-react                              │
│    react (useState, useMemo, useCallback)   │
└─────────────────────────────────────────────┘
```

---

## Analisis de Dependencias

### Dependencias Externas
| Paquete | Uso |
|---------|-----|
| lucide-react | Iconos (Brain, Sparkles, Settings2, etc.) |
| react | Framework, hooks |

### Componentes Relacionados
| Componente | Relación |
|------------|----------|
| ConfidenceMeter | Muestra confidence del modelo seleccionado |
| ModelAccuracyDashboard | Comparación de modelos (complementario) |
| ICTAnalysisCard | Visualización de resultados ICT |
| EnsembleSignalCard | Muestra señal del ensemble |

---

## Analisis de Patrones

### Patrones Identificados en Módulo ML
1. **Iconos:** lucide-react (Brain, TrendingUp, etc.)
2. **Colores:** Dark theme (gray-800, gray-900, border-gray-700)
3. **Exports:** default export + named type exports
4. **State:** useState, useMemo, useCallback
5. **Props:** TypeScript interfaces completas

### Patrones Aplicados
- Consistencia con otros componentes ML
- Secciones colapsables para paneles complejos
- Validación de configuración con feedback visual
- Soporte para modo readOnly
