--- id: "RF-PFM-003" title: "Rebalanceo de Portfolio" 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-003: Rebalanceo de Portfolio **Épica:** OQI-008 - Portfolio Manager **Versión:** 1.0 **Fecha:** 2025-12-05 **Estado:** Planificado **Prioridad:** P1 - Alto --- ## Descripción El sistema debe proporcionar herramientas para rebalancear el portfolio, incluyendo detección de desviación de la asignación objetivo, sugerencias de rebalanceo y ejecución de órdenes de rebalanceo. --- ## Requisitos Funcionales ### RF-PFM-003.1: Asignación Objetivo - El usuario debe poder definir asignación objetivo por activo - El usuario debe poder definir asignación por tipo de activo - El sistema debe validar que la asignación sume 100% - El usuario debe poder guardar múltiples perfiles de asignación - El sistema debe proveer templates de asignación predefinidos ### RF-PFM-003.2: Detección de Desviación - El sistema debe calcular desviación actual vs objetivo - El sistema debe alertar cuando desviación supera umbral - Umbrales configurables: 5%, 10%, 15% - El sistema debe mostrar cuándo fue el último rebalanceo - El sistema debe recomendar frecuencia de rebalanceo según perfil ### RF-PFM-003.3: Plan de Rebalanceo - El sistema debe generar plan de rebalanceo automático - El plan debe mostrar órdenes necesarias (compras/ventas) - El plan debe considerar costos de transacción - El plan debe considerar implicaciones fiscales (Premium) - El usuario debe poder ajustar el plan manualmente ### RF-PFM-003.4: Ejecución de Rebalanceo - El usuario debe poder revisar y aprobar el plan - El sistema debe ejecutar órdenes en secuencia óptima - El sistema debe primero vender, luego comprar - El usuario debe ver progreso de ejecución - El sistema debe notificar cuando complete ### RF-PFM-003.5: Historial de Rebalanceos - El sistema debe guardar historial de rebalanceos - El usuario debe poder ver fecha, acciones y resultado - El usuario debe poder ver impacto de cada rebalanceo - El usuario debe poder exportar historial --- ## Criterios de Aceptación ```gherkin Feature: Rebalanceo de Portfolio Scenario: Configurar asignación objetivo Given soy usuario Pro/Premium When accedo a "Configurar Asignación" Then puedo definir % para cada tipo de activo And puedo definir % para activos específicos And el sistema valida que sume 100% When guardo la configuración Then se establece como mi asignación objetivo Scenario: Ver desviación de asignación Given tengo asignación objetivo configurada And mi portfolio ha cambiado de valor When veo el dashboard de rebalanceo Then veo asignación actual vs objetivo And veo desviación por activo And veo si necesito rebalancear Scenario: Generar plan de rebalanceo Given mi desviación supera el umbral configurado When solicito "Generar Plan de Rebalanceo" Then el sistema genera lista de operaciones And muestra qué vender y qué comprar And muestra costos estimados de transacción And puedo ajustar el plan antes de ejecutar Scenario: Ejecutar rebalanceo Given tengo plan de rebalanceo aprobado When confirmo "Ejecutar Rebalanceo" Then el sistema ejecuta las órdenes And veo progreso de ejecución And recibo notificación al completar And mi portfolio queda balanceado ``` --- ## Reglas de Negocio | Regla | Descripción | |-------|-------------| | RN-001 | Rebalanceo requiere plan Pro o Premium | | RN-002 | Umbral mínimo de desviación: 5% | | RN-003 | No rebalancear posiciones menores a $100 | | RN-004 | Ejecutar ventas antes que compras | | RN-005 | Considerar spread bid-ask en estimaciones | | RN-006 | Máximo 10 operaciones por rebalanceo | --- ## Templates de Asignación ### Conservador ```yaml template: conservative allocation: bonds: 60% large_cap_stocks: 30% cash: 10% ``` ### Moderado ```yaml template: moderate allocation: large_cap_stocks: 40% small_cap_stocks: 20% bonds: 30% cash: 10% ``` ### Agresivo ```yaml template: aggressive allocation: large_cap_stocks: 40% small_cap_stocks: 30% emerging_markets: 15% crypto: 10% cash: 5% ``` ### Crypto Focused ```yaml template: crypto_focused allocation: btc: 50% eth: 25% altcoins: 15% stablecoins: 10% ``` --- ## Wireframe ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Rebalanceo de Portfolio [Premium] │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ Asignación Actual vs Objetivo │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ Tipo Objetivo Actual Desviación │ │ │ │ ───────────────────────────────────────────── │ │ │ │ Acciones 50% ██████████ 55% +5% ⚠️ │ │ │ │ Crypto 30% ████████ 28% -2% │ │ │ │ Bonos 15% ███ 12% -3% ⚠️ │ │ │ │ Cash 5% ██ 5% 0% │ │ │ │ │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ │ │ ⚠️ Tu portfolio tiene desviación de +5% en acciones │ │ │ │ ┌─────────────────────────────────────────────────────────────────────┐│ │ │ Plan de Rebalanceo Sugerido ││ │ │ ││ │ │ 1. VENDER $1,200 de AAPL ││ │ │ 2. COMPRAR $800 de BND (bonos) ││ │ │ 3. COMPRAR $400 de BTC ││ │ │ ││ │ │ Costos estimados: $4.50 en comisiones ││ │ │ ││ │ │ [Ajustar Plan] [✓ Ejecutar Rebalanceo] ││ │ └─────────────────────────────────────────────────────────────────────┘│ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` --- ## Dependencias ### Épicas Requeridas - **OQI-004:** Cuentas de inversión (posiciones) - **OQI-003:** Ejecución de órdenes ### APIs Externas - Market data para precios - Order execution API --- ## Especificaciones Técnicas Relacionadas - [ET-PFM-004: Motor de Rebalanceo](../especificaciones/ET-PFM-004-motor-rebalanceo.md) --- ## Historias de Usuario Relacionadas - US-PFM-005: Configurar asignación objetivo - US-PFM-006: Ver necesidad de rebalanceo - US-PFM-007: Ejecutar rebalanceo --- *Documento de requerimientos - Sistema NEXUS* *Trading Platform*