--- id: "RF-PFM-005" title: "Comparación con Benchmarks" type: "Requirement" status: "Done" priority: "Alta" epic: "OQI-008" project: "trading-platform" version: "1.0.0" created_date: "2025-12-05" updated_date: "2026-01-04" --- # RF-PFM-005: Comparación con Benchmarks **Épica:** OQI-008 - Portfolio Manager **Versión:** 1.0 **Fecha:** 2025-12-05 **Estado:** Planificado **Prioridad:** P1 - Alto --- ## Descripción El sistema debe permitir al usuario comparar el rendimiento de su portfolio contra benchmarks de mercado y otros índices de referencia para evaluar su desempeño relativo. --- ## Requisitos Funcionales ### RF-PFM-005.1: Benchmarks Disponibles - El sistema debe soportar múltiples benchmarks: - S&P 500 (SPY) - NASDAQ 100 (QQQ) - Dow Jones (DIA) - Russell 2000 (IWM) - Total Market (VTI) - Bitcoin (BTC) - Ethereum (ETH) - El usuario debe poder seleccionar benchmark de comparación - El usuario debe poder guardar benchmark favorito ### RF-PFM-005.2: Gráfico Comparativo - El sistema debe mostrar gráfico con portfolio vs benchmark - Ambas líneas deben normalizarse al mismo punto de inicio - El usuario debe poder cambiar timeframe (1m, 3m, 6m, 1y, All) - El gráfico debe mostrar diferencia (alpha) en hover - El gráfico debe destacar períodos de over/underperformance ### RF-PFM-005.3: Métricas de Comparación - El sistema debe calcular Alpha (rendimiento exceso vs benchmark) - El sistema debe calcular Beta (correlación con mercado) - El sistema debe calcular R-squared (correlación) - El sistema debe calcular Tracking Error - El sistema debe calcular Information Ratio ### RF-PFM-005.4: Análisis de Períodos - El sistema debe mostrar rendimiento por período vs benchmark - Tabla comparativa: 1d, 1w, 1m, 3m, 6m, 1y, YTD - Destacar períodos donde superó al benchmark - Mostrar cuántos períodos ganó vs benchmark ### RF-PFM-005.5: Benchmark Personalizado - El usuario debe poder crear benchmark personalizado (Premium) - Combinar múltiples índices con pesos - Guardar y reusar benchmarks personalizados --- ## Criterios de Aceptación ```gherkin Feature: Comparación con Benchmarks Scenario: Comparar con S&P 500 Given tengo portfolio con historial de rendimiento When selecciono benchmark "S&P 500" Then veo gráfico comparativo portfolio vs S&P 500 And veo métrica Alpha And veo si estoy superando al benchmark Scenario: Ver métricas comparativas Given estoy comparando con benchmark When veo la sección de métricas Then veo: | Métrica | Descripción | | Alpha | Rendimiento exceso anualizado | | Beta | Sensibilidad al mercado | | Sharpe vs Benchmark | Comparación de eficiencia | | Tracking Error | Desviación del benchmark | Scenario: Análisis por período Given comparo mi portfolio con NASDAQ When veo el análisis por período Then veo tabla con rendimientos: | Período | Mi Portfolio | NASDAQ | Diferencia | | 1 mes | +5% | +3% | +2% ✓ | | 3 meses | +8% | +10% | -2% | | 1 año | +25% | +20% | +5% ✓ | ``` --- ## Reglas de Negocio | Regla | Descripción | |-------|-------------| | RN-001 | Benchmark default: S&P 500 | | RN-002 | Alpha calculado anualizado | | RN-003 | Beta calculado con regresión lineal (52 semanas) | | RN-004 | Benchmark personalizado solo Premium | | RN-005 | Máximo 3 benchmarks en comparación simultánea | --- ## Fórmulas ### Alpha ``` Alpha = Rp - [Rf + β × (Rm - Rf)] Donde: - Rp = Retorno del portfolio - Rf = Tasa libre de riesgo - β = Beta del portfolio - Rm = Retorno del mercado (benchmark) ``` ### Beta ``` β = Cov(Rp, Rm) / Var(Rm) Donde: - Cov = Covarianza entre portfolio y benchmark - Var = Varianza del benchmark ``` ### Information Ratio ``` IR = (Rp - Rb) / Tracking Error Donde: - Rp = Retorno del portfolio - Rb = Retorno del benchmark - Tracking Error = σ(Rp - Rb) ``` --- ## Wireframe ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Comparación vs Benchmark │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ Benchmark: [S&P 500 ▾] [+ Agregar benchmark] │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ Portfolio vs S&P 500 │ │ │ │ │ │ │ │ +30% ─ ╱─── Tu Portfolio (+28%) │ │ │ │ +20% ─ ╱──────╱ │ │ │ │ +10% ─ ╱──────╱ │ │ │ │ 0% ─────────────────╱──────────────── S&P 500 (+22%) │ │ │ │ -10% ───────────────────────────────────────────── │ │ │ │ Ene Feb Mar Abr May Jun Jul Ago Sep │ │ │ │ │ │ │ │ [1M] [3M] [6M] [YTD] [1Y] [3Y] [All] │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐ │ │ │ ALPHA │ │ BETA │ │ INFORMATION RATIO │ │ │ │ +6.0% │ │ 0.85 │ │ 0.72 │ │ │ │ Anualizado │ │ Menor volatilidad│ │ Bueno │ │ │ └────────────────────┘ └────────────────────┘ └────────────────────┘ │ │ │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ Comparación por Período │ │ │ │ │ │ │ │ Período Mi Portfolio S&P 500 Diferencia │ │ │ │ ───────────────────────────────────────────────── │ │ │ │ 1 día +0.8% +0.5% +0.3% ✓ │ │ │ │ 1 sem +2.1% +1.8% +0.3% ✓ │ │ │ │ 1 mes +5.2% +4.0% +1.2% ✓ │ │ │ │ 3 meses +12.5% +10.2% +2.3% ✓ │ │ │ │ YTD +28.0% +22.0% +6.0% ✓ │ │ │ │ │ │ │ │ 🏆 Has superado al S&P 500 en 5 de 5 períodos │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` --- ## Dependencias ### Épicas Requeridas - **OQI-003:** Datos de índices de mercado - **OQI-008:** Dashboard de portfolio ### Datos Requeridos - Historial de precios de benchmarks - Historial de valor del portfolio - Tasa libre de riesgo (Treasury) --- ## Especificaciones Técnicas Relacionadas - [ET-PFM-002: Cálculo de Métricas](../especificaciones/ET-PFM-002-calculo-metricas.md) --- ## Historias de Usuario Relacionadas - US-PFM-010: Comparar portfolio vs benchmark - US-PFM-011: Ver métricas de comparación --- *Documento de requerimientos - Sistema NEXUS* *Trading Platform*