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>
574 lines
12 KiB
Markdown
574 lines
12 KiB
Markdown
# FASE 5: PLAN DE EJECUCION REFINADO
|
|
## Trading PlatformIA Trading Platform
|
|
|
|
**Fecha:** 2026-01-07
|
|
**Basado en:** Analisis, Planeacion, Validacion, Dependencias
|
|
**Estado:** LISTO PARA EJECUCION
|
|
|
|
---
|
|
|
|
## 1. RESUMEN DEL PLAN REFINADO
|
|
|
|
### 1.1 Objetivo
|
|
Lograr integracion completa y homologacion de trading-platform en **9 pasos secuenciales** siguiendo el orden de dependencias identificado.
|
|
|
|
### 1.2 Alcance
|
|
- Homologar configuraciones
|
|
- Completar Data Service
|
|
- Verificar integraciones ML/LLM
|
|
- Actualizar documentacion
|
|
- Validar flujos end-to-end
|
|
|
|
### 1.3 Fuera de Alcance (Diferido)
|
|
- Testing suite completo
|
|
- CI/CD Pipeline
|
|
- Monitoreo Prometheus/Grafana
|
|
- Marketplace (OQI-009)
|
|
|
|
---
|
|
|
|
## 2. PLAN DE EJECUCION DETALLADO
|
|
|
|
### PASO 1: VERIFICAR DOCKER-COMPOSE
|
|
**Prioridad:** P0 | **Dependencias:** Ninguna
|
|
|
|
#### 1.1 Archivo: `/docker-compose.yml`
|
|
|
|
**Verificar:**
|
|
```yaml
|
|
services:
|
|
postgres:
|
|
ports: ["5432:5432"]
|
|
environment:
|
|
POSTGRES_DB: trading_platform
|
|
POSTGRES_USER: trading
|
|
POSTGRES_PASSWORD: trading_dev_2025
|
|
|
|
redis:
|
|
ports: ["6379:6379"]
|
|
|
|
backend:
|
|
ports: ["3081:3081"]
|
|
environment:
|
|
- DB_HOST=postgres
|
|
- DB_PORT=5432
|
|
- DB_NAME=trading_platform
|
|
- DB_USER=trading
|
|
- DB_PASSWORD=trading_dev_2025
|
|
- ML_ENGINE_URL=http://ml-engine:3083
|
|
- LLM_AGENT_URL=http://llm-agent:3085
|
|
|
|
frontend:
|
|
ports: ["3080:3080"]
|
|
|
|
ml-engine:
|
|
ports: ["3083:3083"]
|
|
|
|
data-service:
|
|
ports: ["3084:3084"]
|
|
|
|
llm-agent:
|
|
ports: ["3085:3085"]
|
|
|
|
trading-agents:
|
|
ports: ["3086:3086"]
|
|
```
|
|
|
|
**Accion:** Verificar que todos los puertos y variables estan correctos.
|
|
|
|
**Validacion:**
|
|
```bash
|
|
docker-compose config --quiet && echo "Config OK"
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 2: HOMOLOGAR ARCHIVOS .ENV
|
|
**Prioridad:** P0 | **Dependencias:** Paso 1
|
|
|
|
#### 2.1 Backend: `/apps/backend/.env.example`
|
|
|
|
**Contenido homologado:**
|
|
```env
|
|
# Server
|
|
PORT=3081
|
|
NODE_ENV=development
|
|
|
|
# Database
|
|
DB_HOST=localhost
|
|
DB_PORT=5432
|
|
DB_NAME=trading_platform
|
|
DB_USER=trading
|
|
DB_PASSWORD=trading_dev_2025
|
|
DB_POOL_MAX=20
|
|
DB_SSL=false
|
|
|
|
# Redis
|
|
REDIS_HOST=localhost
|
|
REDIS_PORT=6379
|
|
|
|
# Services
|
|
ML_ENGINE_URL=http://localhost:3083
|
|
LLM_AGENT_URL=http://localhost:3085
|
|
DATA_SERVICE_URL=http://localhost:3084
|
|
TRADING_AGENTS_URL=http://localhost:3086
|
|
|
|
# Auth
|
|
JWT_SECRET=your-jwt-secret-here
|
|
JWT_EXPIRES_IN=7d
|
|
|
|
# Stripe
|
|
STRIPE_SECRET_KEY=sk_test_xxx
|
|
STRIPE_WEBHOOK_SECRET=whsec_xxx
|
|
```
|
|
|
|
#### 2.2 Frontend: `/apps/frontend/.env.example`
|
|
|
|
**Contenido homologado:**
|
|
```env
|
|
# API URLs
|
|
VITE_API_URL=http://localhost:3081/api/v1
|
|
VITE_ML_URL=http://localhost:3083
|
|
VITE_LLM_AGENT_URL=http://localhost:3085
|
|
|
|
# WebSocket
|
|
VITE_WS_URL=ws://localhost:3081
|
|
VITE_ML_WS_URL=ws://localhost:3083
|
|
|
|
# Features
|
|
VITE_ENABLE_PAPER_TRADING=true
|
|
VITE_ENABLE_REAL_TRADING=false
|
|
```
|
|
|
|
#### 2.3 ML Engine: `/apps/ml-engine/.env`
|
|
|
|
**Contenido homologado:**
|
|
```env
|
|
# Server
|
|
PORT=3083
|
|
ENV=development
|
|
|
|
# Database
|
|
DATABASE_URL=postgresql://trading:trading_dev_2025@localhost:5432/trading_platform
|
|
|
|
# Services
|
|
DATA_SERVICE_URL=http://localhost:3084
|
|
|
|
# Models
|
|
MODELS_PATH=./models
|
|
```
|
|
|
|
#### 2.4 Data Service: `/apps/data-service/.env`
|
|
|
|
**Contenido homologado:**
|
|
```env
|
|
# Server
|
|
PORT=3084
|
|
ENV=development
|
|
|
|
# Database
|
|
DATABASE_URL=postgresql://trading:trading_dev_2025@localhost:5432/trading_platform
|
|
|
|
# Polygon API
|
|
POLYGON_API_KEY=f09bA2V7OG7bHn4HxIT6Xs45ujg_pRXk
|
|
POLYGON_BASE_URL=https://api.polygon.io
|
|
POLYGON_RATE_LIMIT=5
|
|
|
|
# Sync
|
|
SYNC_INTERVAL_MINUTES=5
|
|
BACKFILL_DAYS=30
|
|
```
|
|
|
|
#### 2.5 LLM Agent: `/apps/llm-agent/.env` (CREAR)
|
|
|
|
**Contenido nuevo:**
|
|
```env
|
|
# Server
|
|
PORT=3085
|
|
ENV=development
|
|
|
|
# Services
|
|
ML_ENGINE_URL=http://localhost:3083
|
|
MCP_MT4_URL=http://localhost:3605
|
|
MCP_BINANCE_URL=http://localhost:3606
|
|
|
|
# LLM
|
|
LLM_PROVIDER=ollama
|
|
LLM_MODEL=llama3.2
|
|
OLLAMA_URL=http://localhost:11434
|
|
```
|
|
|
|
#### 2.6 Trading Agents: `/apps/trading-agents/.env` (CREAR)
|
|
|
|
**Contenido nuevo:**
|
|
```env
|
|
# Server
|
|
PORT=3086
|
|
ENV=development
|
|
|
|
# Services
|
|
ML_ENGINE_URL=http://localhost:3083
|
|
DATA_SERVICE_URL=http://localhost:3084
|
|
|
|
# Exchange (Paper Trading)
|
|
EXCHANGE_MODE=paper
|
|
INITIAL_BALANCE=100000
|
|
```
|
|
|
|
**Validacion:**
|
|
```bash
|
|
# Verificar que todas las apps pueden leer sus .env
|
|
for app in backend frontend ml-engine data-service llm-agent trading-agents; do
|
|
echo "Checking $app..."
|
|
test -f apps/$app/.env || test -f apps/$app/.env.example
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 3: VERIFICAR CONFIG BD
|
|
**Prioridad:** P0 | **Dependencias:** Paso 2
|
|
|
|
#### 3.1 ML Engine: `/apps/ml-engine/config/database.yaml`
|
|
|
|
**Verificar:**
|
|
```yaml
|
|
postgres:
|
|
host: ${DB_HOST:-localhost}
|
|
port: ${DB_PORT:-5432}
|
|
database: ${DB_NAME:-trading_platform}
|
|
user: ${DB_USER:-trading}
|
|
password: ${DB_PASSWORD:-trading_dev_2025}
|
|
pool_size: 10
|
|
max_overflow: 20
|
|
|
|
# MySQL remoto (solo lectura historicos)
|
|
mysql:
|
|
host: "72.60.226.4"
|
|
port: 3306
|
|
user: "root"
|
|
password: "AfcItz2391,."
|
|
database: "db_trading_meta"
|
|
pool_size: 5
|
|
```
|
|
|
|
#### 3.2 Backend Constants
|
|
|
|
**Verificar:** `/apps/backend/src/shared/constants/database.constants.ts`
|
|
- Schemas correctos
|
|
- Table names actualizados
|
|
|
|
**Validacion:**
|
|
```bash
|
|
# Test conexion PostgreSQL
|
|
PGPASSWORD=trading_dev_2025 psql -h localhost -U trading -d trading_platform -c "SELECT 1"
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 4: COMPLETAR DATA SERVICE
|
|
**Prioridad:** P0 | **Dependencias:** Paso 3
|
|
|
|
#### 4.1 Verificar Polygon Client
|
|
**Archivo:** `/apps/data-service/src/services/polygon_client.py`
|
|
|
|
**Verificar funciones:**
|
|
- `get_aggregates(symbol, timeframe, from_date, to_date)`
|
|
- `get_latest_price(symbol)`
|
|
- Rate limiting implementado
|
|
|
|
#### 4.2 Verificar Asset Updater
|
|
**Archivo:** `/apps/data-service/src/services/asset_updater.py`
|
|
|
|
**Verificar:**
|
|
- Priority queue (CRITICAL > HIGH > MEDIUM > LOW)
|
|
- Batch processing
|
|
- Error handling
|
|
|
|
#### 4.3 Verificar Scheduler
|
|
**Archivo:** `/apps/data-service/src/services/scheduler.py`
|
|
|
|
**Verificar:**
|
|
- Interval de 5 minutos
|
|
- Auto-start en boot
|
|
- Logging de ejecuciones
|
|
|
|
#### 4.4 Verificar API
|
|
**Archivo:** `/apps/data-service/src/api/main.py`
|
|
|
|
**Endpoints requeridos:**
|
|
```python
|
|
@app.get("/health")
|
|
@app.get("/api/v1/market/ohlcv/{symbol}")
|
|
@app.get("/api/v1/market/latest/{symbol}")
|
|
@app.post("/api/v1/sync/trigger")
|
|
@app.get("/api/v1/sync/status")
|
|
```
|
|
|
|
**Validacion:**
|
|
```bash
|
|
curl http://localhost:3084/health
|
|
curl http://localhost:3084/api/v1/market/latest/XAUUSD
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 5: VERIFICAR ML ENGINE
|
|
**Prioridad:** P1 | **Dependencias:** Paso 4
|
|
|
|
#### 5.1 Data Service Client
|
|
**Archivo:** `/apps/ml-engine/src/data/data_service_client.py`
|
|
|
|
**Verificar:**
|
|
- URL configurable desde .env
|
|
- Timeout handling
|
|
- Retry logic
|
|
|
|
#### 5.2 Prediction Service
|
|
**Archivo:** `/apps/ml-engine/src/services/prediction_service.py`
|
|
|
|
**Verificar:**
|
|
- Carga de modelos correcta
|
|
- Fallback heuristico funciona
|
|
- Todos los metodos responden
|
|
|
|
#### 5.3 API
|
|
**Archivo:** `/apps/ml-engine/src/api/main.py`
|
|
|
|
**Validacion:**
|
|
```bash
|
|
curl http://localhost:3083/health
|
|
curl "http://localhost:3083/api/amd_phase?symbol=XAUUSD&timeframe=15m"
|
|
curl "http://localhost:3083/api/range?symbol=XAUUSD&timeframe=15m"
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 6: VERIFICAR LLM AGENT
|
|
**Prioridad:** P1 | **Dependencias:** Paso 5
|
|
|
|
#### 6.1 ML Analyzer
|
|
**Archivo:** `/apps/llm-agent/src/services/ml_analyzer.py`
|
|
|
|
**Verificar:**
|
|
- Conexion a ML Engine
|
|
- Metodos get_full_analysis, get_quick_signal
|
|
- Confluence score calculado
|
|
|
|
#### 6.2 MCP Orchestrator
|
|
**Archivo:** `/apps/llm-agent/src/services/mcp_orchestrator.py`
|
|
|
|
**Verificar:**
|
|
- Routing por simbolo (XAUUSD→MT4, BTCUSDT→Binance)
|
|
- Execute trade funciona
|
|
- Error handling
|
|
|
|
#### 6.3 Routes
|
|
**Archivo:** `/apps/llm-agent/src/api/routes.py`
|
|
|
|
**Validacion:**
|
|
```bash
|
|
curl http://localhost:3085/health
|
|
curl -X POST http://localhost:3085/api/v1/predictions/analyze \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"symbol": "XAUUSD", "timeframe": "15m"}'
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 7: VERIFICAR BACKEND CLIENTS
|
|
**Prioridad:** P1 | **Dependencias:** Paso 6
|
|
|
|
#### 7.1 ML Engine Client
|
|
**Archivo:** `/apps/backend/src/shared/clients/ml-engine.client.ts`
|
|
|
|
**Verificar:**
|
|
- URL desde env
|
|
- Metodos de prediccion
|
|
- Error handling
|
|
|
|
#### 7.2 LLM Agent Client
|
|
**Archivo:** `/apps/backend/src/shared/clients/llm-agent.client.ts`
|
|
|
|
**Verificar:**
|
|
- URL desde env
|
|
- Metodos de analisis
|
|
- Error handling
|
|
|
|
**Validacion:**
|
|
```bash
|
|
curl http://localhost:3081/health
|
|
curl http://localhost:3081/api/v1/ml/signals/XAUUSD
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 8: VERIFICAR FRONTEND
|
|
**Prioridad:** P1 | **Dependencias:** Paso 7
|
|
|
|
#### 8.1 Services
|
|
**Archivos:**
|
|
- `src/services/trading.service.ts`
|
|
- `src/services/mlService.ts`
|
|
- `src/services/llmAgentService.ts`
|
|
- `src/services/websocket.service.ts`
|
|
|
|
**Verificar:**
|
|
- URLs desde env
|
|
- Metodos implementados
|
|
- Error handling
|
|
|
|
#### 8.2 Stores
|
|
**Archivos:**
|
|
- `src/stores/tradingStore.ts`
|
|
- `src/stores/paymentStore.ts`
|
|
|
|
**Verificar:**
|
|
- Actions funcionan
|
|
- Estado se actualiza
|
|
|
|
#### 8.3 WebSocket
|
|
**Verificar:**
|
|
- Conexion se establece
|
|
- Precio updates llegan
|
|
- ML signals llegan
|
|
|
|
**Validacion:**
|
|
```bash
|
|
# Iniciar frontend
|
|
cd apps/frontend && npm run dev
|
|
|
|
# Abrir http://localhost:3080
|
|
# Verificar:
|
|
# - Charts cargan
|
|
# - ML signals aparecen
|
|
# - WebSocket conectado
|
|
```
|
|
|
|
---
|
|
|
|
### PASO 9: ACTUALIZAR DOCUMENTACION
|
|
**Prioridad:** P2 | **Dependencias:** Paso 8
|
|
|
|
#### 9.1 OpenAPI Specs
|
|
**Crear archivos en:** `/docs/api-contracts/openapi/`
|
|
- `backend.yaml`
|
|
- `ml-engine.yaml`
|
|
- `llm-agent.yaml`
|
|
- `data-service.yaml`
|
|
|
|
#### 9.2 SERVICE-INTEGRATION.md
|
|
**Actualizar:** `/docs/api-contracts/SERVICE-INTEGRATION.md`
|
|
- Agregar todos los endpoints
|
|
- Ejemplos request/response
|
|
- Flujos de integracion
|
|
|
|
#### 9.3 Arquitectura
|
|
**Actualizar:** `/docs/00-vision-general/ARQUITECTURA-GENERAL.md`
|
|
- Reflejar estado actual
|
|
- Diagrama actualizado
|
|
|
|
#### 9.4 Inventario BD
|
|
**Verificar:** `/docs/90-transversal/inventarios/DATABASE_INVENTORY.yml`
|
|
- 8 schemas listados
|
|
- Tablas actualizadas
|
|
|
|
**Validacion:**
|
|
```bash
|
|
# Verificar OpenAPI validos
|
|
npx @apidevtools/swagger-cli validate docs/api-contracts/openapi/*.yaml
|
|
```
|
|
|
|
---
|
|
|
|
## 3. CHECKLIST DE VALIDACION FINAL
|
|
|
|
### 3.1 Servicios Funcionando
|
|
- [ ] PostgreSQL (5432)
|
|
- [ ] Redis (6379)
|
|
- [ ] Backend (3081)
|
|
- [ ] Frontend (3080)
|
|
- [ ] ML Engine (3083)
|
|
- [ ] Data Service (3084)
|
|
- [ ] LLM Agent (3085)
|
|
- [ ] Trading Agents (3086)
|
|
|
|
### 3.2 Integraciones Funcionando
|
|
- [ ] Frontend → Backend API
|
|
- [ ] Frontend → ML Engine WS
|
|
- [ ] Backend → PostgreSQL
|
|
- [ ] ML Engine → Data Service
|
|
- [ ] LLM Agent → ML Engine
|
|
- [ ] Data Service → Polygon API
|
|
- [ ] Data Service → PostgreSQL
|
|
|
|
### 3.3 Flujos End-to-End
|
|
- [ ] Login de usuario
|
|
- [ ] Ver datos de mercado
|
|
- [ ] Recibir signals ML
|
|
- [ ] Ejecutar paper trade
|
|
- [ ] Ver posiciones
|
|
- [ ] Procesar pago (Stripe test)
|
|
|
|
### 3.4 Documentacion
|
|
- [ ] README actualizado
|
|
- [ ] APIs documentadas
|
|
- [ ] Configuracion documentada
|
|
|
|
---
|
|
|
|
## 4. COMANDOS DE EJECUCION
|
|
|
|
### 4.1 Iniciar Todo con Docker
|
|
```bash
|
|
cd /home/isem/workspace-v1/projects/trading-platform
|
|
docker-compose up -d
|
|
```
|
|
|
|
### 4.2 Iniciar Desarrollo Local
|
|
```bash
|
|
# Terminal 1 - Backend
|
|
cd apps/backend && npm run dev
|
|
|
|
# Terminal 2 - Frontend
|
|
cd apps/frontend && npm run dev
|
|
|
|
# Terminal 3 - ML Engine
|
|
cd apps/ml-engine && python -m uvicorn src.api.main:app --port 3083
|
|
|
|
# Terminal 4 - Data Service
|
|
cd apps/data-service && python -m uvicorn src.api.main:app --port 3084
|
|
|
|
# Terminal 5 - LLM Agent
|
|
cd apps/llm-agent && python -m uvicorn src.api.main:app --port 3085
|
|
```
|
|
|
|
### 4.3 Verificar Todos los Health
|
|
```bash
|
|
for port in 3081 3083 3084 3085 3086; do
|
|
echo "Port $port: $(curl -s http://localhost:$port/health | head -c 50)"
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
## 5. CRITERIOS DE EXITO
|
|
|
|
### 5.1 Integracion Completa Cuando:
|
|
1. Todos los servicios inician sin errores
|
|
2. Health checks responden OK
|
|
3. Flujo de trading funciona end-to-end
|
|
4. ML signals se generan y muestran
|
|
5. Documentacion refleja estado actual
|
|
|
|
### 5.2 Metricas de Exito
|
|
- 0 errores criticos en logs
|
|
- < 1s latencia en predicciones
|
|
- WebSocket estable > 1 hora
|
|
- Documentacion 100% actualizada
|
|
|
|
---
|
|
|
|
**Plan refinado listo para ejecucion**
|
|
**Siguiente fase:** FASE 6 - Ejecucion del plan
|