# RF-PFM-004: Historial de Transacciones

**Épica:** OQI-008 - Portfolio Manager
**Versión:** 1.0
**Fecha:** 2025-12-05
**Estado:** Planificado
**Prioridad:** P1 - Alto

---

## Descripción

El sistema debe mantener y mostrar un historial completo de todas las transacciones del usuario, incluyendo trades, depósitos, retiros, dividendos y fees.

---

## Requisitos Funcionales

### RF-PFM-004.1: Lista de Transacciones
- El usuario debe ver todas sus transacciones en lista paginada
- Cada transacción debe mostrar: fecha, tipo, símbolo, cantidad, precio, total
- Las transacciones deben poder filtrarse por tipo, símbolo, fecha
- Las transacciones deben poder ordenarse por cualquier columna
- El usuario debe poder buscar transacciones específicas

### RF-PFM-004.2: Tipos de Transacciones
- **BUY:** Compra de activos
- **SELL:** Venta de activos
- **DEPOSIT:** Depósito de fondos
- **WITHDRAWAL:** Retiro de fondos
- **DIVIDEND:** Dividendos recibidos
- **FEE:** Comisiones y fees
- **TRANSFER:** Transferencias entre cuentas
- **INTEREST:** Intereses recibidos

### RF-PFM-004.3: Detalle de Transacción
- El usuario debe poder ver detalle completo de cada transacción
- El detalle debe incluir: precio de ejecución, fees, P&L realizado
- Para ventas, mostrar P&L y % de ganancia/pérdida
- Mostrar costo base de la posición

### RF-PFM-004.4: Estadísticas de Trading
- El sistema debe calcular win rate (% de trades ganadores)
- El sistema debe calcular P&L promedio por trade
- El sistema debe mostrar mejor y peor trade
- El sistema debe mostrar P&L por símbolo
- El sistema debe mostrar P&L por mes

### RF-PFM-004.5: Exportación de Datos
- El usuario debe poder exportar transacciones a CSV
- El usuario debe poder exportar a PDF
- El usuario debe poder filtrar datos antes de exportar
- El formato debe ser compatible con tax software

---

## Criterios de Aceptación

```gherkin
Feature: Historial de Transacciones

Scenario: Ver historial de transacciones
  Given soy usuario con trades realizados
  When accedo a "Historial de Transacciones"
  Then veo lista de mis transacciones
  And están ordenadas por fecha (más reciente primero)
  And cada transacción muestra información básica

Scenario: Filtrar transacciones
  Given estoy viendo el historial
  When selecciono filtro "Tipo: Ventas"
  And selecciono filtro "Símbolo: AAPL"
  Then solo veo ventas de AAPL
  And puedo limpiar filtros para ver todo

Scenario: Ver detalle de trade
  Given veo una transacción de venta
  When hago clic en la transacción
  Then veo detalle completo:
    | Campo | Valor |
    | Tipo | SELL |
    | Símbolo | AAPL |
    | Cantidad | 10 |
    | Precio | $185.50 |
    | Total | $1,855.00 |
    | Fees | $1.00 |
    | P&L Realizado | +$250.00 (+15.6%) |

Scenario: Exportar transacciones
  Given tengo transacciones en mi historial
  When selecciono "Exportar a CSV"
  And selecciono rango de fechas
  Then se descarga archivo CSV
  And contiene todas las transacciones del período
```

---

## Reglas de Negocio

| Regla | Descripción |
|-------|-------------|
| RN-001 | Historial disponible para todos los planes |
| RN-002 | Free: últimos 90 días, Pro+: historial completo |
| RN-003 | P&L calculado con método FIFO por defecto |
| RN-004 | Exportación ilimitada para Pro+ |
| RN-005 | Retención de datos: 7 años mínimo |

---

## Formato de Datos

### Transacción
```yaml
transaction:
  id: "txn-123456"
  type: "SELL"
  symbol: "AAPL"
  quantity: 10
  price: 185.50
  total: 1855.00
  fees: 1.00
  net_amount: 1854.00
  executed_at: "2025-12-05T15:30:00Z"

  # Para ventas
  realized_pnl: 250.00
  realized_pnl_percent: 15.6
  cost_basis: 160.50
  holding_period_days: 45
```

---

## Wireframe

```
┌─────────────────────────────────────────────────────────────────────────┐
│ Historial de Transacciones                          [Exportar ▾] [🔍]  │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│ Filtros: [Todos ▾] [Todos símbolos ▾] [Último mes ▾]   [Aplicar]       │
│                                                                          │
│ ┌────────────────────────────────────────────────────────────────────┐  │
│ │ Fecha       │ Tipo   │ Símbolo │ Cantidad │ Precio   │ P&L        │  │
│ ├─────────────┼────────┼─────────┼──────────┼──────────┼────────────┤  │
│ │ 05 dic 15:30│ SELL   │ AAPL    │ 10       │ $185.50  │ +$250 ✓    │  │
│ │ 03 dic 10:15│ BUY    │ TSLA    │ 5        │ $245.00  │ -          │  │
│ │ 01 dic 09:30│ DIVIDEND│ MSFT   │ -        │ $0.75    │ +$37.50    │  │
│ │ 28 nov 14:00│ BUY    │ AAPL    │ 10       │ $175.00  │ -          │  │
│ │ 25 nov 11:30│ DEPOSIT│ -       │ -        │ $5,000   │ -          │  │
│ └────────────────────────────────────────────────────────────────────┘  │
│                                                                          │
│                              [← Anterior] Página 1 de 5 [Siguiente →]   │
│                                                                          │
│ ┌────────────────────────────────────────────────────────────────────┐  │
│ │ Resumen del Período                                                 │  │
│ │                                                                     │  │
│ │ Total P&L: +$1,250.00          Trades: 15                          │  │
│ │ Win Rate: 67%                  Mejor Trade: +$500 (NVDA)           │  │
│ │ P&L Promedio: +$83.33          Peor Trade: -$120 (TSLA)            │  │
│ └────────────────────────────────────────────────────────────────────┘  │
│                                                                          │
└─────────────────────────────────────────────────────────────────────────┘
```

---

## Dependencias

### Épicas Requeridas
- **OQI-004:** Cuentas de inversión
- **OQI-003:** Ejecución de órdenes

---

## Especificaciones Técnicas Relacionadas

- [ET-PFM-005: Historial y Reportes](../especificaciones/ET-PFM-005-historial-reportes.md)

---

## Historias de Usuario Relacionadas

- US-PFM-008: Ver historial de transacciones
- US-PFM-009: Exportar historial

---

*Documento de requerimientos - Sistema NEXUS*
*OrbiQuant IA Trading Platform*
