# _MAP: OQI-003 - Trading y Charts

**Última actualización:** 2025-12-05
**Estado:** Pendiente
**Versión:** 1.0.0

---

## Propósito

Esta épica implementa la plataforma de trading con charts profesionales usando Lightweight Charts, indicadores técnicos, watchlists personalizables y sistema de paper trading para simulación.

---

## Contenido del Directorio

```
OQI-003-trading-charts/
├── README.md                    # Resumen ejecutivo de la épica
├── _MAP.md                      # Este archivo - índice
├── requerimientos/              # Documentos de requerimientos funcionales
│   ├── RF-TRD-001-charts.md     # Charts y visualización
│   ├── RF-TRD-002-indicadores.md # Indicadores técnicos
│   ├── RF-TRD-003-watchlists.md # Gestión de watchlists
│   ├── RF-TRD-004-paper-trading.md # Paper trading
│   ├── RF-TRD-005-ordenes.md    # Sistema de órdenes
│   ├── RF-TRD-006-posiciones.md # Gestión de posiciones
│   ├── RF-TRD-007-historial.md  # Historial y trades
│   └── RF-TRD-008-metricas.md   # Métricas y estadísticas
├── especificaciones/            # Especificaciones técnicas
│   ├── ET-TRD-001-market-data.md # Obtención de datos de mercado
│   ├── ET-TRD-002-websocket.md  # Conexiones WebSocket
│   ├── ET-TRD-003-database.md   # Modelo de datos
│   ├── ET-TRD-004-api.md        # Endpoints REST
│   ├── ET-TRD-005-frontend.md   # Componentes React
│   ├── ET-TRD-006-indicadores.md # Cálculo de indicadores
│   ├── ET-TRD-007-paper-engine.md # Motor de paper trading
│   └── ET-TRD-008-performance.md # Optimizaciones
├── historias-usuario/           # User Stories
│   ├── US-TRD-001-ver-chart.md
│   ├── US-TRD-002-cambiar-timeframe.md
│   ├── US-TRD-003-agregar-indicador.md
│   ├── US-TRD-004-crear-watchlist.md
│   ├── US-TRD-005-agregar-simbolo.md
│   ├── US-TRD-006-crear-orden-market.md
│   ├── US-TRD-007-crear-orden-limit.md
│   ├── US-TRD-008-cerrar-posicion.md
│   ├── US-TRD-009-ver-posiciones.md
│   ├── US-TRD-010-ver-historial.md
│   ├── US-TRD-011-ver-estadisticas.md
│   ├── US-TRD-012-configurar-tp-sl.md
│   ├── US-TRD-013-alertas-precio.md
│   ├── US-TRD-014-reset-balance.md
│   ├── US-TRD-015-exportar-trades.md
│   ├── US-TRD-016-modo-oscuro-chart.md
│   ├── US-TRD-017-zoom-pan-chart.md
│   └── US-TRD-018-comparar-simbolos.md
└── implementacion/              # Trazabilidad de implementación
    └── TRACEABILITY.yml
```

---

## Requerimientos Funcionales

| ID | Nombre | Prioridad | SP | Estado |
|----|--------|-----------|-----|--------|
| RF-TRD-001 | Charts y Visualización | P0 | 8 | Pendiente |
| RF-TRD-002 | Indicadores Técnicos | P1 | 5 | Pendiente |
| RF-TRD-003 | Gestión de Watchlists | P1 | 5 | Pendiente |
| RF-TRD-004 | Paper Trading | P0 | 13 | Pendiente |
| RF-TRD-005 | Sistema de Órdenes | P0 | 8 | Pendiente |
| RF-TRD-006 | Gestión de Posiciones | P0 | 5 | Pendiente |
| RF-TRD-007 | Historial y Trades | P1 | 5 | Pendiente |
| RF-TRD-008 | Métricas y Estadísticas | P2 | 6 | Pendiente |

**Total:** 55 SP

---

## Especificaciones Técnicas

| ID | Nombre | Componente | Estado |
|----|--------|------------|--------|
| ET-TRD-001 | Market Data | Backend | Pendiente |
| ET-TRD-002 | WebSocket | Backend/Frontend | Pendiente |
| ET-TRD-003 | Database | Database | ✅ Schema existe |
| ET-TRD-004 | API REST | Backend | Pendiente |
| ET-TRD-005 | Frontend | Frontend | Pendiente |
| ET-TRD-006 | Indicadores | Backend/ML | Pendiente |
| ET-TRD-007 | Paper Engine | Backend | Pendiente |
| ET-TRD-008 | Performance | All | Pendiente |

---

## Historias de Usuario

| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-TRD-001 | Ver chart de un símbolo | P0 | 5 | Pendiente |
| US-TRD-002 | Cambiar timeframe | P0 | 2 | Pendiente |
| US-TRD-003 | Agregar indicador al chart | P1 | 3 | Pendiente |
| US-TRD-004 | Crear watchlist | P1 | 2 | Pendiente |
| US-TRD-005 | Agregar símbolo a watchlist | P1 | 2 | Pendiente |
| US-TRD-006 | Crear orden market | P0 | 5 | Pendiente |
| US-TRD-007 | Crear orden limit | P1 | 3 | Pendiente |
| US-TRD-008 | Cerrar posición | P0 | 3 | Pendiente |
| US-TRD-009 | Ver posiciones abiertas | P0 | 3 | Pendiente |
| US-TRD-010 | Ver historial de trades | P1 | 3 | Pendiente |
| US-TRD-011 | Ver estadísticas de rendimiento | P1 | 3 | Pendiente |
| US-TRD-012 | Configurar TP/SL | P1 | 3 | Pendiente |
| US-TRD-013 | Configurar alertas de precio | P2 | 3 | Pendiente |
| US-TRD-014 | Resetear balance paper | P2 | 1 | Pendiente |
| US-TRD-015 | Exportar trades a CSV | P2 | 2 | Pendiente |
| US-TRD-016 | Modo oscuro en chart | P2 | 2 | Pendiente |
| US-TRD-017 | Zoom y pan en chart | P1 | 3 | Pendiente |
| US-TRD-018 | Comparar múltiples símbolos | P2 | 5 | Pendiente |

**Total:** 55 SP

---

## Dependencias

### Depende de:

- **OQI-001:** Autenticación (usuarios, JWT) - ✅ Completado

### Bloquea:

- **OQI-006:** ML Signals (integración con charts)

---

## Stack Técnico

| Capa | Tecnología | Uso |
|------|------------|-----|
| Frontend | Lightweight Charts | Renderizado de velas |
| Frontend | React + Zustand | Estado y componentes |
| Backend | Express.js | API REST |
| Backend | ws | WebSocket server |
| Database | PostgreSQL | Persistencia |
| External | Binance API | Datos de mercado |

---

## Criterios de Aceptación

### Funcionales

- [ ] Charts renderizan correctamente con datos de Binance
- [ ] 7 timeframes disponibles y funcionales
- [ ] Mínimo 5 indicadores técnicos implementados
- [ ] Watchlists CRUD completo
- [ ] Paper trading ejecuta órdenes market y limit
- [ ] Posiciones se actualizan en tiempo real
- [ ] Historial muestra todos los trades cerrados
- [ ] Métricas calculan win rate y P&L correctamente

### No Funcionales

- [ ] Chart carga en < 2 segundos
- [ ] Updates en tiempo real < 500ms latencia
- [ ] Soporta 1000+ velas sin lag
- [ ] Mobile responsive

### Técnicos

- [ ] Cobertura de tests > 70%
- [ ] Documentación API completa
- [ ] Sin memory leaks en WebSocket

---

## Hitos

| Hito | Entregables | Target |
|------|-------------|--------|
| M1 | Charts básicos + timeframes | Sprint 3 |
| M2 | Indicadores + watchlists | Sprint 3 |
| M3 | Paper trading completo | Sprint 4 |
| M4 | Métricas + polish | Sprint 4 |

---

## Referencias

- [README Principal](./README.md)
- [Vision del Producto](../../00-vision-general/VISION-PRODUCTO.md)
- [Arquitectura](../../00-vision-general/ARQUITECTURA-GENERAL.md)
- [_MAP Fase MVP](../_MAP.md)
