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": https://drive.google.com/file/d/16M6U8wNLyqcNspjx5aeYT243_OtPZyR4/view?usp=sharing
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
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. Colocación de stops dinámicos.
Para introducir stops dinámicos en la estrategia, podemos ajustar el código para que, al identificar una señal de compra o venta, se calculen niveles de stop-loss y/o take-profit basados en la volatilidad reciente o en ciertos niveles clave (como máximos/mínimos anteriores o niveles de soporte/resistencia). Un enfoque común es usar el ATR (Average True Range) para determinar la volatilidad y establecer un stop dinámico.
Este es un ejemplo para incluir stops dinámicos basados en el ATR:
7.1 Pautas Generales para implementar el ATR Multiplier:
Conservador (Bajo Riesgo):
ATR Multiplier: 1.0 a 1.5
Descripción: Este rango es adecuado para traders que prefieren una mayor seguridad y están dispuestos a aceptar menores ganancias para minimizar el riesgo. Los stops estarán más cerca del precio actual, lo que significa que es más probable que se activen si el precio fluctúa ligeramente.
Moderado (Riesgo Medio):
ATR Multiplier: 1.5 a 2.0
Descripción: Este rango es común entre traders que buscan un equilibrio entre riesgo y recompensa. Permite cierta flexibilidad al precio antes de activar el stop-loss, lo que puede reducir la probabilidad de ser "sacado" del mercado por pequeñas fluctuaciones.
Agresivo (Alto Riesgo):
ATR Multiplier: 2.0 a 3.0 o más
Descripción: Los traders dispuestos a asumir un mayor riesgo pueden utilizar un multiplicador más alto. Esto significa que los stops estarán más alejados del precio actual, permitiendo que el precio fluctúe más antes de que el stop se active. Es una estrategia adecuada para tendencias fuertes y mercados volátiles, pero aumenta la exposición al riesgo.
Factores a Considerar:
Volatilidad del Mercado: Mercados altamente volátiles pueden requerir un ATR multiplier más alto para evitar que los stops se activen con pequeñas oscilaciones del mercado.
Horizonte Temporal: En marcos temporales más largos (como el diario), los traders suelen usar un ATR multiplier más alto porque las oscilaciones de precios tienden a ser mayores. En marcos temporales más cortos, un multiplicador más bajo puede ser más adecuado.
Objetivo de la Estrategia: Si la estrategia busca capturar movimientos pequeños, un multiplicador más bajo es mejor. Si buscas capturar movimientos grandes, un multiplicador más alto es más adecuado.
7.1. Ejemplo de Ajuste del ATR Multiplier:
Si estámos comenzando y notenemosun fuerte sesgo hacia un estilo conservador o agresivo, un multiplicador de 1.5 es un buen punto de partida. A medida que nos familiaricemos con la estrategia y observesamos los resultados, podemos ajustar este valor. Podemos hacer backtesting con diferentes valores de atr_multiplier para ver cuál optimiza mejor la relación riesgo/recompensa.
Aplicando stop dinámicos, obtenemos el resutado siguiente.
7.1.1 Interpretación del resultado
El DataFrame contiene información detallada sobre el comportamiento de un activo en función de diferentes indicadores técnicos y señales de trading. Aquí explicamos cómo interpretar cada columna:
Columnas Clave del DataFrame:
Close: El precio de cierre del activo en la fecha específica.
EMA_short y EMA_long: Las medias móviles exponenciales (EMAs) de corto y largo plazo, que ayudan a identificar la tendencia del mercado. El cruce de estas EMAs puede generar señales de compra o venta.
Buy_sell_signals: 1.0 indica una señal de compra. -1.0 indica una señal de venta. NaN indica que no hay una señal generada en esa fecha.
Volume: El volumen de operaciones, que puede indicar la fuerza de una tendencia.
RSI_14: El índice de fuerza relativa (RSI) calculado con un período de 14 días, que mide la magnitud de las ganancias recientes frente a las pérdidas recientes. Un RSI alto puede indicar un activo sobrecomprado, mientras que un RSI bajo puede indicar un activo sobrevendido.
Buy_signal y Sell_signal: True en Buy_signal indica que se generó una señal de compra basada en el RSI. True en Sell_signal indica que se generó una señal de venta basada en el RSI. False indica que no se generó una señal en esa fecha.
Stop_Loss: El precio de stop-loss calculado, que es el precio al que se cerrará la posición para limitar las pérdidas. Este valor se basa en el ATR y el multiplicador definido.
Take_Profit: El precio objetivo o take-profit, que es el precio al que se cerrará la posición para asegurar las ganancias. También está basado en el ATR.
Interpretación de las Filas:
Cada fila representa un día de trading, y para interpretar los datos, puodemos hacer lo siguiente:
Verificación de Señales y Condiciones del Mercado: Si Buy_sell_signals es 1.0 y Sell_signal es True, esto indica una señal conflictiva: el cruce de EMAs sugiere comprar, pero el RSI indica que el activo podría estar sobrecomprado, lo que sugiere una posible corrección. Esto es una señal para actuar con precaución.
Si Buy_sell_signals es -1.0 y ' Buy_signal' es True, es lo opuesto: el cruce de EMAs sugiere vender, pero el RSI indica que el activo podría estar sobrevendido, lo que también sugiere precaución.
Aplicación de Stop-Loss y Take-Profit: En fechas como el 2011-04-05, la señal de compra (Buy_sell_signals = 1.0) sugiere entrar en una posición larga. El stop-loss se coloca en 10934.231689, y el take-profit en 10422.967529. Si el precio cae a 10934.231689, se activará el stop-loss para limitar las pérdidas. Si sube a 10422.967529, se activará el take-profit para asegurar ganancias. En fechas como el 2020-03-12, la señal de venta (Buy_sell_signals = -1.0) sugiere entrar en una posición corta. El stop-loss y take-profit también están calculados para gestionar el riesgo.
Consideraciones:
Señales Conflictuantes: Cuando hay señales conflictivas entre Buy_sell_signals y RSI (es decir, un Buy_sell_signal de 1.0 pero un Sell_signal de True), es recomendable esperar una confirmación adicional o ajustar el stop-loss más cerca del precio actual para reducir el riesgo.
Gestión de Riesgo: Los valores de Stop_Loss y Take_Profit son críticos para la gestión del riesgo. Deberímos revisarlos regularmente y ajustarlos si las condiciones del mercado cambian.
En resumen, este DataFrame nod proporciona una visión clara para tomar decisiones informadas basadas en señales técnicas, con herramientas para gestionar el riesgo mediante stop-loss y take-profit dinámicos.
7.3 Estableciendo días de tolerancia.
el resultado es el diguiente.
7.3.1 Análisis del resultado:
Aspectos clave que podemos revisar y reflexionar sobre su interpretación:
Señales de Compra y Venta (Buy_signal, Sell_signal)
Observación: Las señales de compra (Buy_signal) y venta (Sell_signal) se generan en puntos específicos donde las condiciones establecidas por la estrategia se cumplen (por ejemplo, el cruce de medias móviles y la confirmación del RSI).
Análisis:
En varias fechas, como el 20 de diciembre de 2012, se genera una señal de compra (Buy_signal = True), lo que indica que el precio de cierre en ese día podría haber sido un buen punto de entrada para una operación larga (compra).
En otras fechas, como el 9 de septiembre de 2015, se genera una señal de venta (Sell_signal = True), lo que sugiere un posible punto de entrada para una operación corta (venta).
Valores de Stop_Loss y Take_Profit
Observación: Las columnas de Stop_Loss y Take_Profit tienen valores asignados solo cuando se genera una señal de compra o venta.
Análisis:
El Stop_Loss y el Take_Profit se calculan correctamente utilizando el ATR multiplicado por el factor dado. Estos valores nos indican los puntos en los que deberíamos considerar salir de la operación para limitar pérdidas (Stop_Loss) o asegurar ganancias (Take_Profit).
Por ejemplo, el 20 de diciembre de 2012, para una señal de compra, el Stop_Loss es 8102.95 y el Take_Profit es 8425.45. Esto sugiere que si el precio cae por debajo de 8102.95, deberíamos salir de la operación para minimizar pérdidas, y si sube hasta 8425.45, deberíamos considerar tomar las ganancias.
Relación entre Buy_sell_signals, RSI, y las Señales
Observación: Las señales de compra y venta (Buy_sell_signals) son generadas por la estrategia de cruce de medias móviles (EMA), y se confirman o refutan con base en el RSI (índice de fuerza relativa).
Análisis:
Un valor positivo en Buy_sell_signals combinado con un valor bajo de RSI (por debajo del umbral de compra) genera una señal de compra confirmada. Esto se ve, por ejemplo, el 27 de noviembre de 2019, donde el RSI estaba en 42.45, lo que está cerca del umbral de compra y una señal de compra fue generada.
De manera similar, un valor negativo en Buy_sell_signals con un RSI alto (por encima del umbral de venta) generará una señal de venta confirmada, como se observa el 28 de febrero de 2018.
Volumen de Operaciones (Volume)
Observación: El volumen es alto en días específicos, lo que puede indicar momentos de mayor interés del mercado.
Análisis: En días como el 12 de marzo de 2020, el volumen es extremadamente alto (723,609,100), lo que puede indicar un movimiento significativo del mercado o una gran volatilidad. Esta alta volatilidad coincide con una señal de venta (Sell_signal = True), lo que podría ser relevante para evaluar el riesgo en ese punto.
Conclusión General
Efectividad de la Estrategia:
La estrategia parece funcionar bien en identificar puntos de entrada y salida basados en la combinación de cruces de medias móviles y el RSI. Los Stop_Loss y Take_Profit añaden una capa de protección y optimización en la gestión de riesgos.
Posibles Mejoras: Podrías considerar ajustar los umbrales de RSI, o el atr_multiplier para ver si mejoran los resultados en términos de precisión y optimización de ganancias/pérdidas.
Revisar cómo responde la estrategia en mercados con diferentes niveles de volatilidad y ajustar los parámetros en consecuencia.
Este análisis inicial debería proporcionarnos una visión clara de cómo la estrategia está funcionando y dónde podríamos hacer ajustes para mejorarla.
8 Graficos de la estrategia
8.1 Recomendaciones de las EMA's y RSI
8.2 Recomendaciones del RSI
9. Análisis automático
Este script realiza un análisis detallado de la estrategia de cruce de EMA's, validada con los indicadores RSI y ATR, proporcionando señales de compra y venta basadas en los parámetros que usted define. Es importante destacar que los resultados generados por esta herramienta son solo sugerencias y no deben interpretarse como recomendaciones de inversión definitivas.
El mercado financiero es volátil y complejo, y aunque este análisis puede ofrecer una perspectiva valiosa, siempre debe complementar cualquier decisión de inversión con su propio juicio y, preferiblemente, con el asesoramiento de un profesional financiero. Recuerde que el uso de estrategias de trading conlleva riesgos, y la responsabilidad final de cualquier acción recae en usted como inversor.
1.1Acceso en Google Colaboratory.
> Introducir la dirección en la barra de direcciones.
"5 Estrategia_cruce_EMAs_3.ipynb": https://drive.google.com/file/d/16M6U8wNLyqcNspjx5aeYT243_OtPZyR4/view?usp=sharing
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
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. Colocación de stops dinámicos.
Para introducir stops dinámicos en la estrategia, podemos ajustar el código para que, al identificar una señal de compra o venta, se calculen niveles de stop-loss y/o take-profit basados en la volatilidad reciente o en ciertos niveles clave (como máximos/mínimos anteriores o niveles de soporte/resistencia). Un enfoque común es usar el ATR (Average True Range) para determinar la volatilidad y establecer un stop dinámico.
Este es un ejemplo para incluir stops dinámicos basados en el ATR:
7.1 Pautas Generales para implementar el ATR Multiplier:
Conservador (Bajo Riesgo):
ATR Multiplier: 1.0 a 1.5
Descripción: Este rango es adecuado para traders que prefieren una mayor seguridad y están dispuestos a aceptar menores ganancias para minimizar el riesgo. Los stops estarán más cerca del precio actual, lo que significa que es más probable que se activen si el precio fluctúa ligeramente.
Moderado (Riesgo Medio):
ATR Multiplier: 1.5 a 2.0
Descripción: Este rango es común entre traders que buscan un equilibrio entre riesgo y recompensa. Permite cierta flexibilidad al precio antes de activar el stop-loss, lo que puede reducir la probabilidad de ser "sacado" del mercado por pequeñas fluctuaciones.
Agresivo (Alto Riesgo):
ATR Multiplier: 2.0 a 3.0 o más
Descripción: Los traders dispuestos a asumir un mayor riesgo pueden utilizar un multiplicador más alto. Esto significa que los stops estarán más alejados del precio actual, permitiendo que el precio fluctúe más antes de que el stop se active. Es una estrategia adecuada para tendencias fuertes y mercados volátiles, pero aumenta la exposición al riesgo.
Factores a Considerar:
Volatilidad del Mercado: Mercados altamente volátiles pueden requerir un ATR multiplier más alto para evitar que los stops se activen con pequeñas oscilaciones del mercado.
Horizonte Temporal: En marcos temporales más largos (como el diario), los traders suelen usar un ATR multiplier más alto porque las oscilaciones de precios tienden a ser mayores. En marcos temporales más cortos, un multiplicador más bajo puede ser más adecuado.
Objetivo de la Estrategia: Si la estrategia busca capturar movimientos pequeños, un multiplicador más bajo es mejor. Si buscas capturar movimientos grandes, un multiplicador más alto es más adecuado.
7.1. Ejemplo de Ajuste del ATR Multiplier:
Si estámos comenzando y notenemosun fuerte sesgo hacia un estilo conservador o agresivo, un multiplicador de 1.5 es un buen punto de partida. A medida que nos familiaricemos con la estrategia y observesamos los resultados, podemos ajustar este valor. Podemos hacer backtesting con diferentes valores de atr_multiplier para ver cuál optimiza mejor la relación riesgo/recompensa.
Aplicando stop dinámicos, obtenemos el resutado siguiente.
7.1.1 Interpretación del resultado
El DataFrame contiene información detallada sobre el comportamiento de un activo en función de diferentes indicadores técnicos y señales de trading. Aquí explicamos cómo interpretar cada columna:
Columnas Clave del DataFrame:
Close: El precio de cierre del activo en la fecha específica.
EMA_short y EMA_long: Las medias móviles exponenciales (EMAs) de corto y largo plazo, que ayudan a identificar la tendencia del mercado. El cruce de estas EMAs puede generar señales de compra o venta.
Buy_sell_signals: 1.0 indica una señal de compra. -1.0 indica una señal de venta. NaN indica que no hay una señal generada en esa fecha.
Volume: El volumen de operaciones, que puede indicar la fuerza de una tendencia.
RSI_14: El índice de fuerza relativa (RSI) calculado con un período de 14 días, que mide la magnitud de las ganancias recientes frente a las pérdidas recientes. Un RSI alto puede indicar un activo sobrecomprado, mientras que un RSI bajo puede indicar un activo sobrevendido.
Buy_signal y Sell_signal: True en Buy_signal indica que se generó una señal de compra basada en el RSI. True en Sell_signal indica que se generó una señal de venta basada en el RSI. False indica que no se generó una señal en esa fecha.
Stop_Loss: El precio de stop-loss calculado, que es el precio al que se cerrará la posición para limitar las pérdidas. Este valor se basa en el ATR y el multiplicador definido.
Take_Profit: El precio objetivo o take-profit, que es el precio al que se cerrará la posición para asegurar las ganancias. También está basado en el ATR.
Interpretación de las Filas:
Cada fila representa un día de trading, y para interpretar los datos, puodemos hacer lo siguiente:
Verificación de Señales y Condiciones del Mercado: Si Buy_sell_signals es 1.0 y Sell_signal es True, esto indica una señal conflictiva: el cruce de EMAs sugiere comprar, pero el RSI indica que el activo podría estar sobrecomprado, lo que sugiere una posible corrección. Esto es una señal para actuar con precaución.
Si Buy_sell_signals es -1.0 y ' Buy_signal' es True, es lo opuesto: el cruce de EMAs sugiere vender, pero el RSI indica que el activo podría estar sobrevendido, lo que también sugiere precaución.
Aplicación de Stop-Loss y Take-Profit: En fechas como el 2011-04-05, la señal de compra (Buy_sell_signals = 1.0) sugiere entrar en una posición larga. El stop-loss se coloca en 10934.231689, y el take-profit en 10422.967529. Si el precio cae a 10934.231689, se activará el stop-loss para limitar las pérdidas. Si sube a 10422.967529, se activará el take-profit para asegurar ganancias. En fechas como el 2020-03-12, la señal de venta (Buy_sell_signals = -1.0) sugiere entrar en una posición corta. El stop-loss y take-profit también están calculados para gestionar el riesgo.
Consideraciones:
Señales Conflictuantes: Cuando hay señales conflictivas entre Buy_sell_signals y RSI (es decir, un Buy_sell_signal de 1.0 pero un Sell_signal de True), es recomendable esperar una confirmación adicional o ajustar el stop-loss más cerca del precio actual para reducir el riesgo.
Gestión de Riesgo: Los valores de Stop_Loss y Take_Profit son críticos para la gestión del riesgo. Deberímos revisarlos regularmente y ajustarlos si las condiciones del mercado cambian.
En resumen, este DataFrame nod proporciona una visión clara para tomar decisiones informadas basadas en señales técnicas, con herramientas para gestionar el riesgo mediante stop-loss y take-profit dinámicos.
7.3 Estableciendo días de tolerancia.
el resultado es el diguiente.
7.3.1 Análisis del resultado:
Aspectos clave que podemos revisar y reflexionar sobre su interpretación:
Señales de Compra y Venta (Buy_signal, Sell_signal)
Observación: Las señales de compra (Buy_signal) y venta (Sell_signal) se generan en puntos específicos donde las condiciones establecidas por la estrategia se cumplen (por ejemplo, el cruce de medias móviles y la confirmación del RSI).
Análisis:
En varias fechas, como el 20 de diciembre de 2012, se genera una señal de compra (Buy_signal = True), lo que indica que el precio de cierre en ese día podría haber sido un buen punto de entrada para una operación larga (compra).
En otras fechas, como el 9 de septiembre de 2015, se genera una señal de venta (Sell_signal = True), lo que sugiere un posible punto de entrada para una operación corta (venta).
Valores de Stop_Loss y Take_Profit
Observación: Las columnas de Stop_Loss y Take_Profit tienen valores asignados solo cuando se genera una señal de compra o venta.
Análisis:
El Stop_Loss y el Take_Profit se calculan correctamente utilizando el ATR multiplicado por el factor dado. Estos valores nos indican los puntos en los que deberíamos considerar salir de la operación para limitar pérdidas (Stop_Loss) o asegurar ganancias (Take_Profit).
Por ejemplo, el 20 de diciembre de 2012, para una señal de compra, el Stop_Loss es 8102.95 y el Take_Profit es 8425.45. Esto sugiere que si el precio cae por debajo de 8102.95, deberíamos salir de la operación para minimizar pérdidas, y si sube hasta 8425.45, deberíamos considerar tomar las ganancias.
Relación entre Buy_sell_signals, RSI, y las Señales
Observación: Las señales de compra y venta (Buy_sell_signals) son generadas por la estrategia de cruce de medias móviles (EMA), y se confirman o refutan con base en el RSI (índice de fuerza relativa).
Análisis:
Un valor positivo en Buy_sell_signals combinado con un valor bajo de RSI (por debajo del umbral de compra) genera una señal de compra confirmada. Esto se ve, por ejemplo, el 27 de noviembre de 2019, donde el RSI estaba en 42.45, lo que está cerca del umbral de compra y una señal de compra fue generada.
De manera similar, un valor negativo en Buy_sell_signals con un RSI alto (por encima del umbral de venta) generará una señal de venta confirmada, como se observa el 28 de febrero de 2018.
Volumen de Operaciones (Volume)
Observación: El volumen es alto en días específicos, lo que puede indicar momentos de mayor interés del mercado.
Análisis: En días como el 12 de marzo de 2020, el volumen es extremadamente alto (723,609,100), lo que puede indicar un movimiento significativo del mercado o una gran volatilidad. Esta alta volatilidad coincide con una señal de venta (Sell_signal = True), lo que podría ser relevante para evaluar el riesgo en ese punto.
Conclusión General
Efectividad de la Estrategia:
La estrategia parece funcionar bien en identificar puntos de entrada y salida basados en la combinación de cruces de medias móviles y el RSI. Los Stop_Loss y Take_Profit añaden una capa de protección y optimización en la gestión de riesgos.
Posibles Mejoras: Podrías considerar ajustar los umbrales de RSI, o el atr_multiplier para ver si mejoran los resultados en términos de precisión y optimización de ganancias/pérdidas.
Revisar cómo responde la estrategia en mercados con diferentes niveles de volatilidad y ajustar los parámetros en consecuencia.
Este análisis inicial debería proporcionarnos una visión clara de cómo la estrategia está funcionando y dónde podríamos hacer ajustes para mejorarla.
8 Graficos de la estrategia
8.1 Recomendaciones de las EMA's y RSI
8.2 Recomendaciones del RSI
9. Análisis automático
Este script realiza un análisis detallado de la estrategia de cruce de EMA's, validada con los indicadores RSI y ATR, proporcionando señales de compra y venta basadas en los parámetros que usted define. Es importante destacar que los resultados generados por esta herramienta son solo sugerencias y no deben interpretarse como recomendaciones de inversión definitivas.
El mercado financiero es volátil y complejo, y aunque este análisis puede ofrecer una perspectiva valiosa, siempre debe complementar cualquier decisión de inversión con su propio juicio y, preferiblemente, con el asesoramiento de un profesional financiero. Recuerde que el uso de estrategias de trading conlleva riesgos, y la responsabilidad final de cualquier acción recae en usted como inversor.