6.8 KiB
6.8 KiB
_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 |