Changes include: - Updated architecture documentation - Enhanced module definitions (OQI-001 to OQI-008) - ML integration documentation updates - Trading strategies documentation - Orchestration and inventory updates - Docker configuration updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
559 lines
24 KiB
Markdown
559 lines
24 KiB
Markdown
---
|
|
id: "README"
|
|
title: "Trading y Charts"
|
|
type: "Documentation"
|
|
project: "trading-platform"
|
|
version: "1.0.0"
|
|
updated_date: "2026-01-04"
|
|
---
|
|
|
|
# OQI-003: Trading y Charts
|
|
|
|
## Resumen Ejecutivo
|
|
|
|
La épica OQI-003 implementa la plataforma de trading con charts profesionales, indicadores técnicos, watchlists personalizables y sistema de paper trading para simulación sin riesgo.
|
|
|
|
---
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | OQI-003 |
|
|
| **Nombre** | Trading y Charts |
|
|
| **Módulo** | trading |
|
|
| **Fase** | Fase 1 - MVP |
|
|
| **Prioridad** | P1 |
|
|
| **Estado** | Pendiente |
|
|
| **Story Points** | 55 SP |
|
|
| **Sprint(s)** | Sprint 3-4 |
|
|
|
|
---
|
|
|
|
## Objetivo
|
|
|
|
Proporcionar una plataforma de trading completa que permita a los usuarios:
|
|
1. Visualizar charts profesionales con múltiples timeframes
|
|
2. Aplicar indicadores técnicos para análisis
|
|
3. Crear y gestionar watchlists personalizadas
|
|
4. Practicar trading con paper trading (simulación)
|
|
5. Revisar historial de operaciones y métricas de rendimiento
|
|
|
|
---
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
|
|
| Feature | Descripción |
|
|
|---------|-------------|
|
|
| Charts | Gráficos de velas con Lightweight Charts (TradingView clone) |
|
|
| Timeframes | 1m, 5m, 15m, 1h, 4h, 1D, 1W |
|
|
| Indicadores Técnicos | SMA, EMA, RSI, MACD, Bollinger Bands |
|
|
| **ML Overlay** | Indicadores predictivos del modelo ML superpuestos en chart |
|
|
| **Señales ML** | Visualización de señales de entrada/salida del modelo |
|
|
| **AMD Zones** | Zonas de Acumulación/Manipulación/Distribución |
|
|
| Watchlists | Listas personalizables de activos |
|
|
| Paper Trading | Simulación de operaciones sin dinero real |
|
|
| Historial | Registro completo de operaciones |
|
|
| Métricas | Win rate, P&L, Sharpe ratio básico |
|
|
| **Alertas ML** | Notificaciones cuando el modelo genera señales |
|
|
|
|
### ML Overlay Features
|
|
|
|
| Indicador ML | Visualización | Fuente |
|
|
|--------------|---------------|--------|
|
|
| RangePredictor | Bandas de predicción (ΔHigh/ΔLow) | TradingAgent |
|
|
| TPSLClassifier | Colores TP (verde) / SL (rojo) | TradingAgent |
|
|
| AMDDetector | Zonas coloreadas (Acc/Manip/Dist) | TradingAgent |
|
|
| SignalGenerator | Flechas de entrada (▲ compra, ▼ venta) | TradingAgent |
|
|
| Confidence | Opacidad según confianza del modelo | TradingAgent |
|
|
|
|
### Excluido
|
|
|
|
| Feature | Razón | Fase |
|
|
|---------|-------|------|
|
|
| Trading real | Requiere broker integration | Vía Agentes |
|
|
| Order book | Complejidad | Backlog |
|
|
| Depth charts | Nicho avanzado | Backlog |
|
|
| Screener avanzado | Post-MVP | Fase 2 |
|
|
|
|
---
|
|
|
|
## Arquitectura
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FRONTEND │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Trading │ │ Watchlist │ │ Paper │ │
|
|
│ │ Charts │ │ Manager │ │ Trading │ │
|
|
│ │ + ML Overlay│ │ │ │ │ │
|
|
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
|
|
└─────────┼────────────────┼────────────────┼─────────────────────┘
|
|
│ │ │
|
|
└────────────────┼────────────────┘
|
|
│ HTTPS / WebSocket
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ BACKEND API │
|
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
│ │ TRADING CONTROLLER │ │
|
|
│ │ GET /trading/candles GET /trading/indicators │ │
|
|
│ │ POST /trading/orders GET /trading/watchlists │ │
|
|
│ │ GET /trading/positions GET /trading/history │ │
|
|
│ │ GET /trading/ml/overlay GET /trading/ml/signals │ │
|
|
│ └─────────────────────────────────────────────────────────┘ │
|
|
│ │ │
|
|
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
|
|
│ │ Market │ │ Order │ │ Position │ │ Watchlist │ │
|
|
│ │ Service │ │ Service │ │ Service │ │ Service │ │
|
|
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
|
|
│ │
|
|
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
│ │ ML OVERLAY SERVICE │ │
|
|
│ │ - Fetch predictions from ML Engine │ │
|
|
│ │ - Transform to chart overlay format │ │
|
|
│ │ - Cache signals for performance │ │
|
|
│ └─────────────────────────────────────────────────────────┘ │
|
|
└────────┼──────────────┼──────────────┼──────────────┼───────────┘
|
|
│ │ │ │
|
|
▼ ▼ ▼ ▼
|
|
┌─────────────┐ ┌─────────────────────────┐ ┌─────────────────┐
|
|
│ Binance │ │ ML ENGINE │ │ PostgreSQL │
|
|
│ API │ │ (TradingAgent) │ │ trading schema │
|
|
│ │ │ - RangePredictor │ │ │
|
|
│ - Candles │ │ - TPSLClassifier │ │ - orders │
|
|
│ - Prices │ │ - AMDDetector │ │ - positions │
|
|
│ - Stream │ │ - SignalGenerator │ │ - watchlists │
|
|
└─────────────┘ └─────────────────────────┘ └─────────────────┘
|
|
```
|
|
|
|
### Flujo de ML Overlay
|
|
|
|
```
|
|
Usuario solicita chart XAUUSD 1H
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ 1. Frontend: GET /trading/candles/XAUUSD?interval=1h │
|
|
│ 2. Frontend: GET /trading/ml/overlay/XAUUSD?interval=1h │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Backend: ML Overlay Service │
|
|
│ │
|
|
│ 1. Check Redis cache for recent predictions │
|
|
│ 2. If miss: Call ML Engine API │
|
|
│ - POST /predict {symbol, interval, candles} │
|
|
│ 3. Transform response to overlay format │
|
|
│ 4. Cache for 5 minutes │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Response: ML Overlay Data │
|
|
│ { │
|
|
│ "rangePrediction": { "high": [...], "low": [...] }, │
|
|
│ "tpslClassification": [{ "index": 50, "type": "tp" }], │
|
|
│ "amdZones": [{ "start": 10, "end": 25, "phase": "acc" }], │
|
|
│ "signals": [{ "index": 50, "type": "buy", "conf": 0.85 }] │
|
|
│ } │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Frontend: Render Chart with Overlay │
|
|
│ │
|
|
│ - Draw candles (standard) │
|
|
│ - Draw range bands (prediction envelope) │
|
|
│ - Color background zones (AMD phases) │
|
|
│ - Draw signal markers (arrows with confidence opacity) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Flujos Principales
|
|
|
|
### 1. Visualización de Chart
|
|
|
|
```
|
|
Usuario Frontend Backend Binance
|
|
│ │ │ │
|
|
│─── Selecciona BTCUSDT ──▶│ │ │
|
|
│ │─── GET /trading/candles ─▶│ │
|
|
│ │ │─── GET klines ────────▶│
|
|
│ │ │◀── OHLCV data ─────────│
|
|
│ │◀── Candles + indicators ─│ │
|
|
│◀── Render chart ─────────│ │ │
|
|
│ │ │ │
|
|
│ │─── WS connect ───────────▶│ │
|
|
│◀── Real-time updates ────│◀── Stream updates ───────│◀── WebSocket ─────────│
|
|
```
|
|
|
|
### 2. Paper Trading Order
|
|
|
|
```
|
|
Usuario Frontend Backend DB
|
|
│ │ │ │
|
|
│─── Click BUY BTCUSDT ───▶│ │ │
|
|
│ │─── POST /trading/orders ─▶│ │
|
|
│ │ │─── Validate balance ──▶│
|
|
│ │ │◀── OK ─────────────────│
|
|
│ │ │─── Get current price ──│
|
|
│ │ │─── INSERT order ───────▶│
|
|
│ │ │─── UPDATE positions ───▶│
|
|
│ │◀── Order executed ───────│ │
|
|
│◀── Success notification ─│ │ │
|
|
```
|
|
|
|
### 3. Gestión de Watchlist
|
|
|
|
```
|
|
Usuario Frontend Backend DB
|
|
│ │ │ │
|
|
│─── Add to watchlist ────▶│ │ │
|
|
│ │─── POST /watchlists/:id/symbols ─▶│ │
|
|
│ │ │─── INSERT symbol ─────▶│
|
|
│ │◀── Updated watchlist ────│ │
|
|
│◀── Symbol added ─────────│ │ │
|
|
```
|
|
|
|
---
|
|
|
|
## Modelo de Datos
|
|
|
|
### Tablas Principales
|
|
|
|
```sql
|
|
-- Watchlists del usuario
|
|
CREATE TABLE trading.watchlists (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id UUID REFERENCES public.users(id),
|
|
name VARCHAR(100) NOT NULL,
|
|
description TEXT,
|
|
is_default BOOLEAN DEFAULT FALSE,
|
|
sort_order INTEGER DEFAULT 0,
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
-- Símbolos en watchlists
|
|
CREATE TABLE trading.watchlist_symbols (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
watchlist_id UUID REFERENCES trading.watchlists(id) ON DELETE CASCADE,
|
|
symbol VARCHAR(20) NOT NULL,
|
|
notes TEXT,
|
|
alert_price_above DECIMAL(20,8),
|
|
alert_price_below DECIMAL(20,8),
|
|
sort_order INTEGER DEFAULT 0,
|
|
added_at TIMESTAMPTZ DEFAULT NOW(),
|
|
UNIQUE(watchlist_id, symbol)
|
|
);
|
|
|
|
-- Órdenes de paper trading
|
|
CREATE TABLE trading.paper_orders (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id UUID REFERENCES public.users(id),
|
|
symbol VARCHAR(20) NOT NULL,
|
|
side order_side_enum NOT NULL, -- buy | sell
|
|
type order_type_enum NOT NULL, -- market | limit | stop_limit
|
|
status order_status_enum DEFAULT 'pending',
|
|
quantity DECIMAL(20,8) NOT NULL,
|
|
price DECIMAL(20,8), -- null for market orders
|
|
stop_price DECIMAL(20,8),
|
|
filled_quantity DECIMAL(20,8) DEFAULT 0,
|
|
filled_price DECIMAL(20,8),
|
|
take_profit DECIMAL(20,8),
|
|
stop_loss DECIMAL(20,8),
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
filled_at TIMESTAMPTZ,
|
|
cancelled_at TIMESTAMPTZ
|
|
);
|
|
|
|
-- Posiciones abiertas
|
|
CREATE TABLE trading.paper_positions (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id UUID REFERENCES public.users(id),
|
|
symbol VARCHAR(20) NOT NULL,
|
|
side position_side_enum NOT NULL, -- long | short
|
|
quantity DECIMAL(20,8) NOT NULL,
|
|
entry_price DECIMAL(20,8) NOT NULL,
|
|
current_price DECIMAL(20,8),
|
|
unrealized_pnl DECIMAL(20,8) DEFAULT 0,
|
|
realized_pnl DECIMAL(20,8) DEFAULT 0,
|
|
take_profit DECIMAL(20,8),
|
|
stop_loss DECIMAL(20,8),
|
|
opened_at TIMESTAMPTZ DEFAULT NOW(),
|
|
closed_at TIMESTAMPTZ,
|
|
UNIQUE(user_id, symbol) -- Una posición por símbolo
|
|
);
|
|
|
|
-- Balance virtual de paper trading
|
|
CREATE TABLE trading.paper_balances (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id UUID REFERENCES public.users(id) UNIQUE,
|
|
balance DECIMAL(20,8) DEFAULT 10000.00, -- $10,000 inicial
|
|
equity DECIMAL(20,8) DEFAULT 10000.00,
|
|
margin_used DECIMAL(20,8) DEFAULT 0,
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
-- Historial de trades cerrados
|
|
CREATE TABLE trading.paper_trades (
|
|
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id UUID REFERENCES public.users(id),
|
|
symbol VARCHAR(20) NOT NULL,
|
|
side position_side_enum NOT NULL,
|
|
entry_price DECIMAL(20,8) NOT NULL,
|
|
exit_price DECIMAL(20,8) NOT NULL,
|
|
quantity DECIMAL(20,8) NOT NULL,
|
|
pnl DECIMAL(20,8) NOT NULL,
|
|
pnl_percent DECIMAL(10,4) NOT NULL,
|
|
duration_minutes INTEGER,
|
|
opened_at TIMESTAMPTZ NOT NULL,
|
|
closed_at TIMESTAMPTZ NOT NULL
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## API Endpoints
|
|
|
|
### Market Data
|
|
|
|
| Method | Endpoint | Descripción |
|
|
|--------|----------|-------------|
|
|
| GET | `/trading/symbols` | Lista de símbolos disponibles |
|
|
| GET | `/trading/candles/:symbol` | Velas OHLCV |
|
|
| GET | `/trading/ticker/:symbol` | Precio actual |
|
|
| GET | `/trading/indicators/:symbol` | Indicadores técnicos |
|
|
| WS | `/trading/stream/:symbol` | Stream de precios |
|
|
|
|
### Watchlists
|
|
|
|
| Method | Endpoint | Descripción |
|
|
|--------|----------|-------------|
|
|
| GET | `/trading/watchlists` | Listar watchlists |
|
|
| POST | `/trading/watchlists` | Crear watchlist |
|
|
| PATCH | `/trading/watchlists/:id` | Actualizar watchlist |
|
|
| DELETE | `/trading/watchlists/:id` | Eliminar watchlist |
|
|
| POST | `/trading/watchlists/:id/symbols` | Agregar símbolo |
|
|
| DELETE | `/trading/watchlists/:id/symbols/:symbol` | Quitar símbolo |
|
|
|
|
### Paper Trading
|
|
|
|
| Method | Endpoint | Descripción |
|
|
|--------|----------|-------------|
|
|
| GET | `/trading/paper/balance` | Balance virtual |
|
|
| POST | `/trading/paper/balance/reset` | Reiniciar a $10,000 |
|
|
| GET | `/trading/paper/positions` | Posiciones abiertas |
|
|
| POST | `/trading/paper/orders` | Crear orden |
|
|
| DELETE | `/trading/paper/orders/:id` | Cancelar orden |
|
|
| GET | `/trading/paper/orders` | Historial de órdenes |
|
|
| GET | `/trading/paper/trades` | Historial de trades |
|
|
| GET | `/trading/paper/stats` | Estadísticas de rendimiento |
|
|
|
|
### ML Overlay (Integración con TradingAgent)
|
|
|
|
| Method | Endpoint | Descripción |
|
|
|--------|----------|-------------|
|
|
| GET | `/trading/ml/overlay/:symbol` | Overlay completo para chart |
|
|
| GET | `/trading/ml/signals/:symbol` | Señales de entrada/salida |
|
|
| GET | `/trading/ml/prediction/:symbol` | Predicción de rango |
|
|
| GET | `/trading/ml/amd/:symbol` | Zonas AMD detectadas |
|
|
| GET | `/trading/ml/confidence/:symbol` | Confianza del modelo |
|
|
| WS | `/trading/ml/stream/:symbol` | Stream de predicciones |
|
|
|
|
#### Ejemplo Response ML Overlay
|
|
|
|
```json
|
|
{
|
|
"symbol": "XAUUSD",
|
|
"interval": "1h",
|
|
"timestamp": "2025-12-05T12:00:00Z",
|
|
"overlay": {
|
|
"rangePrediction": {
|
|
"deltaHigh": [0.15, 0.18, 0.22, ...],
|
|
"deltaLow": [-0.12, -0.10, -0.14, ...]
|
|
},
|
|
"signals": [
|
|
{
|
|
"index": 95,
|
|
"type": "buy",
|
|
"confidence": 0.85,
|
|
"entry": 2045.50,
|
|
"tp": 2065.00,
|
|
"sl": 2035.00
|
|
}
|
|
],
|
|
"amdZones": [
|
|
{ "start": 50, "end": 65, "phase": "accumulation" },
|
|
{ "start": 66, "end": 78, "phase": "manipulation" },
|
|
{ "start": 79, "end": 95, "phase": "distribution" }
|
|
],
|
|
"tpslProbability": {
|
|
"tp": 0.72,
|
|
"sl": 0.28
|
|
},
|
|
"modelConfidence": 0.85
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Indicadores Técnicos
|
|
|
|
### Indicadores Tradicionales
|
|
|
|
| Indicador | Parámetros | Descripción |
|
|
|-----------|------------|-------------|
|
|
| SMA | period: 5, 10, 20, 50, 200 | Simple Moving Average |
|
|
| EMA | period: 5, 10, 20, 50, 200 | Exponential Moving Average |
|
|
| RSI | period: 14 | Relative Strength Index (0-100) |
|
|
| MACD | fast: 12, slow: 26, signal: 9 | Moving Average Convergence Divergence |
|
|
| BB | period: 20, stdDev: 2 | Bollinger Bands |
|
|
| ATR | period: 14 | Average True Range |
|
|
| Volume | - | Barras de volumen |
|
|
|
|
### Indicadores ML (TradingAgent)
|
|
|
|
| Indicador | Visualización | Descripción |
|
|
|-----------|---------------|-------------|
|
|
| **ML Range** | Bandas semi-transparentes | Predicción de rango ΔHigh/ΔLow |
|
|
| **ML Signal** | Flechas ▲/▼ con opacidad | Señales de entrada del modelo |
|
|
| **AMD Zone** | Background coloreado | Fases de mercado detectadas |
|
|
| **TP/SL Prob** | Indicador lateral | Probabilidad de TP vs SL |
|
|
| **Confidence** | Barra inferior | Confianza del modelo 0-100% |
|
|
|
|
### Colores AMD
|
|
|
|
| Fase | Color | Descripción |
|
|
|------|-------|-------------|
|
|
| Accumulation | Verde suave (#4CAF5020) | Acumulación institucional |
|
|
| Manipulation | Amarillo (#FFC10720) | Manipulación de mercado |
|
|
| Distribution | Rojo suave (#F4433620) | Distribución de posiciones |
|
|
|
|
---
|
|
|
|
## Timeframes Soportados
|
|
|
|
| Timeframe | Label | Candles por defecto |
|
|
|-----------|-------|---------------------|
|
|
| 1m | 1 minuto | 500 |
|
|
| 5m | 5 minutos | 300 |
|
|
| 15m | 15 minutos | 200 |
|
|
| 1h | 1 hora | 168 |
|
|
| 4h | 4 horas | 100 |
|
|
| 1D | 1 día | 100 |
|
|
| 1W | 1 semana | 52 |
|
|
|
|
---
|
|
|
|
## Métricas de Paper Trading
|
|
|
|
```json
|
|
{
|
|
"stats": {
|
|
"totalTrades": 45,
|
|
"winningTrades": 28,
|
|
"losingTrades": 17,
|
|
"winRate": 62.22,
|
|
"totalPnl": 2450.50,
|
|
"totalPnlPercent": 24.51,
|
|
"avgWin": 150.25,
|
|
"avgLoss": -85.30,
|
|
"profitFactor": 2.45,
|
|
"maxDrawdown": -8.5,
|
|
"sharpeRatio": 1.85,
|
|
"avgTradeDuration": "4h 23m"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Seguridad
|
|
|
|
### Rate Limiting
|
|
|
|
| Endpoint | Límite | Ventana |
|
|
|----------|--------|---------|
|
|
| `/trading/candles` | 30 | 1 min |
|
|
| `/trading/stream` | 5 conexiones | - |
|
|
| `/trading/paper/orders` | 20 | 1 min |
|
|
| General API | 100 | 1 min |
|
|
|
|
### Validaciones
|
|
|
|
- Balance suficiente para órdenes
|
|
- Símbolos válidos de la lista soportada
|
|
- Límites de posición por símbolo
|
|
- Cantidad mínima por orden
|
|
|
|
---
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Ruta | Estado |
|
|
|------------|------|--------|
|
|
| Schema DB | `apps/database/schemas/03_trading_schema.sql` | ✅ |
|
|
| Market Service | `apps/backend/src/modules/trading/services/market.service.ts` | Pendiente |
|
|
| Order Service | `apps/backend/src/modules/trading/services/order.service.ts` | Pendiente |
|
|
| Watchlist Service | `apps/backend/src/modules/trading/services/watchlist.service.ts` | Pendiente |
|
|
| Trading Controller | `apps/backend/src/modules/trading/controllers/trading.controller.ts` | Pendiente |
|
|
| Trading Page | `apps/frontend/src/modules/trading/pages/Trading.tsx` | Pendiente |
|
|
| Chart Component | `apps/frontend/src/modules/trading/components/TradingChart.tsx` | Pendiente |
|
|
| Order Panel | `apps/frontend/src/modules/trading/components/OrderPanel.tsx` | Pendiente |
|
|
| Watchlist Panel | `apps/frontend/src/modules/trading/components/WatchlistPanel.tsx` | Pendiente |
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
### Esta épica depende de:
|
|
|
|
| Épica/Módulo | Estado | Bloqueante | Razón |
|
|
|--------------|--------|------------|-------|
|
|
| OQI-001 Auth | ✅ Completado | Sí | Autenticación de usuarios |
|
|
| OQI-006 ML Signals | Pendiente | Parcial | ML overlay requiere predicciones |
|
|
|
|
### Esta épica bloquea:
|
|
|
|
| Épica/Módulo | Razón |
|
|
|--------------|-------|
|
|
| OQI-007 LLM Agent | El copiloto usa los charts para análisis |
|
|
| OQI-008 Portfolio Manager | Dashboard muestra charts de rendimiento |
|
|
|
|
### Integración con TradingAgent
|
|
|
|
Esta épica integra el motor ML existente ubicado en:
|
|
`[LEGACY: apps/ml-engine - migrado desde TradingAgent]/`
|
|
|
|
Ver documento de integración:
|
|
`docs/01-arquitectura/INTEGRACION-TRADINGAGENT.md`
|
|
|
|
---
|
|
|
|
## Riesgos
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
|--------|--------------|---------|------------|
|
|
| Rate limits Binance | Alta | Medio | Caché de datos, WebSocket |
|
|
| Latencia en charts | Media | Alto | CDN para assets, lazy loading |
|
|
| Cálculo de indicadores lento | Baja | Medio | Web Workers, caché |
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [_MAP de la Épica](./_MAP.md)
|
|
- [Requerimientos](./requerimientos/)
|
|
- [Especificaciones](./especificaciones/)
|
|
- [Historias de Usuario](./historias-usuario/)
|
|
- [Lightweight Charts Docs](https://tradingview.github.io/lightweight-charts/)
|