# 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) ```bash # 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 ```bash cp .env.example .env ``` ```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 ```bash # 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 ```yaml # 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 ```bash # 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 ```bash python -m src.training.train_models \ --symbols BTCUSD ETHUSD \ --timeframes 1h 4h \ --epochs 100 \ --output models/ ``` ### Entrenamiento Incremental ```bash python -m src.training.incremental_train \ --model-path models/attention/latest.pt \ --new-data data/recent/ ``` ## Testing ```bash # Tests unitarios pytest tests/unit/ -v # Tests de integracion pytest tests/integration/ -v # Coverage pytest --cov=src tests/ ``` ## Docker ```bash # 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](../../docs/99-analisis/ML-MODELOS-VUELTA1-ANALISIS.md) - [Analisis ML Vuelta 2](../../docs/99-analisis/ML-MODELOS-VUELTA2-ANALISIS.md) - [Analisis ML Final](../../docs/99-analisis/ML-MODELOS-VUELTA3-FINAL.md) - [Inventario ML](../../docs/90-transversal/inventarios/ML_INVENTORY.yml) - [Especificacion Factores de Atencion](../../docs/99-analisis/ET-ML-FACTORES-ATENCION-SPEC.md) - [Reporte BTCUSD Fase 11](../../docs/99-analisis/REPORTE-ENTREGA-FASE11-BTCUSD.md) --- **Proyecto:** Trading Platform **Version:** 0.1.0 **Actualizado:** 2026-01-07