ML Engine de trading-platform - Workspace V2
Go to file
Adrian Flores Cortes a22fb11968 [GAP-2] feat: Wire HierarchicalPipeline into prediction service
- Added HierarchicalPipeline initialization in PredictionService._load_models()
- Added HierarchicalResult dataclass for typed responses
- Added get_hierarchical_prediction() method for full L0→L1→L2 predictions
- Added get_hierarchical_model_info() method for model introspection
- Added hierarchical_available property
- Added API endpoints:
  - GET /api/hierarchical/{symbol} - Full 3-level prediction
  - GET /api/hierarchical/{symbol}/models - Model info per symbol
  - GET /api/hierarchical/status - Pipeline status
- Updated health endpoint to include hierarchical_available flag

This completes GAP #2: L1→L2 Hierarchical Predictor integration.
The pipeline now uses symbol-specific metamodels (XGBoost or Neural Gating)
to synthesize 5m and 15m base model predictions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 07:05:59 -06:00
charts/XAUUSD feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
config config: Deprecate MySQL and update PostgreSQL credentials 2026-01-25 05:52:50 -06:00
models feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
prompts feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
reports feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
scripts feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
src [GAP-2] feat: Wire HierarchicalPipeline into prediction service 2026-01-25 07:05:59 -06:00
tests feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
.env.example feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
.gitignore feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
Dockerfile feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
environment.yml feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
MIGRATION_REPORT.md feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
pytest.ini feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
README.md feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00
requirements.txt feat: Initial commit - ML Engine codebase 2026-01-18 04:27:40 -06:00

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


Proyecto: Trading Platform Version: 0.1.0 Actualizado: 2026-01-07