1. Acceso al código.
1.1 Acceso en Google Colaboratory.
> Introducir la dirección en la barra de direcciones.
"5 Estrategia_cruce_EMAs_3.ipynb":
> Pulsar en "Abrir con Google Colaboratory" en la parte superior de la pantalla.
1.3 . 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.4 Todo el código en un único script:
"STR_EMA&RSI&ATR_1.ipynb";
Pulsar en "Abrir con Google Colaboratory" en la parte superior de la pantalla.
2. Introducción.
En entradas anteriores de este blog, hemos explorado conceptos fundamentales asociados a una estrategia de cruce de Medias Móviles Exponenciales (EMA's). También hemos discutido diversas opciones para validar las señales generadas por esta estrategia, incluyendo el establecimiento de umbrales y el análisis de máximos históricos dentro del período de estudio. Ahora, damos un paso más en la sofisticación de nuestra estrategia de trading. En esta nueva entrada, nos sumergiremos en un enfoque más complejo que combina tres poderosas herramientas de análisis técnico:
El cruce de Medias Móviles
El Índice de Fuerza Relativa (Relative Strength Index o RSI)
El Indicador de Volatilidad ATR (Average True Range)
Esta combinación nos permitirá obtener una visión más completa del mercado, integrando información sobre tendencias, momentum y volatilidad en nuestra toma de decisiones. Exploraremos cómo estos indicadores pueden trabajar en sinergia para generar señales de trading más robustas y fiables, potencialmente mejorando nuestros resultados en el mercado. Prepárate para elevar tu estrategia de trading a un nuevo nivel de sofisticación y eficacia.
3. Invocación de las clases
En este apartado seleccionamos como parámetros para el anáĺisis, los siguientes:
Parámetros de análisis
ticker = '^IBEX'
value_name = 'IBEX 35'
start_date = '2010-1-3'
end_date = '2024-5-15'
short_period = 50
long_period = 200
initial_capital = 100000
3.1. Clase "EMAsStrategy"
En este apartado, nos centraremos en la clase "EMAsStrategy", un componente fundamental de nuestra estrategia de trading que hemos explorado en entradas anteriores. Esta clase es crucial para nuestro análisis y toma de decisiones, proporcionando una serie de outputs valiosos:
Señales de Trading:
Identifica y devuelve los puntos específicos de compra y venta basados en el cruce de las Medias Móviles Exponenciales (EMA's).
Análisis de Rendimiento:
Calcula y presenta la evolución de la inversión a lo largo del tiempo.
Visualizaciones Gráficas:
Genera gráficos detallados que muestran:
a) La evolución histórica de las cotizaciones junto con las líneas de las EMA's.
b) Una comparación de rendimientos entre dos estrategias:
"Buy & Hold" (comprar y mantener)
"Buy & Sell" (comprar y vender según las recomendaciones de la estrategia)
Al invocar esta clase, obtenemos una visión completa y visual de cómo nuestra estrategia de cruce de EMA's se comporta en el mercado, permitiéndonos evaluar su eficacia y comparar su rendimiento con una estrategia pasiva de inversión.
3.2. Clase "PythonTecnicalIndicators"
En este apartado, presentamos la clase "PandasTechnicalIndicators", una herramienta poderosa diseñada para calcular una variedad de indicadores técnicos esenciales. Aunque nuestra estrategia actual "EMA&RSI&ATR" se enfocará principalmente en el RSI, esta clase está preparada para futuras implementaciones y análisis más complejos.
3.2.1 Indicadores Calculados
EMA (Medias Móviles Exponenciales)
Función: Suavizar la serie temporal de precios y resaltar tendencias.
Aplicación: Identificación de direcciones de mercado a corto y largo plazo.
RSI (Índice de Fuerza Relativa)
Función: Medir la velocidad y el cambio de los movimientos de precios.
Aplicación: Identificar condiciones de sobrecompra o sobreventa.
ADX (Índice de Movimiento Direccional Promedio)
Función: Medir la fuerza y dirección de una tendencia.
Aplicación: Determinar si un mercado está en tendencia o en rango.
MACD (Convergencia/Divergencia de Medias Móviles)
Función: Identificar cambios en la fuerza, dirección, impulso y duración de una tendencia.
Cálculo: Relación entre dos EMA, típicamente de 12 y 26 períodos.
Aplicación: Generar señales de compra y venta, identificar divergencias.
Oscilador Estocástico
Función: Comparar el precio de cierre con el rango de precios en un período determinado.
Aplicación: Identificar condiciones de sobrecompra/sobreventa y posibles puntos de reversión.
3.2.2 Enfoque Actual y Futuro
Para nuestra estrategia "EMA&RSI&ATR", nos centraremos principalmente en el uso del RSI. Sin embargo, la inclusión de estos indicadores adicionales en la clase "PandasTechnicalIndicators" nos proporciona una base sólida para futuras entradas del blog y el desarrollo de estrategias más sofisticadas. Esta clase versátil nos permitirá explorar y combinar diversos indicadores técnicos, adaptando nuestras estrategias a diferentes condiciones de mercado y objetivos de trading.
4. Cruce de EMA's e Indicadores de impulso:
Utilizamos indicadores de impulso como el Relative Strength Index (RSI), el MACD (Moving Average Convergence Divergence) o el estocástico para confirmar las señales de compra o venta generadas por el cruce de EMAs.
Ejemplo de Confirmación de Señales: Una señal de compra generada por el cruce de EMA's podría ser confirmada si:
El RSI está por encima de un nivel de sobreventa predefinido
El MACD muestra un cruce alcista
Nuestro código calculará estos indicadores de impulso para los datos históricos y generará señales de compra o venta confirmadas basadas en umbrales establecidos para cada indicador. Estos umbrales son ajustables según las preferencias y estrategias comerciales específicas.
En este notebook, nos centraremos específicamente en la combinación del cruce de EMA's con el RSI.
4.1 Cruce de EMA's y RSI
En este notebook, nos centraremos específicamente en la combinación del cruce de EMA's con el RSI. Esta estrategia nos permite:
Identificar momentos óptimos para entrar y salir del mercado
Maximizar el potencial de beneficios
Minimizar el riesgo de pérdidas
Para una comprensión más profunda de esta estrategia, recomendamos el siguiente video:
Estrategia de EMA's y RSI, estrategia a largo plazo.
5. Gráficos con cotizaciones, EMA's, volúmen y RSI.
5.1 Interpretación de los gráficos.
Para tomar decisiones de entrada y salida en el mercado utilizando estas gráficas, se pueden seguir las siguientes estrategias:
5.1.1. Gráfica de Cruce de EMAs (Parte Superior)
Señales de Compra:
Se generan cuando la EMA corta (línea azul) cruza por encima de la EMA larga (línea verde).
Además, si se acompaña de un aumento en el volumen (ver gráfica de volúmen), esto refuerza la señal de compra.
Marcadores de Compra (Triángulos hacia arriba): Estos marcadores en la gráfica indican puntos donde la estrategia sugiere comprar.
Señales de Venta:
Se generan cuando la EMA corta cruza por debajo de la EMA larga.
Un incremento en el volumen también refuerza esta señal.
Marcadores de Venta (Triángulos hacia abajo): Estos puntos sugieren momentos para vender.
Observaciones Adicionales:
Señales Falsas: Es posible que existan cruces temporales que generen señales falsas, por lo que es recomendable considerar otros indicadores (como el RSI en la gráfica inferior) antes de tomar una decisión.
Tendencias Prolongadas:* Un cruce de EMAs puede indicar el inicio de una tendencia prolongada, en cuyo caso, se puede mantener la posición por más tiempo.
5.1.2. Gráfica del RSI (Parte Inferior)
Condiciones de Sobrecompra y Sobreventa:
Línea del 70% (Horizontal Roja Superior): Cuando el RSI supera este nivel, el activo se considera sobrecomprado. Esto es una señal de que el precio podría estar próximo a corregirse a la baja. Combina esta señal con un cruce negativo de EMAs para considerar una venta.
Línea del 30% (Horizontal Roja Inferior): Cuando el RSI cae por debajo de este nivel, el activo se considera sobrevendido. Esto sugiere que podría estar a punto de subir. Combina esta señal con un cruce positivo de EMAs para considerar una compra.
Confirmación de Señales:
Entrada: Si el RSI está en la zona de sobreventa (cerca o por debajo de 30) y ocurre un cruce positivo de EMAs, esto es una fuerte señal para entrar en el mercado.
Salida: Si el RSI está en la zona de sobrecompra (cerca o por encima de 70) y ocurre un cruce negativo de EMAs, esto es una fuerte señal para salir del mercado.
5.1.3. Estrategia Combinada
Entrada al Mercado
Busca momentos en los que el RSI esté cerca del nivel 30 (sobreventa) y el cruce de EMAs genere una señal de compra.
Considera también el volumen para confirmar la fortaleza del movimiento.
Salida del Mercado:
Busca momentos en los que el RSI esté cerca del nivel 70 (sobrecompra) y el cruce de EMAs genere una señal de venta.
Nuevamente, confirma con el volumen.
5.1.4. Gráfica de Volúmen:
Volumen Alto: Puede indicar interés significativo en el activo, lo que podría dar validez a las señales de compra o venta generadas por las EMAs y el RSI.
Volumen Bajo: Puede sugerir que la tendencia actual podría no ser tan fuerte o significativa.
Al combinar esta gráfica con las anteriores, podrás tener una visión más completa de las condiciones del mercado y tomar decisiones de trading más informadas.
5.2 Validación del cruce de EMA's con el RSI.
En el código, "df_buy_sell_signals_total" contiene en la columna "Buy_sell_signals" con 0, 1 y -1, que indican la posición compradora o vendedora en el mercado.
"recomended_entry_exit_dates" contiene solamente los puntos de compra y venta recomendados por la estrategia de cruce de las EMA's.
Para un análisis completo, podemos comenzar utilizando "df_buy_sell_signals_total" para evaluar cómo se desarrolla la estrategia a lo largo del tiempo y luego usar "recomended_entry_exit_dates" para realizar un análisis más profundo de los puntos de entrada y salida específicos.
Para una estrategia de trading más simplificada, "recomended_entry_exit_dates" nos dará una visión clara y concisa de los momentos de cambio crítico en las posiciones.
La ejecución del 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:
5.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.
5.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.
1.1 Acceso en Google Colaboratory.
> Introducir la dirección en la barra de direcciones.
"5 Estrategia_cruce_EMAs_3.ipynb":
> Pulsar en "Abrir con Google Colaboratory" en la parte superior de la pantalla.
1.3 . 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.4 Todo el código en un único script:
"STR_EMA&RSI&ATR_1.ipynb";
Pulsar en "Abrir con Google Colaboratory" en la parte superior de la pantalla.
2. Introducción.
En entradas anteriores de este blog, hemos explorado conceptos fundamentales asociados a una estrategia de cruce de Medias Móviles Exponenciales (EMA's). También hemos discutido diversas opciones para validar las señales generadas por esta estrategia, incluyendo el establecimiento de umbrales y el análisis de máximos históricos dentro del período de estudio. Ahora, damos un paso más en la sofisticación de nuestra estrategia de trading. En esta nueva entrada, nos sumergiremos en un enfoque más complejo que combina tres poderosas herramientas de análisis técnico:
El cruce de Medias Móviles
El Índice de Fuerza Relativa (Relative Strength Index o RSI)
El Indicador de Volatilidad ATR (Average True Range)
Esta combinación nos permitirá obtener una visión más completa del mercado, integrando información sobre tendencias, momentum y volatilidad en nuestra toma de decisiones. Exploraremos cómo estos indicadores pueden trabajar en sinergia para generar señales de trading más robustas y fiables, potencialmente mejorando nuestros resultados en el mercado. Prepárate para elevar tu estrategia de trading a un nuevo nivel de sofisticación y eficacia.
3. Invocación de las clases
En este apartado seleccionamos como parámetros para el anáĺisis, los siguientes:
Parámetros de análisis
ticker = '^IBEX'
value_name = 'IBEX 35'
start_date = '2010-1-3'
end_date = '2024-5-15'
short_period = 50
long_period = 200
initial_capital = 100000
3.1. Clase "EMAsStrategy"
En este apartado, nos centraremos en la clase "EMAsStrategy", un componente fundamental de nuestra estrategia de trading que hemos explorado en entradas anteriores. Esta clase es crucial para nuestro análisis y toma de decisiones, proporcionando una serie de outputs valiosos:
Señales de Trading:
Identifica y devuelve los puntos específicos de compra y venta basados en el cruce de las Medias Móviles Exponenciales (EMA's).
Análisis de Rendimiento:
Calcula y presenta la evolución de la inversión a lo largo del tiempo.
Visualizaciones Gráficas:
Genera gráficos detallados que muestran:
a) La evolución histórica de las cotizaciones junto con las líneas de las EMA's.
b) Una comparación de rendimientos entre dos estrategias:
"Buy & Hold" (comprar y mantener)
"Buy & Sell" (comprar y vender según las recomendaciones de la estrategia)
Al invocar esta clase, obtenemos una visión completa y visual de cómo nuestra estrategia de cruce de EMA's se comporta en el mercado, permitiéndonos evaluar su eficacia y comparar su rendimiento con una estrategia pasiva de inversión.
3.2. Clase "PythonTecnicalIndicators"
En este apartado, presentamos la clase "PandasTechnicalIndicators", una herramienta poderosa diseñada para calcular una variedad de indicadores técnicos esenciales. Aunque nuestra estrategia actual "EMA&RSI&ATR" se enfocará principalmente en el RSI, esta clase está preparada para futuras implementaciones y análisis más complejos.
3.2.1 Indicadores Calculados
EMA (Medias Móviles Exponenciales)
Función: Suavizar la serie temporal de precios y resaltar tendencias.
Aplicación: Identificación de direcciones de mercado a corto y largo plazo.
RSI (Índice de Fuerza Relativa)
Función: Medir la velocidad y el cambio de los movimientos de precios.
Aplicación: Identificar condiciones de sobrecompra o sobreventa.
ADX (Índice de Movimiento Direccional Promedio)
Función: Medir la fuerza y dirección de una tendencia.
Aplicación: Determinar si un mercado está en tendencia o en rango.
MACD (Convergencia/Divergencia de Medias Móviles)
Función: Identificar cambios en la fuerza, dirección, impulso y duración de una tendencia.
Cálculo: Relación entre dos EMA, típicamente de 12 y 26 períodos.
Aplicación: Generar señales de compra y venta, identificar divergencias.
Oscilador Estocástico
Función: Comparar el precio de cierre con el rango de precios en un período determinado.
Aplicación: Identificar condiciones de sobrecompra/sobreventa y posibles puntos de reversión.
3.2.2 Enfoque Actual y Futuro
Para nuestra estrategia "EMA&RSI&ATR", nos centraremos principalmente en el uso del RSI. Sin embargo, la inclusión de estos indicadores adicionales en la clase "PandasTechnicalIndicators" nos proporciona una base sólida para futuras entradas del blog y el desarrollo de estrategias más sofisticadas. Esta clase versátil nos permitirá explorar y combinar diversos indicadores técnicos, adaptando nuestras estrategias a diferentes condiciones de mercado y objetivos de trading.
4. Cruce de EMA's e Indicadores de impulso:
Utilizamos indicadores de impulso como el Relative Strength Index (RSI), el MACD (Moving Average Convergence Divergence) o el estocástico para confirmar las señales de compra o venta generadas por el cruce de EMAs.
Ejemplo de Confirmación de Señales: Una señal de compra generada por el cruce de EMA's podría ser confirmada si:
El RSI está por encima de un nivel de sobreventa predefinido
El MACD muestra un cruce alcista
Nuestro código calculará estos indicadores de impulso para los datos históricos y generará señales de compra o venta confirmadas basadas en umbrales establecidos para cada indicador. Estos umbrales son ajustables según las preferencias y estrategias comerciales específicas.
En este notebook, nos centraremos específicamente en la combinación del cruce de EMA's con el RSI.
4.1 Cruce de EMA's y RSI
En este notebook, nos centraremos específicamente en la combinación del cruce de EMA's con el RSI. Esta estrategia nos permite:
Identificar momentos óptimos para entrar y salir del mercado
Maximizar el potencial de beneficios
Minimizar el riesgo de pérdidas
Para una comprensión más profunda de esta estrategia, recomendamos el siguiente video:
Estrategia de EMA's y RSI, estrategia a largo plazo.
5. Gráficos con cotizaciones, EMA's, volúmen y RSI.
5.1 Interpretación de los gráficos.
Para tomar decisiones de entrada y salida en el mercado utilizando estas gráficas, se pueden seguir las siguientes estrategias:
5.1.1. Gráfica de Cruce de EMAs (Parte Superior)
Señales de Compra:
Se generan cuando la EMA corta (línea azul) cruza por encima de la EMA larga (línea verde).
Además, si se acompaña de un aumento en el volumen (ver gráfica de volúmen), esto refuerza la señal de compra.
Marcadores de Compra (Triángulos hacia arriba): Estos marcadores en la gráfica indican puntos donde la estrategia sugiere comprar.
Señales de Venta:
Se generan cuando la EMA corta cruza por debajo de la EMA larga.
Un incremento en el volumen también refuerza esta señal.
Marcadores de Venta (Triángulos hacia abajo): Estos puntos sugieren momentos para vender.
Observaciones Adicionales:
Señales Falsas: Es posible que existan cruces temporales que generen señales falsas, por lo que es recomendable considerar otros indicadores (como el RSI en la gráfica inferior) antes de tomar una decisión.
Tendencias Prolongadas:* Un cruce de EMAs puede indicar el inicio de una tendencia prolongada, en cuyo caso, se puede mantener la posición por más tiempo.
5.1.2. Gráfica del RSI (Parte Inferior)
Condiciones de Sobrecompra y Sobreventa:
Línea del 70% (Horizontal Roja Superior): Cuando el RSI supera este nivel, el activo se considera sobrecomprado. Esto es una señal de que el precio podría estar próximo a corregirse a la baja. Combina esta señal con un cruce negativo de EMAs para considerar una venta.
Línea del 30% (Horizontal Roja Inferior): Cuando el RSI cae por debajo de este nivel, el activo se considera sobrevendido. Esto sugiere que podría estar a punto de subir. Combina esta señal con un cruce positivo de EMAs para considerar una compra.
Confirmación de Señales:
Entrada: Si el RSI está en la zona de sobreventa (cerca o por debajo de 30) y ocurre un cruce positivo de EMAs, esto es una fuerte señal para entrar en el mercado.
Salida: Si el RSI está en la zona de sobrecompra (cerca o por encima de 70) y ocurre un cruce negativo de EMAs, esto es una fuerte señal para salir del mercado.
5.1.3. Estrategia Combinada
Entrada al Mercado
Busca momentos en los que el RSI esté cerca del nivel 30 (sobreventa) y el cruce de EMAs genere una señal de compra.
Considera también el volumen para confirmar la fortaleza del movimiento.
Salida del Mercado:
Busca momentos en los que el RSI esté cerca del nivel 70 (sobrecompra) y el cruce de EMAs genere una señal de venta.
Nuevamente, confirma con el volumen.
5.1.4. Gráfica de Volúmen:
Volumen Alto: Puede indicar interés significativo en el activo, lo que podría dar validez a las señales de compra o venta generadas por las EMAs y el RSI.
Volumen Bajo: Puede sugerir que la tendencia actual podría no ser tan fuerte o significativa.
Al combinar esta gráfica con las anteriores, podrás tener una visión más completa de las condiciones del mercado y tomar decisiones de trading más informadas.
5.2 Validación del cruce de EMA's con el RSI.
En el código, "df_buy_sell_signals_total" contiene en la columna "Buy_sell_signals" con 0, 1 y -1, que indican la posición compradora o vendedora en el mercado.
"recomended_entry_exit_dates" contiene solamente los puntos de compra y venta recomendados por la estrategia de cruce de las EMA's.
Para un análisis completo, podemos comenzar utilizando "df_buy_sell_signals_total" para evaluar cómo se desarrolla la estrategia a lo largo del tiempo y luego usar "recomended_entry_exit_dates" para realizar un análisis más profundo de los puntos de entrada y salida específicos.
Para una estrategia de trading más simplificada, "recomended_entry_exit_dates" nos dará una visión clara y concisa de los momentos de cambio crítico en las posiciones.
La ejecución del 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:
5.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.
5.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.