---
id: "US-TRD-001"
title: "Ver Chart de un Simbolo"
type: "User Story"
status: "Done"
priority: "Alta"
epic: "OQI-003"
story_points: 5
created_date: "2025-12-05"
updated_date: "2026-01-04"
---

# US-TRD-001: Ver Chart de un Símbolo

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-TRD-001 |
| **Épica** | OQI-003 - Trading y Charts |
| **Módulo** | trading |
| **Prioridad** | P0 |
| **Story Points** | 5 |
| **Sprint** | Sprint 3 |
| **Estado** | Pendiente |
| **Asignado a** | Por asignar |

---

## Historia de Usuario

**Como** trader/inversor,
**quiero** ver un gráfico de velas de un activo específico,
**para** analizar el comportamiento del precio y tomar decisiones de trading.

## Descripción Detallada

El usuario debe poder acceder a la página de trading y visualizar un chart profesional de velas japonesas (candlestick) para cualquier símbolo disponible en la plataforma. El chart debe mostrar datos históricos y actualizarse en tiempo real.

## Mockups/Wireframes

```
┌─────────────────────────────────────────────────────────────────┐
│  BTCUSDT   $97,234.50   +2.34% ▲                               │
├─────────────────────────────────────────────────────────────────┤
│  [1m] [5m] [15m] [1h] [4h] [1D] [1W]    [Indicators ▼]        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│    ████                                                         │
│    ████  ████                    ████                           │
│    ████  ████                    ████  ████                     │
│    ████  ████  ████              ████  ████  ████               │
│          ████  ████  ████        ████  ████  ████  ████         │
│                ████  ████  ████        ████  ████  ████ ████    │
│                      ████  ████              ████  ████ ████    │
│                            ████                    ████ ████    │
│                                                         ████    │
│                                                                  │
├─────────────────────────────────────────────────────────────────┤
│  ▓▓▓  ▓▓▓▓  ▓▓▓  ▓▓▓▓▓  ▓▓▓  ▓▓▓▓  ▓▓▓  ▓▓▓▓▓  ▓▓▓  ▓▓  VOLUME│
└─────────────────────────────────────────────────────────────────┘
```

---

## Criterios de Aceptación

**Escenario 1: Ver chart por defecto**
```gherkin
DADO que el usuario está autenticado
Y navega a la página de trading
CUANDO la página carga
ENTONCES se muestra el chart de BTCUSDT (símbolo por defecto)
Y el timeframe es 1h por defecto
Y se muestran al menos 168 velas históricas
Y se muestra el panel de volumen debajo
```

**Escenario 2: Cambiar símbolo**
```gherkin
DADO que el usuario está viendo un chart
CUANDO selecciona otro símbolo del dropdown (ej: ETHUSDT)
ENTONCES el chart se actualiza con datos de ETHUSDT
Y se mantiene el timeframe seleccionado
Y el header muestra el nuevo símbolo y precio
```

**Escenario 3: Actualización en tiempo real**
```gherkin
DADO que el usuario está viendo un chart
CUANDO pasa 1 segundo
ENTONCES la última vela se actualiza con el precio actual
Y el precio en el header se actualiza
Y el porcentaje de cambio se recalcula
```

**Escenario 4: Información en tooltip**
```gherkin
DADO que el usuario está viendo un chart
CUANDO pasa el cursor sobre una vela
ENTONCES se muestra un tooltip con:
  - Fecha y hora
  - Open, High, Low, Close
  - Volumen
  - Cambio porcentual de la vela
```

## Criterios Adicionales

- [ ] El chart debe cargar en menos de 2 segundos
- [ ] El chart debe ser responsive y funcionar en mobile
- [ ] Colores de velas: Verde para alcista, Rojo para bajista
- [ ] Crosshair debe seguir el cursor
- [ ] Logo watermark de Trading Platform en esquina

---

## Tareas Técnicas

**Backend:**
- [ ] BE-TRD-001: Crear endpoint GET /trading/candles/:symbol
- [ ] BE-TRD-002: Implementar servicio de conexión con Binance API
- [ ] BE-TRD-003: Implementar caché de datos con Redis (TTL: 60s)

**Frontend:**
- [ ] FE-TRD-001: Instalar y configurar Lightweight Charts
- [ ] FE-TRD-002: Crear componente TradingChart.tsx
- [ ] FE-TRD-003: Crear componente ChartHeader.tsx
- [ ] FE-TRD-004: Crear tradingStore con Zustand
- [ ] FE-TRD-005: Implementar conexión WebSocket para updates

**Tests:**
- [ ] TEST-TRD-001: Test unitario de transformación de datos
- [ ] TEST-TRD-002: Test de integración del endpoint candles
- [ ] TEST-TRD-003: Test E2E de carga del chart

---

## Dependencias

**Depende de:**
- [ ] US-AUTH-001: Autenticación - Estado: ✅ Completado

**Bloquea:**
- [ ] US-TRD-002: Cambiar timeframe
- [ ] US-TRD-003: Agregar indicador

---

## Notas Técnicas

**Endpoints involucrados:**
| Método | Endpoint | Descripción |
|--------|----------|-------------|
| GET | /trading/candles/:symbol | Obtener velas históricas |
| WS | /trading/stream/:symbol | Stream de actualizaciones |

**Entidades/Tablas:**
- No requiere persistencia (datos de API externa)

**Componentes UI:**
- `TradingChart`: Componente principal del gráfico
- `ChartHeader`: Header con símbolo, precio, cambio
- `TimeframeSelector`: Selector de intervalos
- `VolumePanel`: Panel de barras de volumen

---

## Definition of Ready (DoR)

- [x] Historia claramente escrita (quién, qué, por qué)
- [x] Criterios de aceptación definidos
- [x] Story points estimados
- [x] Dependencias identificadas
- [x] Sin bloqueadores
- [ ] Diseño/mockup disponible
- [ ] API spec disponible

## Definition of Done (DoD)

- [ ] Código implementado según criterios
- [ ] Tests unitarios escritos y pasando
- [ ] Tests de integración pasando
- [ ] Code review aprobado
- [ ] Documentación actualizada
- [ ] QA aprobado
- [ ] Desplegado en ambiente de pruebas

---

## Historial de Cambios

| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-05 | Creación | Requirements-Analyst |

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-05
**Última actualización:** 2025-12-05
