Acceder
1. Acceso al código Python

1. 1Acceso en Google Colaboratory.

> Introducir la dirección en la barra de direcciones.

"5 Estrategia_cruce_EMAs_3.ipynb":   

Todo el código en un único script: 

"STR_EMA&RSI&ATR_1.ipynb";   https://github.com/akitxu/Python-Trading-Gestion-Conservadora/blob/master/Estrategias/STR_EMA%26RSI%26ATR_1.ipynb

> Pulsar en "Abrir con Google Colaboratory" en la parte superior de la pantalla.

1.2. Acceso en modo lectura en GitHub

"5 Estrategia_cruce_EMAs_3.ipynb":   https://github.com/akitxu/Python-Trading-Gestion-Conservadora/blob/master/Teoria/5%20Validacion_EMAs%26RSI%26ATR_1.ipynb   

1.3 Todo el código en un único script:

"STR_EMA&RSI&ATR_1.ipynb";   https://github.com/akitxu/Python-Trading-Gestion-Conservadora/blob/master/Estrategias/STR_EMA%26RSI%26ATR_1.ipynb

2. Validación del cruce de EMA's con el RSI.
Esta entrada al Blog es continuación de "7 Estrategia de Cruce de Medias Móviles Exponenciales (V)"

Llamamos a la función "generate_confirmed_signals(data, th_rsi_buy, th_rsi_sell)" que nos devuelve la tabla siguiente:


2.1 Interpretación del resultado
Para analizar la tabla resultante de la validación de puntos recomendados por una estrategia de cruce de medias móviles exponenciales (EMAs) y el Índice de Fuerza Relativa (RSI), seguiría estos pasos:

2.1.1 Interpretación de las Columnas.

Close: Precio de cierre del activo en la fecha correspondiente.
EMA_short y EMA_long: Valores de las medias móviles exponenciales de corto y largo plazo, respectivamente. Estas medias ayudan a identificar la tendencia del mercado.
Buy_sell_signals: Señales generadas por la estrategia:
    1.0 indica una señal de compra (Golden Cross, cuando EMA corto cruza por encima de EMA largo).
    -1.0 indica una señal de venta (Death Cross, cuando EMA corto cruza por debajo de EMA largo).
    NaN o cualquier otro valor implica que no se generó una señal en esa fecha.
Volume: Volumen de negociación, que puede ser un indicador de la fortaleza de la señal.
RSI_14: Índice de Fuerza Relativa calculado con un período de 14 días. Indica condiciones de sobrecompra (RSI > 70) o sobreventa (RSI < 30).
Buy_signal y Sell_signal: Indicadores booleanos (True/False) que confirman si la señal de compra o venta fue validada por otros indicadores, como el RSI.

2.1.2. Análisis General

Validación de Señales de Compra/Venta:

    Verifica si las señales de compra (Buy_signal) y venta (Sell_signal) están alineadas con las condiciones de mercado (es decir, si la estrategia basada en el cruce de EMA está confirmada por el RSI).

    Un True en Buy_signal sugiere que la señal de compra es respaldada por el RSI (normalmente RSI < 30 para compra).
    Un True en Sell_signal sugiere que la señal de venta es respaldada por el RSI (normalmente RSI > 70 para venta).

Señales y Volatilidad del Mercado:

    Observa cómo el volumen (Volume) varía en torno a las señales de compra/venta. Un aumento significativo en el volumen junto con una señal podría indicar una mayor convicción del mercado.

Condiciones de Mercado Extremo:

    Evalúa situaciones donde el RSI está en niveles extremos (por ejemplo, cerca de 0 o 100) y observa cómo las señales de cruce de EMA se comportan en esos puntos.

2.1.3 Análisis Detallado por Periodo

Puntos de Compra:

    2010-01-05: La señal de compra fue generada, pero no fue confirmada por el RSI (Buy_signal es False). 
    2011-04-05: Señal de compra, no confirmada por el RSI, pero con un Sell_signal activo, lo que sugiere una potencial contradicción. 
    2012-12-20: Señal de compra sin confirmación del RSI. 
    2017-01-06, 2019-11-27 y 2021-01-08: Similar a las anteriores, señal de compra sin confirmación RSI. 
    2023-01-17: Señal de compra con un Sell_signal activo, lo que podría indicar un contexto de mercado complicado o de volatilidad alta. 

Puntos de Venta:  

    2010-01-12 y 2011-05-25: Señal de venta sin confirmación por el RSI. 
    2015-09-09: Similar, señal de venta no respaldada por RSI. 
    2020-03-12: Señal de venta con un RSI muy bajo (6.32), indicando condiciones de sobreventa extremas. Aquí, el Buy_signal es True, lo que sugiere un posible punto de inflexión o reversión. 
    2022-03-04: Señal de venta sin confirmación RSI. 
    2024-05-14: Señal de venta sin datos de EMA (NaN), lo que podría sugerir que el cálculo de EMA no fue posible, tal vez debido a la falta de datos históricos suficientes. 

2.1.4. Conclusiones

Confirmación de Señales: La mayoría de las señales de compra y venta no están confirmadas por el RSI, lo que sugiere que la estrategia basada solo en el cruce de EMA puede ser mejorada incorporando el RSI como un filtro. 
Situaciones de Mercado Extremo: Es importante prestar atención a las señales generadas en condiciones extremas (como el 2020-03-12) donde el RSI está en niveles muy bajos, ya que estos pueden ser puntos de inflexión importantes. 
Posibles Mejoras: Incorporar más filtros o reglas adicionales para la validación de señales podría mejorar la robustez de la estrategia.

2.1.5. Recomendaciones

Revisión de Estrategia: Deberíamos ajustar la estrategia para que las señales solo se activen cuando tanto el cruce de EMA como el RSI estén alineados.
Backtesting: Realizar un backtest sobre un periodo más largo para analizar la efectividad de la estrategia bajo diferentes condiciones de mercado.
Optimización de Parámetros: Podríamos probar diferentes periodos para las EMAs y el RSI para optimizar la estrategia y encontrar configuraciones que generen señales más fiables.

2.2. Facilitando el análisis

Para facilitar el análisis, creamos un algoritmo que, básicamente, hace lo siguiente. 
La señal de compra (Buy) se considera válida solo si la estrategia genera una señal de compra y, al mismo tiempo, las condiciones del mercado (como el RSI) confirman esta señal. De manera similar, la señal de venta (Sell) se valida solo si la estrategia genera una señal de venta y está respaldada por las condiciones del mercado. Esto ayuda a evitar falsas señales y mejorar la precisión de las operaciones.

El código nos devuelve


El hecho de que ninguna señal de cruce de EMAs sea validada por el RSI en este ejemplo puede deberse a varias razones posibles. A continuación explicamos algunas causas comunes y cómo podríamos abordarlas:

2.2.1. Verificar los umbrales del RSI: 

    Posible causa: Los umbrales de compra (th_rsi_buy = 30) y venta (th_rsi_sell = 70) que estámos utilizando podrían ser demasiado estrictos o no estar alineados con los movimientos del mercado en el conjunto de datos. Esto haría que pocas señales del RSI caigan dentro de esos rangos en los momentos clave. 
    Solución: Consideremos ajustar estos umbrales para que sean más flexibles, por ejemplo, 40 para compra y 60 para venta, o bien utilizar percentiles de RSI que se ajusten mejor a los datos históricos. 

2.2.2. Diferencias temporales entre las señales: 

    Posible causa: Es posible que los cruces de EMAs y las señales del RSI no ocurran en el mismo punto temporal, es decir, el cruce de EMAs puede estar indicando una señal de compra o venta, pero el RSI podría haber pasado por su umbral días antes o después. 

    Solución: Verifica si las señales de RSI ocurren cerca (antes o después) de los cruces de EMAs. Podríamos añadir un rango de días de tolerancia para que una señal de RSI se considere válida si ocurre dentro de ese rango en torno al cruce de las EMAs. 

2.3 Ajuste usando percentiles.

En lugar de realizar ajustes usando los umbrales del RSI (30-70, 60-40, etc) probaremos la estrategia utilizando percentiles.
Los percentiles son medidas estadísticas que dividen un conjunto de datos en 100 partes iguales. Cada percentil indica el valor por debajo del cual se encuentra un cierto porcentaje de los datos.

**Percentil 25:** También llamado primer cuartil, es el valor por debajo del cual se encuentra el 25% de los datos.
**Percentil 50:** Es la mediana, el valor central que divide los datos en dos mitades iguales, con el 50% de los datos por debajo y el 50% por encima.
**Percentil 75:** También llamado tercer cuartil, es el valor por debajo del cual se encuentra el 75% de los datos.

Los percentiles son útiles para entender la distribución de los datos y determinar umbrales para análisis estadísticos o decisiones basadas en datos.

2.3.1 Resultado usando perceptiles

Cuando el cruce de EMAs indica una compra, pero el RSI señala una venta, es una indicación de que el mercado podría estar en una situación compleja, donde una tendencia alcista podría estar alcanzando niveles de sobrecompra a corto plazo. En estos casos, se recomienda precaución, y tal vez esperar una confirmación adicional o considerar la posibilidad de una corrección antes de entrar en una posición de compra.



En el contexto de análisis técnico, cuando hay una señal contradictoria entre el cruce de medias móviles exponenciales (EMA) y el índice de fuerza relativa (RSI), como en este ejemplo, donde el cruce de EMAs indica una señal de compra (Buy_sell_signals = 1.0), pero el RSI está emitiendo una señal de venta (Sell_signal = True), se pueden hacer varias interpretaciones:

Sobrecompra o Señal de Divergencia:

- Interpretación del RSI: Un RSI alto (por ejemplo, superior a 70) que emite una señal de venta indica que el activo podría estar en un estado de sobrecompra, lo que sugiere que el precio podría corregirse a la baja en el corto plazo.
- Cruce de EMAs: El cruce de EMAs, por otro lado, es una señal de tendencia que indica un cambio positivo en el momentum a largo plazo, sugiriendo que el precio puede seguir subiendo.

En este caso, la contradicción sugiere que aunque la tendencia a largo plazo parece positiva, el precio podría estar temporalmente sobrevalorado y susceptible a una corrección. Esto podría ser una señal para que los inversores sean cautelosos, quizás esperando un retroceso antes de entrar al mercado o ajustando sus posiciones.

Confirmación y Fortalecimiento de la Tendencia:

La señal de compra generada por el cruce de EMAs puede ser vista como un indicador de que una nueva tendencia alcista está comenzando. Sin embargo, si el RSI da una señal de venta inmediatamente, podría significar que el precio ha subido rápidamente y podría haber una pequeña corrección antes de que continúe la tendencia alcista.

Precaución ante una Falsa Señal:

Una señal de compra de EMA combinada con una señal de venta del RSI puede sugerir que la señal de compra podría ser débil o potencialmente falsa. En este caso, se podría esperar una mayor confirmación antes de actuar, como esperar que el RSI vuelva a niveles más neutros o que el cruce de EMAs se fortalezca.

Posible Zona de Consolidación:

También puede indicar que el activo está entrando en una fase de consolidación, donde el precio podría moverse lateralmente antes de elegir una dirección clara. En este caso, tanto la señal de compra del EMA como la señal de venta del RSI podrían no ser suficientes para tomar una decisión clara de entrada o salida.

Estrategia Combinada

Los traders pueden optar por usar ambos indicadores en combinación: por ejemplo, seguir la señal del cruce de EMAs, pero utilizar la señal del RSI para gestionar riesgos, como colocar stops más ajustados o esperar un mejor punto de entrada después de una pequeña corrección.

2.4 Establecer días de tolerancia.

El comportamiento que observamos, donde se obtienen dos señales de compra consecutivas sin una venta intermedia, se debe a la lógica que estamos utilizando para validar las señales. El uso de una ventana de días para validar las señales de compra y venta permite que varias señales de compra puedan ser validadas antes de que ocurra una señal de venta, especialmente si no hay un cruce de venta en el período especificado.

Para evitar este problema, podemos modificar la lógica de validación para asegurarnos de que una señal de compra solo sea validada si no ha sido precedida por otra señal de compra que ya fue validada, es decir, deberíamos resetear la ventana de validación después de una señal validada. Esto se puede hacer mediante un bucle o lógica más compleja que verifique el estado anterior.

En el script siguiente, tenemos la lógica para que la señal de compra o venta solo se active si dentro de los últimos 5 días (incluyendo el día actual) se cumple la condición de RSI.

- Ventana de Tolerancia: Se implementa la ventana de tolerancia de 5 días utilizando data['RSI_14'].iloc[i-tolerance_days:i+1]. 

- Confirmación de Señales: Las señales de compra y venta ahora se confirman solo si: 

    El RSI cumple con la condición dentro de la ventana de tolerancia. 
    La señal coincide con la recomendación de la estrategia EMA (Buy_sell_signals). 
    No es la misma que la última señal generada. 

- Integración con EMA: Se verifica que la señal de RSI coincida con la señal de la estrategia EMA antes de confirmarla.

El resultado es:


¿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!