Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
568 lines
20 KiB
Markdown
568 lines
20 KiB
Markdown
# Architecture
|
|
|
|
## Overview
|
|
|
|
**OrbiQuant IA** es una plataforma integral de gestión de inversiones asistida por inteligencia artificial que combina money management automatizado, educación en trading, visualización de mercados y un sistema SaaS completo.
|
|
|
|
La arquitectura es de microservicios heterogéneos con servicios Node.js (backend/frontend) y Python (ML, LLM, trading agents, data) comunicándose vía REST APIs y WebSockets.
|
|
|
|
## Tech Stack
|
|
|
|
### Backend & Frontend
|
|
- **Backend API:** Express.js 5 + TypeScript + Node.js 20
|
|
- **Frontend:** React 18 + TypeScript + Tailwind CSS + Vite
|
|
- **WebSocket:** Socket.io (real-time charts, notifications)
|
|
- **Database:** PostgreSQL 16 (orbiquant_platform)
|
|
- **Cache:** Redis 7
|
|
- **Auth:** JWT + Passport.js (local, OAuth2)
|
|
|
|
### AI/ML Services (Python)
|
|
- **ML Engine:** FastAPI + PyTorch + XGBoost + scikit-learn
|
|
- **LLM Agent:** FastAPI + Ollama (Llama 3.1, Qwen 2.5)
|
|
- **Trading Agents:** FastAPI + CCXT (exchange integration)
|
|
- **Data Service:** FastAPI + pandas + numpy
|
|
|
|
### External Services
|
|
- **Payments:** Stripe
|
|
- **Exchanges:** Binance, Bybit, OKX (via CCXT)
|
|
- **LLM Models:** Ollama (local deployment)
|
|
|
|
## Module Structure
|
|
|
|
```
|
|
trading-platform/
|
|
├── apps/
|
|
│ ├── backend/ # Express.js API (TypeScript)
|
|
│ │ └── src/
|
|
│ │ ├── modules/ # Feature modules
|
|
│ │ │ ├── auth/ # Authentication (JWT, OAuth2)
|
|
│ │ │ ├── users/ # User management
|
|
│ │ │ ├── trading/ # Trading operations
|
|
│ │ │ ├── portfolio/ # Portfolio management
|
|
│ │ │ ├── investment/ # PAMM products
|
|
│ │ │ ├── education/ # Courses & gamification
|
|
│ │ │ ├── payments/ # Stripe integration
|
|
│ │ │ ├── ml/ # ML integration
|
|
│ │ │ ├── llm/ # LLM integration
|
|
│ │ │ ├── agents/ # Trading agents management
|
|
│ │ │ └── admin/ # Admin dashboard
|
|
│ │ ├── shared/ # Shared utilities
|
|
│ │ ├── config/ # Configuration
|
|
│ │ └── core/ # Core services
|
|
│ │
|
|
│ ├── frontend/ # React SPA
|
|
│ │ └── src/
|
|
│ │ ├── modules/ # Feature modules
|
|
│ │ │ ├── auth/ # Login, register
|
|
│ │ │ ├── dashboard/ # Main dashboard
|
|
│ │ │ ├── trading/ # Trading interface
|
|
│ │ │ ├── charts/ # TradingView-like charts
|
|
│ │ │ ├── portfolio/ # Portfolio view
|
|
│ │ │ ├── education/ # Courses
|
|
│ │ │ ├── agents/ # Agent monitoring
|
|
│ │ │ └── admin/ # Admin panel
|
|
│ │ ├── shared/ # Shared components
|
|
│ │ └── lib/ # Utilities
|
|
│ │
|
|
│ ├── ml-engine/ # Python ML Service
|
|
│ │ └── src/
|
|
│ │ ├── models/ # ML models
|
|
│ │ │ ├── amd_detector/ # Smart Money detector (CNN+LSTM+XGBoost)
|
|
│ │ │ ├── range_predictor/ # Price range prediction
|
|
│ │ │ └── signal_generator/ # Trading signals
|
|
│ │ ├── pipelines/ # Training pipelines
|
|
│ │ ├── backtesting/ # Backtesting engine
|
|
│ │ ├── features/ # Feature engineering
|
|
│ │ └── api/ # FastAPI endpoints
|
|
│ │
|
|
│ ├── llm-agent/ # Python LLM Service (Copilot)
|
|
│ │ └── src/
|
|
│ │ ├── core/ # LLM core (Ollama client)
|
|
│ │ ├── tools/ # 12 trading tools
|
|
│ │ │ ├── market_analysis.py
|
|
│ │ │ ├── technical_indicators.py
|
|
│ │ │ ├── sentiment_analysis.py
|
|
│ │ │ └── ...
|
|
│ │ ├── prompts/ # System prompts
|
|
│ │ └── api/ # FastAPI endpoints
|
|
│ │
|
|
│ ├── trading-agents/ # Python Trading Agents (Atlas, Orion, Nova)
|
|
│ │ └── src/
|
|
│ │ ├── agents/ # Agent implementations
|
|
│ │ │ ├── atlas/ # Conservador (3-5% mensual)
|
|
│ │ │ ├── orion/ # Moderado (5-10% mensual)
|
|
│ │ │ └── nova/ # Agresivo (10%+ mensual)
|
|
│ │ ├── strategies/ # Trading strategies
|
|
│ │ │ ├── mean_reversion.py
|
|
│ │ │ ├── trend_following.py
|
|
│ │ │ ├── breakout.py
|
|
│ │ │ └── ...
|
|
│ │ ├── exchange/ # Exchange integration (CCXT)
|
|
│ │ └── risk/ # Risk management
|
|
│ │
|
|
│ ├── data-service/ # Python Data Service (⚠️ 20% completo)
|
|
│ │ └── src/
|
|
│ │ ├── providers/ # Data providers
|
|
│ │ │ ├── binance.py
|
|
│ │ │ ├── yahoo_finance.py
|
|
│ │ │ └── ...
|
|
│ │ ├── aggregation/ # Data aggregation
|
|
│ │ └── api/ # FastAPI endpoints
|
|
│ │
|
|
│ └── database/ # PostgreSQL
|
|
│ └── ddl/
|
|
│ └── schemas/ # 8 schemas, 98 tables
|
|
│ ├── auth/
|
|
│ ├── trading/
|
|
│ ├── investment/
|
|
│ ├── financial/
|
|
│ ├── education/
|
|
│ ├── llm/
|
|
│ ├── ml/
|
|
│ └── audit/
|
|
│
|
|
├── packages/ # Shared code
|
|
│ ├── sdk-typescript/ # SDK for Node.js
|
|
│ ├── sdk-python/ # SDK for Python services
|
|
│ ├── config/ # Shared configuration
|
|
│ └── types/ # Shared types
|
|
│
|
|
├── docker/ # Docker configurations
|
|
├── docs/ # Documentation
|
|
└── orchestration/ # NEXUS agent system
|
|
```
|
|
|
|
## Database Schemas (8 schemas, 98 tables)
|
|
|
|
| Schema | Purpose | Tables | Key Entities |
|
|
|--------|---------|--------|--------------|
|
|
| **auth** | Authentication & Users | 10 | users, sessions, oauth_accounts, roles |
|
|
| **trading** | Trading Operations | 10 | orders, positions, symbols, trades |
|
|
| **investment** | PAMM Products | 7 | pamm_accounts, investors, performance |
|
|
| **financial** | Payments & Wallets | 10 | wallets, transactions, stripe_payments |
|
|
| **education** | Courses & Gamification | 14 | courses, lessons, quizzes, achievements |
|
|
| **llm** | LLM Conversations | 5 | conversations, messages, tools_usage |
|
|
| **ml** | ML Models & Predictions | 5 | models, predictions, backtests |
|
|
| **audit** | Logs & Auditing | 7 | api_logs, user_activity, system_events |
|
|
|
|
## Data Flow Architecture
|
|
|
|
```
|
|
┌──────────────┐
|
|
│ Frontend │ (React SPA - Port 3080)
|
|
│ (Browser) │
|
|
└──────┬───────┘
|
|
│ HTTP/WebSocket
|
|
▼
|
|
┌─────────────────────────────────────────────┐
|
|
│ Backend API (Express.js) │
|
|
│ Port 3081 │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ REST Controllers │ │
|
|
│ └──────┬─────────────────────┬────────┘ │
|
|
│ │ │ │
|
|
│ ▼ ▼ │
|
|
│ ┌─────────────┐ ┌─────────────┐ │
|
|
│ │ Services │ │ Services │ │
|
|
│ │ (Auth, │ │ (Trading, │ │
|
|
│ │ Users) │ │ Payments) │ │
|
|
│ └─────┬───────┘ └──────┬──────┘ │
|
|
│ │ │ │
|
|
└────────┼─────────────────────┼──────────────┘
|
|
│ │
|
|
│ ┌─────────────────┼──────────────┐
|
|
│ │ │ │
|
|
▼ ▼ ▼ ▼
|
|
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
│ PostgreSQL │ │ ML Engine │ │ LLM Agent │
|
|
│ (Database) │ │ (Python) │ │ (Python) │
|
|
│ │ │ Port 3083 │ │ Port 3085 │
|
|
└─────────────────┘ └──────┬───────┘ └──────┬───────┘
|
|
│ │
|
|
▼ ▼
|
|
┌──────────────┐ ┌──────────────┐
|
|
│ Data Service │ │ Ollama │
|
|
│ (Python) │ │ WebUI │
|
|
│ Port 3084 │ │ Port 3087 │
|
|
└──────────────┘ └──────────────┘
|
|
```
|
|
|
|
### Service Communication
|
|
|
|
```
|
|
Frontend (3080)
|
|
↓ HTTP/WS
|
|
Backend API (3081)
|
|
↓ HTTP
|
|
├─→ ML Engine (3083) [Price predictions, AMD detection]
|
|
├─→ LLM Agent (3085) [Trading copilot, analysis]
|
|
├─→ Trading Agents (3086) [Automated trading]
|
|
└─→ Data Service (3084) [Market data]
|
|
|
|
Trading Agents (3086)
|
|
↓ CCXT
|
|
└─→ Exchanges (Binance, Bybit, OKX)
|
|
|
|
LLM Agent (3085)
|
|
↓ HTTP
|
|
└─→ Ollama (8000) [Local LLM inference]
|
|
```
|
|
|
|
### Real-time Data Flow
|
|
|
|
```
|
|
Exchange WebSocket (Binance)
|
|
↓
|
|
Data Service (3084)
|
|
↓ Process & Normalize
|
|
Backend API (3081)
|
|
↓ WebSocket
|
|
Frontend (3080)
|
|
↓ Render
|
|
TradingView-like Charts
|
|
```
|
|
|
|
## Key Design Decisions
|
|
|
|
### 1. Microservices Architecture (Heterogeneous)
|
|
|
|
**Decision:** Separar servicios por lenguaje según especialización.
|
|
|
|
**Rationale:**
|
|
- Node.js para API y web (mejor I/O async)
|
|
- Python para ML/AI (ecosistema superior: PyTorch, scikit-learn, CCXT)
|
|
- Escalabilidad independiente por servicio
|
|
- Equipos especializados por stack
|
|
|
|
**Trade-offs:**
|
|
- Mayor complejidad operacional
|
|
- Necesita orquestación (Docker Compose)
|
|
- Múltiples runtimes (Node.js + Python)
|
|
|
|
### 2. Multi-Agent Trading System (Atlas, Orion, Nova)
|
|
|
|
**Decision:** 3 agentes con perfiles de riesgo diferenciados.
|
|
|
|
**Rationale:**
|
|
- Diversificación de estrategias
|
|
- Atractivo para diferentes tipos de inversionistas
|
|
- Competencia interna mejora algoritmos
|
|
|
|
**Profiles:**
|
|
- **Atlas (Conservador):** Target 3-5% mensual, max drawdown 5%
|
|
- **Orion (Moderado):** Target 5-10% mensual, max drawdown 10%
|
|
- **Nova (Agresivo):** Target 10%+ mensual, max drawdown 20%
|
|
|
|
### 3. Ensemble ML Models (CNN + LSTM + XGBoost)
|
|
|
|
**Decision:** Combinar múltiples modelos para detección AMD (Smart Money).
|
|
|
|
**Rationale:**
|
|
- CNN detecta patrones visuales en charts
|
|
- LSTM captura series temporales
|
|
- XGBoost para features tabulares
|
|
- Ensemble reduce overfitting
|
|
|
|
**Accuracy:** ~75% en backtesting (2020-2024)
|
|
|
|
### 4. Local LLM with Ollama
|
|
|
|
**Decision:** Usar Ollama para deployment local de LLMs (Llama 3.1, Qwen 2.5).
|
|
|
|
**Rationale:**
|
|
- Privacidad (no enviar datos a APIs externas)
|
|
- Costos predecibles (no pagar por token)
|
|
- Latencia baja
|
|
- Control total sobre modelos
|
|
|
|
**Trade-off:** Requiere GPU para inference rápida
|
|
|
|
### 5. PAMM (Percentage Allocation Management Module)
|
|
|
|
**Decision:** Implementar sistema PAMM para inversión colectiva.
|
|
|
|
**Rationale:**
|
|
- Permite a usuarios sin conocimiento invertir con los agentes
|
|
- Comisiones por performance (incentiva buenos resultados)
|
|
- Escalabilidad del modelo de negocio
|
|
|
|
**Status:** 60% implementado
|
|
|
|
### 6. Gamified Education Platform
|
|
|
|
**Decision:** Gamificar cursos de trading con puntos, logros y rankings.
|
|
|
|
**Rationale:**
|
|
- Aumenta engagement
|
|
- Acelera aprendizaje
|
|
- Atrae usuarios jóvenes
|
|
- Diferenciador vs competencia
|
|
|
|
### 7. PostgreSQL with Schema-based Multi-tenancy
|
|
|
|
**Decision:** Usar schemas PostgreSQL para separación lógica.
|
|
|
|
**Rationale:**
|
|
- Aislamiento claro por dominio
|
|
- Facilita migraciones por schema
|
|
- Mejor organización que tablas planas
|
|
- RLS (Row-Level Security) para multi-tenancy futuro
|
|
|
|
## Dependencies
|
|
|
|
### Critical External Dependencies
|
|
|
|
| Dependency | Purpose | Criticality | Replacement |
|
|
|------------|---------|-------------|-------------|
|
|
| **PostgreSQL 16** | Database | CRITICAL | MySQL, MongoDB |
|
|
| **Redis 7** | Caching, sessions | HIGH | Memcached |
|
|
| **Stripe** | Payments | CRITICAL | PayPal, Razorpay |
|
|
| **CCXT** | Exchange APIs | CRITICAL | Custom integration |
|
|
| **Ollama** | Local LLM | HIGH | OpenAI API, Claude |
|
|
| **Binance API** | Market data | CRITICAL | Yahoo Finance, Alpha Vantage |
|
|
|
|
### Internal Service Dependencies
|
|
|
|
```
|
|
Backend API depends on:
|
|
├─ PostgreSQL (database)
|
|
├─ Redis (cache)
|
|
├─ ML Engine (predictions)
|
|
├─ LLM Agent (copilot)
|
|
└─ Trading Agents (automated trading)
|
|
|
|
ML Engine depends on:
|
|
├─ PostgreSQL (model storage)
|
|
└─ Data Service (market data)
|
|
|
|
LLM Agent depends on:
|
|
├─ Ollama (LLM inference)
|
|
└─ Backend API (user context)
|
|
|
|
Trading Agents depend on:
|
|
├─ PostgreSQL (orders, positions)
|
|
├─ ML Engine (signals)
|
|
└─ Exchanges (CCXT)
|
|
```
|
|
|
|
## Security Considerations
|
|
|
|
Ver documentación completa: [SECURITY.md](./SECURITY.md)
|
|
|
|
**Highlights:**
|
|
- JWT authentication con refresh tokens
|
|
- OAuth2 (Google, Facebook, Apple, GitHub)
|
|
- 2FA con TOTP (Speakeasy)
|
|
- API rate limiting (express-rate-limit)
|
|
- Helmet.js para headers de seguridad
|
|
- Password hashing con bcrypt
|
|
- Input validation con Zod
|
|
- SQL injection protection (parameterized queries)
|
|
- CORS configurado por entorno
|
|
- Stripe webhooks con signature verification
|
|
- API keys para servicios internos
|
|
|
|
## Performance Optimizations
|
|
|
|
### Backend
|
|
- Redis caching para queries frecuentes
|
|
- Connection pooling (PostgreSQL)
|
|
- Compression middleware
|
|
- Response pagination
|
|
- WebSocket para real-time (evita polling)
|
|
|
|
### ML Engine
|
|
- Model caching (evita reload)
|
|
- Batch predictions
|
|
- Feature pre-computation
|
|
- GPU acceleration (PyTorch CUDA)
|
|
|
|
### Frontend
|
|
- Code splitting (React lazy)
|
|
- Image optimization
|
|
- Service Worker (PWA)
|
|
- Debouncing en inputs
|
|
- Virtual scrolling para listas largas
|
|
|
|
### Database
|
|
- Indexes en columnas frecuentes
|
|
- Partitioning en tablas grandes
|
|
- EXPLAIN ANALYZE para optimización
|
|
- Connection pooling
|
|
|
|
## Deployment Strategy
|
|
|
|
**Current:** Development environment con Docker Compose
|
|
|
|
**Puertos:**
|
|
- Frontend: 3080
|
|
- Backend: 3081
|
|
- WebSocket: 3082
|
|
- ML Engine: 3083
|
|
- Data Service: 3084
|
|
- LLM Agent: 3085
|
|
- Trading Agents: 3086
|
|
- Ollama WebUI: 3087
|
|
|
|
**Future Production:**
|
|
- Kubernetes para orquestación
|
|
- Load balancer (Nginx/Traefik)
|
|
- Auto-scaling por servicio
|
|
- Multi-region deployment
|
|
|
|
## Monitoring & Observability
|
|
|
|
**Implemented:**
|
|
- Winston logging (Backend)
|
|
- Python logging (ML services)
|
|
- Health check endpoints
|
|
|
|
**Planned:**
|
|
- Prometheus + Grafana
|
|
- Sentry error tracking
|
|
- Datadog APM
|
|
- Custom dashboards por agente de trading
|
|
|
|
## ML Models Overview
|
|
|
|
### 1. AMD Detector (Accumulation-Manipulation-Distribution)
|
|
|
|
**Purpose:** Detectar fases de Smart Money en el mercado
|
|
|
|
**Architecture:**
|
|
- CNN: Detecta patrones en candlestick charts (imágenes)
|
|
- LSTM: Series temporales de precio/volumen
|
|
- XGBoost: Features técnicos (RSI, MACD, etc.)
|
|
- Ensemble: Voting classifier
|
|
|
|
**Input:**
|
|
- Historical OHLCV (200 candles)
|
|
- Technical indicators (20+)
|
|
- Volume profile
|
|
|
|
**Output:**
|
|
- Phase: Accumulation | Manipulation | Distribution | Re-accumulation
|
|
- Confidence: 0.0 - 1.0
|
|
|
|
**Training:** Supervised learning con datos etiquetados manualmente (2020-2024)
|
|
|
|
### 2. Range Predictor
|
|
|
|
**Purpose:** Predecir rango de precio futuro (soporte/resistencia)
|
|
|
|
**Algorithm:** XGBoost Regressor
|
|
|
|
**Features:**
|
|
- Fibonacci levels
|
|
- Previous support/resistance
|
|
- Volume at price
|
|
- Market structure
|
|
|
|
**Output:**
|
|
- Support level (precio)
|
|
- Resistance level (precio)
|
|
- Probability distribution
|
|
|
|
### 3. Signal Generator
|
|
|
|
**Purpose:** Generar señales de compra/venta
|
|
|
|
**Architecture:** Neural Network + Technical Analysis
|
|
|
|
**Inputs:**
|
|
- AMD phase
|
|
- Predicted range
|
|
- Technical indicators
|
|
- Sentiment analysis
|
|
|
|
**Output:**
|
|
- Signal: BUY | SELL | HOLD
|
|
- Strength: 0-100
|
|
- Entry/Stop/Target prices
|
|
|
|
## Trading Agents Strategies
|
|
|
|
### Atlas (Conservador)
|
|
|
|
**Strategies:**
|
|
- Mean Reversion en rangos
|
|
- Grid Trading en lateralización
|
|
- High probability setups only
|
|
|
|
**Risk Management:**
|
|
- Max 2% por trade
|
|
- Stop loss estricto
|
|
- Daily drawdown limit: 1%
|
|
|
|
### Orion (Moderado)
|
|
|
|
**Strategies:**
|
|
- Trend Following
|
|
- Breakout trading
|
|
- Swing trading
|
|
|
|
**Risk Management:**
|
|
- Max 3% por trade
|
|
- Trailing stops
|
|
- Weekly drawdown limit: 5%
|
|
|
|
### Nova (Agresivo)
|
|
|
|
**Strategies:**
|
|
- Momentum scalping
|
|
- High frequency entries
|
|
- Leverage (2x-5x)
|
|
|
|
**Risk Management:**
|
|
- Max 5% por trade
|
|
- Wide stops
|
|
- Monthly drawdown limit: 15%
|
|
|
|
## LLM Agent (Copilot) Tools
|
|
|
|
El copiloto tiene 12 herramientas especializadas:
|
|
|
|
1. **market_analysis** - Análisis técnico completo
|
|
2. **technical_indicators** - Cálculo de indicadores
|
|
3. **sentiment_analysis** - Sentiment de noticias/social
|
|
4. **price_prediction** - Predicciones ML
|
|
5. **risk_calculator** - Cálculo de riesgo/recompensa
|
|
6. **portfolio_optimizer** - Optimización de portafolio
|
|
7. **backtest_strategy** - Backtesting de estrategias
|
|
8. **news_fetcher** - Noticias relevantes
|
|
9. **correlation_matrix** - Correlación entre activos
|
|
10. **volatility_analyzer** - Análisis de volatilidad
|
|
11. **order_book_analyzer** - Análisis de order book
|
|
12. **whale_tracker** - Tracking de movimientos grandes
|
|
|
|
## Future Improvements
|
|
|
|
### Short-term (Q1 2025)
|
|
- [ ] Completar data-service (actualmente 20%)
|
|
- [ ] Implementar tests unitarios (Jest, Pytest)
|
|
- [ ] Agregar retry/circuit breaker entre servicios
|
|
- [ ] Documentar APIs con OpenAPI/Swagger
|
|
|
|
### Medium-term (Q2-Q3 2025)
|
|
- [ ] Implementar KYC/AML compliance
|
|
- [ ] Agregar más exchanges (Kraken, Coinbase)
|
|
- [ ] Mobile app (React Native)
|
|
- [ ] Notificaciones push
|
|
- [ ] Sistema de referidos
|
|
|
|
### Long-term (Q4 2025+)
|
|
- [ ] Copy trading entre usuarios
|
|
- [ ] Social trading features
|
|
- [ ] Marketplace de estrategias
|
|
- [ ] API pública para terceros
|
|
- [ ] White-label solution
|
|
|
|
## References
|
|
|
|
- [API Documentation](./API.md)
|
|
- [Security Guide](./SECURITY.md)
|
|
- [Services Overview](../SERVICES.md)
|
|
- [Database Schema](../apps/database/ddl/)
|
|
- [ML Models Documentation](../apps/ml-engine/docs/)
|
|
- [Trading Agents Documentation](../apps/trading-agents/docs/)
|