ML Engine de trading-platform - Workspace V2
- Created SignalStreamManager class for connection management
- Per-symbol subscriptions support
- Connection state tracking
- Targeted and broadcast messaging
- Added background signal generation task
- Generates signals every 60 seconds for subscribed symbols
- Includes attention scores in signals
- Enhanced /ws/signals endpoint with full protocol:
- subscribe: Subscribe to symbols
- unsubscribe: Unsubscribe from symbols
- get_signal: Request immediate signal
- get_attention: Request attention scores
- get_hierarchical: Request full L0→L1→L2 prediction
- ping/pong: Connection keepalive
- Added GET /ws/status endpoint for monitoring
- Added startup/shutdown handlers for background task
WebSocket Protocol:
1. Connect to /ws/signals
2. Send: {"action": "subscribe", "symbols": ["XAUUSD"]}
3. Receive: {"type": "signal", "symbol": "XAUUSD", "data": {...}}
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
||
|---|---|---|
| charts/XAUUSD | ||
| config | ||
| models | ||
| prompts | ||
| reports | ||
| scripts | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| environment.yml | ||
| MIGRATION_REPORT.md | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
Trading Platform ML Engine
Motor de Machine Learning para predicciones y senales de trading en Trading Platform.
Stack Tecnologico
- Lenguaje: Python 3.10+
- Framework API: FastAPI + Uvicorn
- Deep Learning: PyTorch 2.0+
- Gradient Boosting: XGBoost 2.0+ (CUDA support)
- Data Processing: Pandas, NumPy, PyArrow
- Async DB: Motor (MongoDB async driver)
Estructura del Proyecto
ml-engine/
├── config/ # Configuracion YAML
│ ├── database.yaml # Conexion a bases de datos
│ ├── models.yaml # Parametros de modelos
│ ├── trading.yaml # Configuracion de trading
│ └── validation_oos.yaml # Validacion out-of-sample
├── models/ # Modelos entrenados y reportes
│ ├── attention/ # Modelos con mecanismo de atencion
│ ├── metamodels/ # Meta-modelos (ensemble)
│ ├── symbol_timeframe_models/ # Modelos por simbolo/timeframe
│ └── *.md # Reportes de entrenamiento
├── src/
│ ├── api/ # Endpoints FastAPI
│ ├── backtesting/ # Motor de backtesting
│ ├── config/ # Carga de configuracion
│ ├── data/ # Data loaders y procesamiento
│ ├── models/ # Definiciones de modelos
│ ├── pipelines/ # Pipelines de ML
│ ├── services/ # Servicios de negocio
│ ├── training/ # Logica de entrenamiento
│ └── utils/ # Utilidades
├── tests/ # Tests pytest
├── charts/ # Graficos generados
├── logs/ # Logs de ejecucion
└── reports/ # Reportes de backtesting
Instalacion
Con Conda (Recomendado)
# Crear entorno desde environment.yml
conda env create -f environment.yml
conda activate trading-ml
# O instalar dependencias manualmente
pip install -r requirements.txt
Variables de Entorno
cp .env.example .env
# API
ML_ENGINE_HOST=0.0.0.0
ML_ENGINE_PORT=8000
# Database
MONGO_URI=mongodb://localhost:27017
POSTGRES_URI=postgresql://user:pass@localhost:5432/trading
# GPU (opcional)
CUDA_VISIBLE_DEVICES=0
# Logging
LOG_LEVEL=INFO
# Trading Data
POLYGON_API_KEY=your_polygon_key
Scripts Disponibles
# Iniciar API server
python -m uvicorn src.api.main:app --reload --port 8000
# Entrenamiento de modelos
python -m src.training.train_models --config config/models.yaml
# Backtesting
python -m src.backtesting.run_backtest --symbol BTCUSD --timeframe 1h
# Tests
pytest tests/ -v
Modelos Implementados
Attention Models
- TemporalAttention: Atencion temporal para series de tiempo
- MultiHeadAttention: Atencion multi-cabeza para features
XGBoost Models
- DirectionalClassifier: Prediccion de direccion (LONG/SHORT/NEUTRAL)
- ProbabilisticRegressor: Estimacion de probabilidad de movimiento
Meta-Models
- EnsembleVoting: Combinacion de modelos por votacion
- StackedEnsemble: Stacking de predicciones
API Endpoints
Predicciones
GET /api/v1/predictions/{symbol}
POST /api/v1/predictions/batch
Senales
GET /api/v1/signals/active
GET /api/v1/signals/{symbol}/history
Health
GET /api/v1/health
GET /api/v1/models/status
Configuracion de Modelos
# config/models.yaml
models:
attention:
hidden_size: 256
num_heads: 8
dropout: 0.1
xgboost:
n_estimators: 500
max_depth: 8
learning_rate: 0.01
features:
lookback_periods: [5, 10, 20, 50, 100]
technical_indicators:
- RSI
- MACD
- Bollinger
- ATR
Backtesting
# Backtest simple
python -m src.backtesting.run_backtest \
--symbol BTCUSD \
--timeframe 1h \
--start 2024-01-01 \
--end 2024-12-31
# Backtest con parametros custom
python -m src.backtesting.run_backtest \
--config config/validation_oos.yaml \
--output reports/backtest_$(date +%Y%m%d).json
Entrenamiento
Entrenamiento Completo
python -m src.training.train_models \
--symbols BTCUSD ETHUSD \
--timeframes 1h 4h \
--epochs 100 \
--output models/
Entrenamiento Incremental
python -m src.training.incremental_train \
--model-path models/attention/latest.pt \
--new-data data/recent/
Testing
# Tests unitarios
pytest tests/unit/ -v
# Tests de integracion
pytest tests/integration/ -v
# Coverage
pytest --cov=src tests/
Docker
# Build imagen
docker build -t trading-ml-engine .
# Ejecutar con GPU
docker run --gpus all -p 8000:8000 trading-ml-engine
# Sin GPU
docker run -p 8000:8000 trading-ml-engine
Metricas y Monitoreo
- Precision de Direccion: > 55% target
- Sharpe Ratio: > 1.5 target
- Max Drawdown: < 15% limite
Logs en logs/ con formato JSON para integracion con sistemas de monitoreo.
Documentacion Relacionada
- Analisis ML Vuelta 1
- Analisis ML Vuelta 2
- Analisis ML Final
- Inventario ML
- Especificacion Factores de Atencion
- Reporte BTCUSD Fase 11
Proyecto: Trading Platform Version: 0.1.0 Actualizado: 2026-01-07