--- id: "US-ML-020" title: "HISTORIA DE USUARIO" type: "User Story" status: "Done" priority: "Media" epic: "OQI-006" project: "trading-platform" story_points: 3 created_date: "2025-12-05" updated_date: "2026-01-04" --- # HISTORIA DE USUARIO **Version:** 1.0.0 **Fecha:** 2025-12-05 **Uso:** Definicion de historia de usuario --- ## US-ML-020: Ver Fase AMD Actual en Dashboard ### Metadata | Campo | Valor | |-------|-------| | **ID** | US-ML-020 | | **Epica** | OQI-006A - Estrategia AMD y Modelos ML Avanzados | | **Modulo** | ml-signals | | **Prioridad** | P0 | | **Story Points** | 8 | | **Sprint** | Sprint 8 | | **Estado** | Ready | | **Asignado a** | ML-Engineer / Frontend-Developer | --- ### Historia de Usuario **Como** trader activo de la plataforma, **quiero** ver la fase AMD actual del mercado (Accumulation, Manipulation, Distribution o Neutral) en tiempo real, **para** entender el contexto institucional del mercado y tomar decisiones de trading informadas. ### Descripcion Detallada La fase AMD indica el comportamiento institucional del mercado: - **Accumulation (Verde):** Instituciones acumulando posiciones. Buen momento para buscar entradas largas. - **Manipulation (Amarillo/Naranja):** Stop hunting activo. Evitar operar o usar SL amplios. - **Distribution (Rojo):** Instituciones distribuyendo. Buen momento para buscar entradas cortas. - **Neutral (Gris):** Sin fase clara. Esperar confirmacion. El indicador debe mostrar: 1. Fase actual con color distintivo 2. Confianza del modelo (0-100%) 3. Tiempo en la fase actual 4. Historial de fases recientes (ultimas 24h) ### Mockups/Wireframes ``` +--------------------------------------------------+ | TRADING DASHBOARD | +--------------------------------------------------+ | | | [CHART AREA] | | | | +--------------------------------------------+ | | | AMD PHASE | | | | ========================================== | | | | | | | | [===] ACCUMULATION | | | | Confidence: 78% | | | | Duration: 2h 15m | | | | | | | | Phase History (24h): | | | | [N][A][A][M][A][A][A][D][D][N][A][A] | | | | | | | +--------------------------------------------+ | | | +--------------------------------------------------+ ``` --- ### Criterios de Aceptacion **Escenario 1: Visualizacion de fase actual** ```gherkin DADO que estoy viendo el dashboard de trading CUANDO el modelo AMDDetector procesa los datos actuales ENTONCES veo la fase AMD actual con su color distintivo Y veo el porcentaje de confianza (0-100%) Y veo el tiempo que lleva en esa fase ``` **Escenario 2: Actualizacion en tiempo real** ```gherkin DADO que estoy viendo el indicador de fase AMD CUANDO cambia la fase del mercado ENTONCES el indicador se actualiza en menos de 5 segundos Y veo una animacion de transicion suave Y escucho una notificacion sonora (si esta habilitada) ``` **Escenario 3: Historial de fases** ```gherkin DADO que estoy viendo el indicador AMD CUANDO quiero ver el historial de fases ENTONCES veo las ultimas 24 horas de fases Y cada fase se muestra como un bloque coloreado Y puedo hacer hover para ver detalles (hora, duracion, confianza) ``` **Escenario 4: Sin datos disponibles** ```gherkin DADO que el modelo AMDDetector no esta disponible CUANDO intento ver la fase AMD ENTONCES veo un mensaje "Fase no disponible" Y el indicador muestra estado gris deshabilitado ``` ### Criterios Adicionales - [ ] Colores accesibles (WCAG AA) - [ ] Responsive en mobile y desktop - [ ] Tooltip con explicacion de cada fase - [ ] Opcion para minimizar/expandir indicador - [ ] Performance: Renderizado <100ms --- ### Tareas Tecnicas **Backend (FastAPI):** - [ ] BE-ML-020: Endpoint GET /api/ml/amd/current - [ ] BE-ML-021: Endpoint GET /api/ml/amd/history?hours=24 - [ ] BE-ML-022: WebSocket para streaming de fase AMD **ML Model:** - [ ] ML-020: Implementar AMDDetector.predict() - [ ] ML-021: Cache de predicciones (TTL 30s) - [ ] ML-022: Logging de predicciones para monitoring **Frontend:** - [ ] FE-ML-020: Componente AMDPhaseIndicator - [ ] FE-ML-021: Componente AMDPhaseHistory - [ ] FE-ML-022: Store amdStore (Zustand) - [ ] FE-ML-023: Integracion con WebSocket **Tests:** - [ ] TEST-ML-020: Unit tests AMDDetector - [ ] TEST-ML-021: Integration tests API - [ ] TEST-ML-022: E2E tests indicador --- ### Dependencias **Depende de:** - [ ] US-ML-001: Ver prediccion de precio - Estado: Done - [ ] AMDDetector modelo entrenado - Estado: Pending **Bloquea:** - [ ] US-ML-021: Alertas de cambio de fase AMD - [ ] US-ML-023: Senales filtradas por fase AMD --- ### Notas Tecnicas **Endpoints involucrados:** | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /api/ml/amd/current | Obtener fase actual | | GET | /api/ml/amd/history | Historial de fases | | WS | /ws/ml/amd | Stream de actualizaciones | **Entidades/Tablas:** - `ml.amd_predictions`: Historial de predicciones AMD - `ml.amd_transitions`: Transiciones entre fases **Componentes UI:** - `AMDPhaseIndicator`: Indicador principal de fase - `AMDPhaseHistory`: Timeline de fases - `AMDPhaseBadge`: Badge individual de fase **Response Schema:** ```typescript interface AMDPrediction { phase: 'neutral' | 'accumulation' | 'manipulation' | 'distribution'; confidence: number; // 0-1 probabilities: { neutral: number; accumulation: number; manipulation: number; distribution: number; }; duration_seconds: number; started_at: string; // ISO 8601 timestamp: string; // ISO 8601 } ``` --- ### Definition of Ready (DoR) - [x] Historia claramente escrita (quien, que, por que) - [x] Criterios de aceptacion definidos - [x] Story points estimados - [x] Dependencias identificadas - [ ] AMDDetector modelo entrenado - [x] Diseno/mockup disponible - [x] API spec disponible ### Definition of Done (DoD) - [ ] Codigo implementado segun criterios - [ ] Tests unitarios escritos y pasando - [ ] Tests de integracion pasando - [ ] Code review aprobado - [ ] Documentacion actualizada - [ ] Inventarios actualizados (MASTER_INVENTORY.yml) - [ ] Traza registrada - [ ] QA aprobado - [ ] Desplegado en ambiente de pruebas --- ### Historial de Cambios | Fecha | Cambio | Autor | |-------|--------|-------| | 2025-12-05 | Creacion | Requirements-Analyst | --- ### Notas de Implementacion _Pendiente de desarrollo_ ### Notas de QA _Pendiente de pruebas_ --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-05 **Ultima actualizacion:** 2025-12-05