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 y obtuve Sharpe 2.12 frente a 1.11 del buy-and-hold.
Los mercados no se comportan igual todo el tiempo. Hay periodos de calma alcista, periodos neutrales y periodos de pánico. El problema es que ese "régimen" es un estado oculto: no viene etiquetado en los datos, solo lo intuimos por cómo se comportan los retornos y la volatilidad. Es el escenario perfecto para un Hidden Markov Model.
El problema
Quería un score de riesgo en tiempo real que no se limitara a mirar la volatilidad pasada, sino que identificara en qué régimen está el mercado ahora y ajustara la exposición en consecuencia.
La arquitectura: Gaussian HMM
Entrené un GaussianHMM (con hmmlearn) sobre 5 años de datos reales de cinco activos representativos: SPY, IBEX35, STOXX50E, TLT (bonos) y GLD (oro). El modelo asume que en cada momento el mercado está en uno de 3 estados ocultos —Bull, Neutral, Bear— y que los retornos observados se generan a partir de una gaussiana distinta según el estado. El algoritmo de Baum-Welch aprende las matrices de transición y las distribuciones de emisión sin que yo etiquete nada.
Del régimen a la decisión
Una vez el modelo infiere el régimen actual (vía el algoritmo de Viterbi/forward), la estrategia ajusta la exposición: plena en Bull, reducida en Neutral, defensiva en Bear. Sobre esa base calculo además VaR al 95%, Sortino y un score de riesgo normalizado de 0 a 100.
Resultados (HMM vs. buy-and-hold)
- Sharpe: 2.12 frente a 1.11 del comprar-y-mantener.
- CVaR (riesgo de cola): reducido un 32%.
- Máximo drawdown: de -21,9% a -7,5%.
Lo interesante no es solo el mayor Sharpe, sino la brutal reducción del drawdown: el modelo se sale a tiempo de los regímenes bajistas.
Qué aprendí
Que los modelos de estados latentes son una forma honesta de capturar algo que los traders saben intuitivamente —"esto ha cambiado de tono"— sin caer en el sobreajuste de intentar predecir el precio exacto. El HMM no adivina el futuro; reconoce el presente mejor que la media móvil.
Sobre este proyecto
Score de Riesgo de Cartera en Tiempo Real
GaussianHMM (Hidden Markov Model) entrenado con 5 años de datos reales de SPY, IBEX35, STOXX50E, TLT y GLD. Detecta regímenes Bull/Neutral/Bear: Sharpe 2.12 vs. 1.11 buy-and-hold,...