ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
261 lines
9.0 KiB
Markdown
261 lines
9.0 KiB
Markdown
---
|
|
id: "README"
|
|
title: "Especificaciones Técnicas - OQI-003 Trading y Charts"
|
|
type: "Documentation"
|
|
project: "trading-platform"
|
|
version: "1.0.0"
|
|
updated_date: "2026-01-04"
|
|
---
|
|
|
|
# Especificaciones Técnicas - OQI-003 Trading y Charts
|
|
|
|
Este directorio contiene las especificaciones técnicas detalladas para el módulo de Trading y Charts de Trading Platform.
|
|
|
|
## Índice de Especificaciones
|
|
|
|
### 1. Integración de Datos de Mercado
|
|
**[ET-TRD-001: Market Data Integration](./ET-TRD-001-market-data.md)**
|
|
- Integración con Binance API (REST + WebSocket)
|
|
- Obtención de klines/candles, tickers, order book
|
|
- Caché con Redis
|
|
- Rate limiting y optimización de requests
|
|
- **Tecnologías:** Axios, Redis, PostgreSQL
|
|
|
|
### 2. Conexiones WebSocket
|
|
**[ET-TRD-002: WebSocket Connections](./ET-TRD-002-websocket.md)**
|
|
- WebSocket server para clientes (ws library)
|
|
- Conexión a Binance WebSocket
|
|
- Sistema de suscripciones por símbolo
|
|
- Reconexión automática y heartbeat
|
|
- Stream manager para multiplexación
|
|
- **Tecnologías:** ws, EventEmitter, JWT auth
|
|
|
|
### 3. Modelo de Datos
|
|
**[ET-TRD-003: Database Schema](./ET-TRD-003-database.md)**
|
|
- Schema `trading` completo en PostgreSQL 15+
|
|
- Tablas: watchlists, watchlist_symbols, paper_orders, paper_positions, paper_balances, paper_trades
|
|
- ENUMs personalizados para tipos de datos
|
|
- Funciones y triggers para lógica de negocio
|
|
- Vistas para consultas optimizadas
|
|
- **Tecnologías:** PostgreSQL 15+, SQL
|
|
|
|
### 4. API REST
|
|
**[ET-TRD-004: REST API Endpoints](./ET-TRD-004-api.md)**
|
|
- Endpoints de market data (klines, tickers, orderbook, symbols)
|
|
- Endpoints de watchlists (CRUD completo)
|
|
- Endpoints de paper trading (balances, orders, positions, trades)
|
|
- Endpoints de estadísticas
|
|
- Validación con Zod
|
|
- **Tecnologías:** Express.js, TypeScript, Zod
|
|
|
|
### 5. Componentes Frontend
|
|
**[ET-TRD-005: Frontend Components](./ET-TRD-005-frontend.md)**
|
|
- TradingPage con layout completo
|
|
- ChartComponent con Lightweight Charts v4
|
|
- OrderPanel, PositionsPanel, WatchlistPanel, OrderBookPanel
|
|
- Stores con Zustand (tradingStore, orderStore, chartStore)
|
|
- Hooks personalizados (useWebSocket, useMarketData)
|
|
- **Tecnologías:** React 18, Lightweight Charts v4, Zustand, TailwindCSS
|
|
|
|
### 6. Indicadores Técnicos
|
|
**[ET-TRD-006: Technical Indicators](./ET-TRD-006-indicadores.md)**
|
|
- SMA (Simple Moving Average)
|
|
- EMA (Exponential Moving Average)
|
|
- RSI (Relative Strength Index)
|
|
- MACD (Moving Average Convergence Divergence)
|
|
- Bollinger Bands
|
|
- Fórmulas matemáticas y optimizaciones
|
|
- Integración con Lightweight Charts
|
|
- **Tecnologías:** TypeScript, Lightweight Charts
|
|
|
|
### 7. Motor de Paper Trading
|
|
**[ET-TRD-007: Paper Trading Engine](./ET-TRD-007-paper-engine.md)**
|
|
- OrderExecutionService (market, limit, stop orders)
|
|
- PositionService (gestión de posiciones long/short)
|
|
- BalanceService (gestión de balances multi-asset)
|
|
- Cálculo de PnL (realizado y no realizado)
|
|
- Simulación de slippage y comisiones
|
|
- **Tecnologías:** TypeScript, PostgreSQL
|
|
|
|
### 8. Optimizaciones de Performance
|
|
**[ET-TRD-008: Performance Optimizations](./ET-TRD-008-performance.md)**
|
|
- Web Workers para cálculos pesados
|
|
- Virtualización de listas con react-window
|
|
- Caché con IndexedDB y LRU cache
|
|
- React.memo, useMemo, useCallback
|
|
- Lazy loading y code splitting
|
|
- Debouncing y throttling
|
|
- **Tecnologías:** Web Workers, react-window, IndexedDB
|
|
|
|
---
|
|
|
|
## Stack Tecnológico Completo
|
|
|
|
### Backend
|
|
- **Runtime:** Node.js 20+
|
|
- **Framework:** Express.js + TypeScript
|
|
- **Database:** PostgreSQL 15+ (schema: trading)
|
|
- **Cache:** Redis 7+
|
|
- **WebSocket:** ws library
|
|
- **API Client:** Axios
|
|
- **Validation:** Zod
|
|
|
|
### Frontend
|
|
- **Framework:** React 18
|
|
- **State Management:** Zustand
|
|
- **Charts:** Lightweight Charts v4
|
|
- **Styling:** TailwindCSS
|
|
- **HTTP Client:** Axios
|
|
- **Virtualization:** react-window
|
|
- **Storage:** IndexedDB
|
|
|
|
### External APIs
|
|
- **Market Data:** Binance API (REST + WebSocket)
|
|
- REST: https://api.binance.com
|
|
- WebSocket: wss://stream.binance.com:9443/ws
|
|
|
|
### Infrastructure
|
|
- **Container:** Docker
|
|
- **Reverse Proxy:** Nginx (opcional)
|
|
|
|
---
|
|
|
|
## Relación entre Especificaciones
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Frontend Layer │
|
|
│ │
|
|
│ ET-TRD-005 (Components) │
|
|
│ ├── ChartComponent ──uses──> ET-TRD-006 (Indicators) │
|
|
│ ├── OrderPanel ──uses──> ET-TRD-004 (API) │
|
|
│ └── Optimizations ──uses──> ET-TRD-008 (Performance) │
|
|
└────────────────────────┬────────────────────────────────────────┘
|
|
│
|
|
│ HTTP/WSS
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Backend Layer │
|
|
│ │
|
|
│ ET-TRD-004 (API Endpoints) │
|
|
│ ├── Routes ──uses──> ET-TRD-007 (Paper Engine) │
|
|
│ ├── Market Data ──uses──> ET-TRD-001 (Binance API) │
|
|
│ └── WebSocket ──uses──> ET-TRD-002 (WS Server) │
|
|
└────────────────────────┬────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ Data Layer │
|
|
│ │
|
|
│ ET-TRD-003 (Database Schema) │
|
|
│ ├── Watchlists Tables │
|
|
│ ├── Paper Trading Tables │
|
|
│ └── Market Data Tables │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Orden de Implementación Recomendado
|
|
|
|
1. **ET-TRD-003** - Database Schema (base de datos primero)
|
|
2. **ET-TRD-001** - Market Data Integration (datos externos)
|
|
3. **ET-TRD-002** - WebSocket Connections (tiempo real)
|
|
4. **ET-TRD-007** - Paper Trading Engine (lógica de negocio)
|
|
5. **ET-TRD-004** - REST API Endpoints (interfaz backend)
|
|
6. **ET-TRD-006** - Technical Indicators (cálculos)
|
|
7. **ET-TRD-005** - Frontend Components (UI)
|
|
8. **ET-TRD-008** - Performance Optimizations (refinamiento)
|
|
|
|
---
|
|
|
|
## Archivos Relacionados
|
|
|
|
- **Épica:** [OQI-003 README](../README.md)
|
|
- **Mapa del Módulo:** [_MAP.md](../_MAP.md)
|
|
- **Requerimientos Funcionales:** [../requerimientos/](../requerimientos/)
|
|
- **Historias de Usuario:** [../historias-usuario/](../historias-usuario/)
|
|
|
|
---
|
|
|
|
## Convenciones de Nomenclatura
|
|
|
|
### Archivos
|
|
- `ET-TRD-XXX-nombre.md` - Especificación Técnica
|
|
|
|
### Código Backend
|
|
- `*.service.ts` - Servicios de lógica de negocio
|
|
- `*.controller.ts` - Controladores de endpoints
|
|
- `*.routes.ts` - Definición de rutas
|
|
- `*.types.ts` - Interfaces y tipos TypeScript
|
|
|
|
### Código Frontend
|
|
- `*.tsx` - Componentes React
|
|
- `*.store.ts` - Stores de Zustand
|
|
- `use*.ts` - Custom hooks
|
|
|
|
### Base de Datos
|
|
- `trading.*` - Schema de trading
|
|
- `*_enum` - Tipos ENUM
|
|
- `idx_*` - Índices
|
|
- `*_trigger` - Triggers
|
|
|
|
---
|
|
|
|
## Notas de Desarrollo
|
|
|
|
### Variables de Entorno Requeridas
|
|
|
|
```bash
|
|
# Binance API
|
|
BINANCE_API_KEY=your_api_key
|
|
BINANCE_API_SECRET=your_api_secret
|
|
|
|
# Database
|
|
DATABASE_URL=postgresql://user:password@localhost:5432/trading
|
|
DB_SCHEMA=trading
|
|
|
|
# Redis
|
|
REDIS_URL=redis://localhost:6379
|
|
REDIS_DB_MARKET_DATA=1
|
|
|
|
# JWT
|
|
JWT_SECRET=your_jwt_secret
|
|
|
|
# API
|
|
API_URL=http://localhost:3001
|
|
WS_URL=ws://localhost:3001
|
|
```
|
|
|
|
### Comandos Útiles
|
|
|
|
```bash
|
|
# Crear schema de base de datos
|
|
psql -d trading -f migrations/001_create_trading_schema.sql
|
|
|
|
# Ejecutar tests
|
|
npm run test:backend
|
|
npm run test:frontend
|
|
|
|
# Desarrollo
|
|
npm run dev:backend
|
|
npm run dev:frontend
|
|
|
|
# Build producción
|
|
npm run build
|
|
```
|
|
|
|
---
|
|
|
|
## Contacto y Soporte
|
|
|
|
Para preguntas sobre estas especificaciones técnicas:
|
|
- Revisar documentación en `/docs`
|
|
- Consultar ejemplos de código en `/examples`
|
|
- Crear issue en repositorio del proyecto
|
|
|
|
---
|
|
|
|
**Última actualización:** 2025-12-05
|
|
**Versión de especificaciones:** 1.0.0
|