Estrategia de cruce de EMA dinámico y MACD

El autor:¿ Qué pasa?, Fecha: 2024-02-06 14:29:23
Las etiquetas:

img

Resumen general

Esta estrategia determina entradas y salidas basadas en las situaciones de cruce de la línea rápida EMA (3), línea lenta EMA (11) y línea lenta EMA (18), combinadas con cruces de línea cero del MACD. Es una estrategia dinámica que utiliza la combinación de indicadores duales EMA y MACD para las decisiones comerciales.

Estrategia lógica

La estrategia se basa principalmente en dos indicadores de análisis técnico:

  1. EMA Crossover: utiliza el cruce de EMA rápido (3), EMA lento (11) y EMA lento (18) para determinar la tendencia y como señales de entrada y salida.

  2. El indicador MACD y su cruce de línea cero. El MACD se compone de DIFF y DEA. DIFF se construye por EMA rápida (3) menos EMA lenta (11). DEA es la EMA (27) del MACD.

De acuerdo con la combinación de cruce de la EMA y cruce de la línea cero del MACD, hay 3 oportunidades de entrada y 2 oportunidades de salida:

  1. La primera oportunidad larga ocurre cuando el MACD está por encima de la línea cero y tiene un cruce ascendente.
  2. La segunda oportunidad larga se produce cuando la EMA rápida (3) cruza por encima de la EMA lenta (11).
  3. La tercera oportunidad larga con posición completa se produce cuando la EMA rápida (3) cruza la EMA más lenta (18).
  4. La primera señal de salida se produce cuando la EMA rápida (3) cruza por debajo de la EMA lenta (11).
  5. La segunda señal de salida se produce cuando el MACD está por debajo de la línea cero y tiene un cruce a la baja.

En resumen, esta estrategia aprovecha al máximo las ventajas del sistema dual de cruce de la EMA y el indicador MACD. Al ajustar dinámicamente los parámetros de las medias móviles y el MACD, puede mejorar la rentabilidad de la estrategia.

Ventajas de la estrategia

  1. Utiliza las fortalezas tanto del indicador EMA como del indicador MACD, mejorando la precisión a través de la confirmación de dos indicadores.

  2. Hay 3 oportunidades de entrada largas y 2 oportunidades de salida, aumentando la frecuencia de negociación y el potencial de ganancia.

  3. La longitud de la EMA rápida, la EMA lenta, la EMA de línea cero y el MACD pueden ser optimizados.

  4. La lógica clara hace que sea fácil de depurar y optimizar.

Riesgos de la estrategia

  1. Tanto el indicador EMA como el MACD tienen algunas señales falsas, lo que puede llevar a pérdidas innecesarias.

  2. Frecuencia de operaciones alta con un pequeño tamaño de stop loss en cada operación, por lo que las pérdidas podrían acumularse.

  3. Dificultad en la optimización de parámetros.

  4. Es necesario tener plenamente en cuenta el impacto de los costes comerciales.

Para mitigar los riesgos:

  1. Establezca el stop loss adecuado para limitar las pérdidas en operaciones individuales.

  2. Ajustar los parámetros adecuadamente para evitar el sobreajuste.

  3. Considere el impacto de los costos de negociación, como reducir la frecuencia de negociación.

Direcciones para la optimización

  1. Alternativas de prueba como bandas de Bollinger, KDJ, etc.

  2. Optimizar los parámetros de cruce de la EMA: Cambiar la longitud de la EMA rápida y lenta.

  3. Optimización de los parámetros MACD: cambio de las longitudes EMA de cálculo de DIFF y DEA.

  4. Se incluyen estrategias de stop loss: número de operaciones de stop, tiempo de stop, trailing stop, etc.

  5. Ajustar la frecuencia de entrada teniendo en cuenta los costes de negociación.

Resumen de las actividades

Esta estrategia combina el sistema de cruce dual EMA y el indicador MACD para construir una estrategia de parámetros dinámicos con alta frecuencia de negociación y una fuerte rentabilidad. Además, la lógica clara hace que sea fácil de entender y optimizar. Pero también hay riesgos de señales falsas y sobreajuste que deben abordarse a través de un stop loss adecuado, medidas anti-sobreajuste, etc. En general, la estrategia tiene una gran utilidad práctica.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-05 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD+EMA crossovers Strategy custom",initial_capital=10000,max_bars_back=150,commission_type=strategy.commission.percent , commission_value=0.1, shorttitle="MACD+EMAcross",pyramiding = 10,default_qty_type=strategy.percent_of_equity,default_qty_value=33,overlay=false)

short = ema(close,3)
long = ema(close, 11)
long2 = ema(close, 18)
//plot(short, color = red, linewidth = 4)
//plot(long, color = blue, linewidth = 4)
//plot(long2, color = green, linewidth = 4)

isCross1 = crossover(short, long)
isCross2 = crossover(short, long2)
isCrossSell = crossunder(short, long)
//isCross3 = crossover(long, long2)

//plotshape(isCross1 and not isCross2, color=lime, style=shape.arrowup, text="1st in",size = size.tiny, location = location.belowbar)
//plotshape(isCross2 , color=lime, style=shape.arrowup, text="2nd in",size = size.tiny, location = location.belowbar)

//plotshape(isCross3 , color=lime, style=shape.arrowdown, text="All in",size = size.normal, location = location.abovebar)

//plotshape(isCrossSell , color=red, style=shape.arrowdown, text="SELL",size = size.small, location = location.abovebar)

fastLength = input(3)
slowlength = input(11)
MACDLength = input(27)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength) //signal
delta = MACD - aMACD // histograma

strategy.entry("MacdLE 1st in", strategy.long, comment="MacdLE 1st in",when=crossover(delta, 0))

strategy.entry("2nd in", strategy.long, comment="2nd in",when=isCross1)

strategy.entry("all in", strategy.long, comment="all in",when=isCross2)

strategy.close("2nd in",when=isCrossSell) 
strategy.close("all in",when=isCrossSell)
//strategy.close("2nd in",when=crossunder(delta, 0)) 
//strategy.close("all in",when=crossunder(delta, 0))
strategy.close("MacdLE 1st in",when=crossunder(delta, 0)) 
    
histColour = (delta > 0) ? green : (delta < 0) ? red :  #4169E1
    
plot(MACD,color=red,linewidth=2)
plot(aMACD,color=blue,linewidth=2)
plot(delta,style=histogram, color=histColour, linewidth=10)
plot(0,color=white)






Más.