ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
226 lines
9.2 KiB
Markdown
226 lines
9.2 KiB
Markdown
---
|
||
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*
|