FASE 1 - DDL-Backend Coherence (continued): - market-data.types.ts: Updated TickerRow, added Ohlcv5mRow, Ohlcv15mRow, OhlcvStagingRow - llm.types.ts: Updated UserPreferences, UserMemory, Embedding + 3 Row types - financial.types.ts: +6 types (Invoice, WalletAuditLog, etc.) - entity.types.ts (trading): +5 types (Symbol, TradingBot, etc.) FASE 2 - Backend-Frontend Coherence (continued): - llmStore.ts: New Zustand store with session lifecycle management - riskStore.ts: New Zustand store for risk assessment - risk.service.ts: New service with 8 functions - currency.service.ts: New service with 5 functions FASE 3 - Documentation: - OQI-007: Updated to 100% (7 ET, 11 US, 6 RF) - OQI-008: Added ET-PFM-010-architecture.md, ET-PFM-011-goals-system.md - Updated all _MAP.md and README.md indexes Build validation: Backend tsc PASSED, Frontend Vite PASSED Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
9.3 KiB
9.3 KiB
| id | title | type | project | updated_date |
|---|---|---|---|---|
| MAP-OQI-008-portfolio-manager | Mapa de OQI-008-portfolio-manager | Index | trading-platform | 2026-01-28 |
_MAP: OQI-008 - Portfolio Manager
Ultima actualizacion: 2026-01-28 Estado: En Desarrollo (45% completado) Version: 1.1.0
Propósito
Esta épica implementa un sistema profesional de gestión de carteras a largo plazo con optimización de portfolios, rebalanceo automático, distribución de rendimientos y proyecciones de inversión.
Contenido del Directorio
OQI-008-portfolio-manager/
├── README.md # Documentacion tecnica principal
├── _MAP.md # Este archivo - indice
├── requerimientos/ # Documentos de requerimientos funcionales (7)
│ ├── RF-PFM-001-dashboard-portfolio.md # Dashboard del portfolio
│ ├── RF-PFM-002-analisis-riesgo.md # Analisis de riesgo (VaR, Sharpe)
│ ├── RF-PFM-003-rebalanceo.md # Rebalanceo automatico
│ ├── RF-PFM-004-historial-transacciones.md # Historial de transacciones
│ ├── RF-PFM-005-comparacion-benchmark.md # Comparacion vs benchmark
│ ├── RF-PFM-006-reportes-fiscales.md # Reportes fiscales
│ └── RF-PFM-007-metas-inversion.md # Metas de inversion
├── especificaciones/ # Especificaciones tecnicas (11)
│ ├── ET-PFM-001-arquitectura-dashboard.md # Arquitectura del dashboard
│ ├── ET-PFM-002-calculo-metricas.md # Calculo de metricas
│ ├── ET-PFM-003-stress-testing.md # Stress testing
│ ├── ET-PFM-004-motor-rebalanceo.md # Motor de rebalanceo
│ ├── ET-PFM-005-historial-reportes.md # Historial y reportes
│ ├── ET-PFM-006-reportes-fiscales.md # Engine de reportes fiscales
│ ├── ET-PFM-007-motor-metas.md # Motor de metas (entity)
│ ├── ET-PFM-008-frontend.md # Especificacion frontend
│ ├── ET-PFM-009-custom-charts-svg-canvas.md # Charts SVG + Canvas
│ ├── ET-PFM-010-architecture.md # **Arquitectura general sistema**
│ └── ET-PFM-011-goals-system.md # **Sistema completo de Goals**
├── historias-usuario/ # User Stories (14)
│ ├── US-PFM-001-ver-resumen-portfolio.md # Ver resumen del portfolio
│ ├── US-PFM-002-ver-posiciones.md # Ver posiciones detalladas
│ ├── US-PFM-003-ver-metricas-riesgo.md # Ver metricas de riesgo
│ ├── US-PFM-004-ejecutar-stress-test.md # Ejecutar stress test
│ ├── US-PFM-005-configurar-asignacion.md # Configurar asignacion
│ ├── US-PFM-006-ver-desviacion.md # Ver desviacion de targets
│ ├── US-PFM-007-ejecutar-rebalanceo.md # Ejecutar rebalanceo
│ ├── US-PFM-008-ver-historial.md # Ver historial transacciones
│ ├── US-PFM-009-exportar-historial.md # Exportar historial
│ ├── US-PFM-010-comparar-benchmark.md # Comparar con benchmark
│ ├── US-PFM-011-metricas-benchmark.md # Metricas de benchmark
│ ├── US-PFM-012-reporte-fiscal.md # Generar reporte fiscal
│ ├── US-PFM-013-alerta-rebalanceo.md # Alerta de rebalanceo
│ └── US-PFM-014-generar-pdf.md # Generar reporte PDF
└── implementacion/ # Trazabilidad
└── TRACEABILITY.yml
Requerimientos Funcionales
| ID | Nombre | Prioridad | SP | Estado |
|---|---|---|---|---|
| RF-PFM-001 | Dashboard del Portfolio | P0 | 8 | ✅ Documentado |
| RF-PFM-002 | Análisis de Riesgo | P0 | 10 | ✅ Documentado |
| RF-PFM-003 | Rebalanceo Automático | P0 | 13 | ✅ Documentado |
| RF-PFM-004 | Historial de Transacciones | P0 | 10 | ✅ Documentado |
| RF-PFM-005 | Comparación vs Benchmark | P1 | 10 | ✅ Documentado |
| RF-PFM-006 | Reportes Fiscales | P1 | 8 | ✅ Documentado |
| RF-PFM-007 | Metas de Inversión | P2 | 6 | ✅ Documentado |
Total: 65 SP (100% documentados)
Especificaciones Tecnicas
| ID | Nombre | Componente | Estado |
|---|---|---|---|
| ET-PFM-001 | Arquitectura Dashboard | Frontend | Documentado |
| ET-PFM-002 | Calculo de Metricas | Backend | Documentado |
| ET-PFM-003 | Stress Testing | Risk Engine | Documentado |
| ET-PFM-004 | Motor de Rebalanceo | Backend | Documentado |
| ET-PFM-005 | Historial y Reportes | Backend | Documentado |
| ET-PFM-006 | Reportes Fiscales | Tax Engine | Documentado |
| ET-PFM-007 | Motor de Metas (Entity) | Goals Engine | Documentado |
| ET-PFM-008 | Frontend Completo | Frontend | Documentado |
| ET-PFM-009 | Custom Charts SVG/Canvas | Frontend | Documentado |
| ET-PFM-010 | Arquitectura General | Sistema | Documentado |
| ET-PFM-011 | Sistema de Goals Completo | Goals Engine | Documentado |
Total: 11 ET (100% documentados)
Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|---|---|---|---|---|
| US-PFM-001 | Ver resumen del portfolio | P0 | 5 | Documentado |
| US-PFM-002 | Ver posiciones detalladas | P0 | 8 | Documentado |
| US-PFM-003 | Ver metricas de riesgo | P0 | 5 | Documentado |
| US-PFM-004 | Ejecutar stress test | P0 | 5 | Documentado |
| US-PFM-005 | Configurar asignacion target | P0 | 8 | Documentado |
| US-PFM-006 | Ver desviacion de targets | P1 | 5 | Documentado |
| US-PFM-007 | Ejecutar rebalanceo | P1 | 5 | Documentado |
| US-PFM-008 | Ver historial de transacciones | P1 | 3 | Documentado |
| US-PFM-009 | Exportar historial | P2 | 5 | Documentado |
| US-PFM-010 | Comparar con benchmark | P2 | 3 | Documentado |
| US-PFM-011 | Metricas de benchmark | P1 | 5 | Documentado |
| US-PFM-012 | Generar reporte fiscal | P2 | 8 | Documentado |
| US-PFM-013 | Alerta de rebalanceo | P2 | 5 | Documentado |
| US-PFM-014 | Generar reporte PDF | P0 | 5 | Documentado |
Total: 75 SP (100% documentados)
Perfiles de Riesgo
| Perfil | Atlas | Orion | Nova | Cash | Target Mensual |
|---|---|---|---|---|---|
| Ultra Conservador | 70% | 20% | 0% | 10% | 2-3% |
| Conservador | 50% | 35% | 5% | 10% | 3-5% |
| Moderado | 30% | 50% | 15% | 5% | 5-8% |
| Agresivo | 15% | 45% | 35% | 5% | 8-15% |
| Ultra Agresivo | 5% | 30% | 60% | 5% | 15%+ |
Triggers de Rebalanceo
| Tipo | Condición | Frecuencia |
|---|---|---|
| Drift | Desviación > 5% | Continuo |
| Calendario | Día 1 del mes | Mensual |
| Rendimiento | Ganancia > 20% | Por evento |
| Drawdown | Pérdida > 15% | Por evento |
| Objetivo | Meta alcanzada | Por evento |
Distribución de Rendimientos
Esquema por Defecto:
- 80% reinversión (compound growth)
- 20% distribución al usuario
Frecuencias:
- Mensual, Trimestral, Semestral, Anual, Manual
Destinos:
- Wallet interno
- Cuenta bancaria (Stripe payout)
- Crypto wallet (futuro)
Dependencias
Depende de:
- OQI-001: Autenticación
- OQI-004: Investment Accounts (cuentas de inversión)
- OQI-005: Payments (distribuciones, aportaciones)
- OQI-006: ML Signals (performance de agentes)
Bloquea:
- Ninguna
Stack Técnico
| Capa | Tecnología | Uso |
|---|---|---|
| Frontend | React + D3.js | Dashboard y charts |
| Backend | Express.js | API REST |
| Database | PostgreSQL | Persistencia |
| Cálculos | Python (NumPy, SciPy) | Monte Carlo, métricas |
| Jobs | Bull Queue + Redis | Rebalanceo, distribuciones |
| Cache | Redis | Performance |
Métricas del Portfolio
Performance
- TWR (Time-Weighted Return)
- MWR (Money-Weighted Return)
- Sharpe Ratio
- Sortino Ratio
- Maximum Drawdown
- Calmar Ratio
Risk
- Beta vs benchmark
- Alpha generation
- Volatilidad
- Value at Risk (VaR)
Criterios de Aceptación
Funcionales
- Cuestionario de perfil de riesgo completo
- Dashboard de portfolio con métricas
- Rebalanceo automático funcionando
- Distribuciones mensuales ejecutándose
- Proyecciones Monte Carlo precisas
- Metas de inversión con tracking
No Funcionales
- Dashboard carga < 2 segundos
- Simulaciones < 5 segundos (1000 escenarios)
- Distribuciones procesadas en < 24 horas
Técnicos
- Cobertura tests > 80%
- Logs de auditoría completos
- Documentación API
Hitos
| Hito | Entregables | Target |
|---|---|---|
| M1 | Perfiles + asignación básica | Sprint 11 |
| M2 | Rebalanceo automático | Sprint 12 |
| M3 | Distribuciones + wallet | Sprint 12 |
| M4 | Proyecciones + metas | Sprint 13 |
| M5 | Reportes + exportación | Sprint 13 |
Referencias
- README Principal
- ET-PFM-010: Arquitectura General
- ET-PFM-011: Sistema de Goals
- OQI-004: Investment Accounts
- OQI-005: Payments
- Modern Portfolio Theory
Historial de Cambios
| Fecha | Version | Descripcion |
|---|---|---|
| 2025-12-05 | 1.0.0 | Documentacion inicial |
| 2026-01-25 | 1.0.1 | Agregados ET-PFM-008, ET-PFM-009, US-PFM-013, US-PFM-014 |
| 2026-01-28 | 1.1.0 | Agregados ET-PFM-010 (Arquitectura), ET-PFM-011 (Goals System) |