Acceder

(II) Optimiza tus Estrategias de Trading: Analiza Mercados Alcistas, Bajistas y Laterales con Python

En este artículo presentamos una herramienta en Python que clasifica automáticamente el tipo de mercado —alcista, bajista, lateral, corrección, rally o recesión— a partir de medias móviles, cambios porcentuales y volatilidad. Esta clasificación diaria permite analizar cualquier activo con un enfoque más riguroso y cuantitativo.

El objetivo es ofrecer a los inversores una forma sencilla y objetiva de identificar en qué entorno se encuentra el mercado en cada momento. Esto resulta especialmente útil para evaluar la solidez de una estrategia de inversión: no solo importa la rentabilidad global, sino cómo se comporta la estrategia en fases alcistas, en periodos de alta volatilidad o durante recesiones.

El artículo incluye un notebook descargable para ejecutar el análisis tanto en Google Colab como en un ordenador local, junto con instrucciones para incorporar datos propios en formato CSV. Una herramienta práctica para quienes buscan comprender mejor el contexto del mercado y poner a prueba sus estrategias con mayor precisión.

1. Notebook del Proyecto (descarga y ejecución)


👉 Descargar Notebook del Analizador de Mercado

Para Google Drive :
'Identificar_tipo_mercado_1.ipynb'
Para tu ordenador: 
'Identificar_tipo_mercado_1.ipynb'

Este notebook permite:

    Ejecutar el análisis directamente en Google Colab sin instalaciones.
    O ejecutarlo en tu propio ordenador con Python estándar.

Dentro del notebook encontrarás instrucciones detalladas para:

    Descargar cotizaciones desde yfinance.
    Cargar tus propios CSV.
    Analizar fondos o activos individuales o múltiples.

2. Criterios para Identificar el Tipo de Mercado


El sistema clasifica cada día del mercado combinando tres dimensiones:

    Tendencia (medias móviles)
    Momentum (cambios porcentuales)
    Volatilidad (desviación estándar anualizada)

A continuación se explica cada criterio.

2.1. Medias Móviles (MA)

Se calculan dos medias móviles:

  •     MA_Short: media móvil de n días (por defecto 20)
  •     MA_Long: media móvil de m días (por defecto 50)

Criterio de tendencia

  •     Alcista:     MA_Short > MA_Long
  •     Bajista:     MA_Short < MA_Long
  •     Formula:     MA = (Close_1 + Close_2 + ... + Close_n) / n

2.2. Cambio Porcentual a 30 Días (Pct_Change_30d)

Mide la variación del precio en los últimos 30 días.

Criterios

  •     Rally:         Pct_Change_30d > rally_threshold   (por defecto +15%)
  •     Corrección:    Pct_Change_30d < correction_threshold   (por defecto −10%)
  •     Formula :      Pct_Change_30d = (Close_t − Close_(t−30)) / Close_(t−30)

2.3. Volatilidad (Volatility)


  • Se calcula la desviación estándar anualizada de los retornos logarítmicos (ventana de 20 días).
  • Retorno logarítmico:       Log_Return_t = ln(Close_t / Close_(t−1))
  • Volatilidad anualizada:    Volatility = stdev(Log_Return últimos 20 días) * sqrt(252)

Criterio para detectar Recesión

Un mercado se clasifica como Recesión si:

  •     Está en tendencia bajista, y
  •     La volatilidad supera el percentil 75 de su serie histórica.

2.4. Clasificación por defecto


Si no se cumplen los criterios anteriores:

    Lateral


3. Resumen de la Lógica de Clasificación


El sistema sigue una secuencia jerárquica:

1. Tendencia (Medias Móviles)

  •     MA_Short > MA_Long → Alcista
  •     MA_Short < MA_Long → Bajista

2. Momentum (Cambios Porcentuales)

  •     Rally → subidas fuertes
  •     Corrección → caídas fuertes

3. Volatilidad (Recesiones)

  •     Mercado bajista + volatilidad alta → Recesión

4. Si nada aplica → Lateral

4. Parámetros Ajustables


  •     short_ma, long_ma → ventanas de medias móviles
  •     rally_threshold, correction_threshold → umbrales de momentum
  •     Ventana de volatilidad → por defecto 20 días
  •     Percentil de estrés → por defecto 75

Permite adaptar el modelo a distintos activos y estilos de inversión.

5. ¿Por qué este enfoque?


Combina tres dimensiones complementarias:

    ✔️ Tendencia → visión estructural
    ✔️ Momentum → fuerza del movimiento
    ✔️ Volatilidad → riesgo y estrés del mercado

El resultado es una clasificación:
  •     Robusta
  •     Interpretables
  •     Adaptable

Útil para análisis cuantitativo y para inversores que buscan reglas claras para entender el contexto del mercado.

6. Cómo Usar el Script para Probar Estrategias de Trading


El script permite:

1️⃣ Clasificación automática del mercado día a día

Tipos posibles:

    Alcista
    Bajista
    Lateral
    Corrección
    Rally
    Recesión

2️⃣ Selección interactiva de períodos

El método analizar_y_mostrar() permite:

    Introducir fechas de inicio y fin
    Obtener el tipo de mercado diario
    Generar una tabla con rangos consecutivos del mismo tipo

 Si detectas algún error, tienes sugerencias de mejora o crees que este análisis podría ampliarse en alguna dirección, estaré encantado de leerte en los comentarios. Toda aportación es bienvenida: desde matices técnicos hasta ideas para futuras versiones del notebook o nuevas funcionalidades. Este proyecto pretende ser útil y práctico para la comunidad, y tu feedback es fundamental para seguir mejorándolo.


¿Te ha gustado mi artículo?
Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico
Accede a Rankia
¡Sé el primero en comentar!