Detección de Volatilidad Anómala

Python PyTorch TFT FastAPI yfinance NumPy Quantile Regression Time Series Anomaly Detection
Detección de Volatilidad Anómala

Sobre el Proyecto

Sistema de detección de movimientos anómalos en activos financieros combinando un Temporal Fusion Transformer (TFT-lite) para predicción de volatilidad a 5 días y análisis de sentimiento de noticias con arquitectura FinBERT-inspired. Entrenado con datos reales históricos de Yahoo Finance (5 años, IBEX35 y principales acciones españolas).

Cómo mide el rendimiento (evaluación verificable en artifacts)

El modelo se evalúa sobre 1.244 muestras reales que no vio durante el entrenamiento (validación temporal, 5 tickers con datos 100% de Yahoo Finance). Al ser un pronosticador de cuantiles sin etiquetas verdaderas de "anomalía", las métricas honestas son las de calibración y error, no un F1 de detección:

  • Calibración casi perfecta: la banda q90 contiene la volatilidad realizada el 90.8% de las veces (ideal: 90%) y el intervalo q10–q90 el 80.2% (ideal: 80%). Las horquillas no están infladas para parecer seguras.
  • Error de la mediana (q50): MAE 0.0015, un 38% menor que el baseline naïve de persistencia (predecir que la volatilidad próxima es la vol de los últimos 5 días, MAE 0.0024).
  • Tasa de señales de anomalía: 9.2% de los días en validación, consistente con el diseño (vol realizada > banda q90).

Arquitectura del Modelo

  • Variable Selection Network (VSN): aprende automáticamente qué features son relevantes en cada momento temporal.
  • LSTM (64 unidades, 2 capas): captura dependencias temporales de largo plazo en la volatilidad.
  • Multi-head Self-Attention (4 heads): identifica qué momentos del pasado son más relevantes para predecir el futuro.
  • Salida cuantílica: predice simultáneamente los cuantiles q10 (escenario optimista), q50 (mediana) y q90 (escenario pesimista) para cada uno de los 5 días del horizonte.
  • Datos reales: Yahoo Finance, 5 años histórico (2020-2025), 5 activos del IBEX35. 100% datos reales, 0 sintéticos.

Tecnologías

Python · PyTorch · yfinance · FastAPI · NumPy · scikit-learn · Laravel

Resultados

0.91 / 0.90
calibración q90 (real vs ideal)
intervalo q10–q90: cobertura 80.2% vs ideal 80% — verificado en 1.244 muestras reales
−38% MAE
frente a baseline naïve
q50 MAE 0.0015 vs 0.0024 del baseline de persistencia (vol 5d)
5/5 reales
tickers con datos Yahoo Finance
IBEX35, SAN, ITX, BBVA, TEF — 5 años de histórico, sin sintéticos
5 días
horizonte con bandas
anomalía señalada cuando la vol realizada supera la banda q90

Funcionalidades implementadas

  • Predicción cuantílica, no puntual. El modelo genera una banda de incertidumbre realista. Saber que la volatilidad estará entre 1.1% y 2.8% es más accionable que una cifra exacta incierta.
  • Detección automática de anomalías. Si la volatilidad real supera el cuantil q90, el sistema emite una alerta. No requiere umbrales manuales — el propio modelo define qué es "normal".
  • Fusión cuantitativa + cualitativa. El análisis de sentimiento de noticias complementa la predicción técnica. Movimientos bruscos suelen anticiparse en el lenguaje antes de reflejarse en el precio.
  • Arquitectura TFT con selección de variables. El Variable Selection Network aprende qué features son relevantes en cada momento (volatilidad realizada, día de la semana, ciclo mensual, etc.).
Try Live Demo View Code
🤖 Asistente Virtual