---
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*
