Score de Riesgo de Cartera en Tiempo Real Riesgo de cartera y régimen de mercado con Hidden Markov

Python HMM hmmlearn NumPy Pandas yfinance FastAPI scikit-learn
Score de Riesgo de Cartera en Tiempo Real

Sobre el Proyecto

Sistema de análisis y scoring de riesgo para carteras de inversión. Combina un GaussianHMM entrenado (Hidden Markov Model, 3 regímenes de mercado: Bull/Neutral/Bear) con análisis de correlaciones dinámicas entre activos para evaluar el riesgo real de una cartera en tiempo real con datos de Yahoo Finance.

Cómo medir la efectividad real del modelo

Para modelos financieros de gestión de riesgo, las métricas de clasificación (F1, MCC) son útiles pero no suficientes. Las métricas de backtest son las que importan en finanzas:

  • Sharpe 2.12 vs. 1.11 (buy-and-hold): la estrategia HMM (estar largo solo en Bull/Neutral, fuera en Bear) genera el doble de rentabilidad por unidad de riesgo. Sharpe >2 es considerado excelente en gestión activa de carteras.
  • CVaR reducido un 32%: el CVaR (Conditional Value at Risk) mide la pérdida media en los peores días. La estrategia HMM reduce la cola de riesgo un 32%: en las peores jornadas históricas, la pérdida esperada se reduce de -2.2% a -1.5% diario.
  • Max Drawdown de -21.9% a -7.5%: el drawdown máximo mide la mayor caída desde máximos. El HMM pasa fuera del mercado en fases Bear, reduciendo la caída máxima en 14 puntos porcentuales.
  • F1 Bear detection = 0.33, MCC = 0.18: el HMM es un modelo no supervisado — descubre patrones estadísticos latentes, no optimiza F1 directamente. La calidad del modelo se mide por su utilidad en backtest (Sharpe, CVaR) más que por F1 vs. una etiqueta arbitraria.

Arquitectura del Modelo

  • GaussianHMM (3 estados): entrenado sobre 1.255 días reales de SPY (40%), IBEX35 (20%), EWP (15%), STOXX50E (15%), TLT (5%) y GLD (5%). Estados mapeados a Bull/Neutral/Bear según retorno medio de cada régimen.
  • Features HMM (4): retorno diario log, volatilidad rolling 20 días, momentum 5 días, momentum 20 días.
  • Regímenes detectados: Bear (-29% anual, alta vol), Neutral (+12% anual), Bull (+35% anual, baja vol).
  • Risk Score (0-100): composición ponderada de volatilidad de cartera (50%), régimen HMM (30%) e índice de concentración HHI (20%).
  • Métricas en tiempo real: VaR 95%, CVaR 95%, Sharpe, Sortino, Max Drawdown — calculados sobre datos reales de Yahoo Finance en cada análisis.

Datos y Fuentes

Precios históricos vía Yahoo Finance API (yfinance). 19 activos: Large-cap (AAPL, MSFT, NVDA...), ETFs (SPY, QQQ, GLD, TLT), Cripto (BTC, ETH) y Materias Primas. Datos actualizados en cada petición.

Stack Técnico

Python 3.12 · hmmlearn · NumPy · Pandas · yfinance · FastAPI · scikit-learn · joblib · Laravel (proxy HTTP)

Integración, datos y licencia

  • Integración: API REST propia (FastAPI) con 3 endpoints documentados en el repositorio; se puede consumir desde cualquier lenguaje o plataforma, con especificación OpenAPI autogenerada.
  • Tratamiento de datos: el procesamiento se realiza íntegramente en el servidor del proyecto, sin enviar datos a servicios de IA de terceros. No se almacenan las consultas de la demo.
  • Nota: Proyecto educativo de análisis de riesgo: no constituye asesoramiento financiero.
  • Licencia: MIT — uso libre, incluido comercial, manteniendo el aviso de copyright. El repositorio contiene la aplicación completa y puede desplegarse en infraestructura propia. El código es gratuito; los costes de motor de IA, infraestructura, implantación y mantenimiento corren por cuenta de quien lo despliega (no se ofrece soporte ni consultoría).

¿Cómo lo integro?

Disponible ahora: POST /analyse con la composición de la cartera devuelve su score de riesgo.

Integraciones habituales en este sector (valoradas como vía recomendada; salvo que se indique lo contrario, no vienen implementadas — el código está preparado para añadirlas):

  • Agregación bancaria (PSD2 / Open Banking): leer la cartera real del usuario desde su banco con su consentimiento, en vez de que la introduzca a mano. Es la integración que más cambia la experiencia.
  • APIs de bróker (MyInvestor, Alpaca, IBKR): misma idea a nivel de cartera de inversión.
  • Excel / CSV: el analista financiero medio trabaja así: la carga masiva desde hoja de cálculo es la integración más usada en la práctica.
Mapa del bucleDisparador: Quiero saber si mi cartera aguantaría un cambio de régimen del mercado.. Acción: Clasifica el mercado en uno de tres regímenes con un HMM gaussiano y recalcula correlaciones y métricas de riesgo.. Medición: El régimen detectado, el VaR y el CVaR, y el peor drawdown que ha tenido la cartera.. Decisión: Decido si reduzco posiciones, si cubro o si la dejo como está..EL BUCLE QUE CIERRAPara quien lleva su propia carterade inversión1DISPARADORQuiero saber si mi carteraaguantaría un cambio derégimen del mercado.2ACCIÓNClasifica el mercado en unode tres regímenes con un HMMgaussiano y recalculacorrelaciones y métricas deriesgo.3MEDICIÓNEl régimen detectado, el VaRy el CVaR, y el peordrawdown que ha tenido lacartera.4DECISIÓNDecido si reduzcoposiciones, si cubro o si ladejo como está.Cada semanalo hace una personalo hace el software

Descargar el diagrama (SVG)

Resultados

Sharpe 2.12
Sharpe ratio (HMM vs. B&H)
Sharpe 2.12 estrategia HMM vs 1.11 buy-and-hold. Genera el doble de rentabilidad por unidad de riesgo. Entrenado con 1.255 días reales de SPY, IBEX35, STOXX50E, TLT, GLD (5 años)
CVaR -32%
Reducción de riesgo de cola
CVaR 95% reducido un 32% (de -2.2% a -1.5% diario). MaxDrawdown reducido de -21.9% a -7.5%. El HMM sale del mercado en fases Bear antes de las caídas grandes
3 regímenes
Bull / Neutral / Bear (HMM)
GaussianHMM detecta 3 regímenes estadísticos: Bear (-29%/año, alta vol), Neutral (+12%/año), Bull (+35%/año). Risk Score 0-100 en tiempo real con VaR, CVaR, Sharpe, Sortino

Límites

Lo que no hace

  • No recomienda comprar ni vender: mide riesgo, no da señales de entrada.
  • No predice el precio: clasifica el régimen y cuantifica la exposición.
  • Tres regímenes y no más: alcista, neutral y bajista.

Decisiones

Por qué está construido así

  • HMM gaussiano de tres regímenes en vez de una regla sobre la volatilidad

    Una regla de volatilidad reacciona cuando el movimiento ya pasó. El HMM asigna probabilidad de régimen con la serie entera.

  • CVaR además del VaR en vez de quedarse en el VaR

    El VaR dice dónde está el corte; el CVaR dice cuánto se pierde de media cuando el mercado se pasa de ese corte.

Try Live Demo View Code

Cómo está construido

Regímenes de mercado con Hidden Markov Models: un score de riesgo que bate al buy-and-hold El mercado alterna entre estados ocultos —alcista, neutral, bajista— que no observamos directamente pero condicionan todo. Modelé esos regímenes con un Gaussian HMM...