Tendencia de cruce de múltiples EMA siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-01-04 16:22:07
Las etiquetas:

img

Resumen general

La estrategia de seguimiento de tendencias multi-EMA combina múltiples líneas EMA con diferentes parámetros para identificar direcciones de tendencia basadas en señales de cruce, con el objetivo de seguir las tendencias en el mercado. Utiliza 7 líneas EMA, incluidos períodos de 12, 26, 50, 100, 200, 89 y 144, comparando sus situaciones de cruce.

Estrategia lógica

La lógica central de esta estrategia se basa en los principios de cruce de las líneas EMA. Entre las EMA, las EMA de período más corto son más sensibles a los cambios recientes de precios y pueden reflejar tendencias a corto plazo, mientras que las EMA de período más largo son menos sensibles y representan tendencias a largo plazo. Cuando una EMA más corta cruza por encima de una EMA más larga desde abajo, se forma una cruz dorada, lo que indica que la tendencia a corto plazo se está volviendo alcista.

Esta estrategia supervisa 7 grupos de cruces de EMA simultáneamente, incluidos los períodos 12&26, 12&50, 12&100, 12&200, 12&89 y 12&144. Por ejemplo, cuando la EMA de 12 días cruza por encima de la EMA de 26 días, la estrategia abrirá una posición larga. Cerrará la posición larga cuando ocurra una cruz de muerte. La misma lógica se aplica a otros pares de EMA.

Análisis de ventajas

La mayor ventaja de esta estrategia es la capacidad de capturar tendencias a través de múltiples marcos de tiempo. Al combinar múltiples EMA, puede identificar tendencias a corto y largo plazo, realizando tendencias de seguimiento de múltiples marcos de tiempo. Además, el rendimiento de la estrategia se puede optimizar ajustando los parámetros de EMA.

Análisis de riesgos

El principal riesgo de esta estrategia son las señales de cruce excesivamente frecuentes cuando se utilizan múltiples EMA juntos. Por ejemplo, los cruces entre las EMA de 12 días y 26 días ocurren con más frecuencia que los entre las líneas de 12 días y 200 días. Las entradas y salidas frecuentes pueden aumentar los costos de negociación y el deslizamiento. Además, las EMA tienen una naturaleza rezagada, lo que puede causar señales comerciales inoportunas.

Para mitigar los riesgos, los períodos de EMA se pueden optimizar para controlar la frecuencia de cruce en los niveles adecuados.

Direcciones de mejora

El espacio de optimización principal radica en ajustar los parámetros de la EMA, como experimentar con más combinaciones de períodos o probar otros promedios móviles como la SMA. También se pueden agregar filtros adicionales para mejorar la calidad de la señal, por ejemplo, indicadores de volumen o volatilidad. Además, se pueden usar estrategias de stop loss para reducir el impacto de la turbulencia del mercado.

Conclusión

La estrategia de seguimiento de tendencias multi-EMA identifica las direcciones de tendencia mediante la comparación de situaciones de cruce entre múltiples EMA, capturando tendencias a través de marcos de tiempo. Su ventaja es la flexibilidad para ajustar parámetros y capturar tendencias en diferentes niveles. El inconveniente son las señales potencialmente demasiado frecuentes y el aumento de los costos de negociación. Se pueden lograr mejoras adicionales mediante la optimización de parámetros y la adición de condiciones suplementarias.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Trades", overlay=true, pyramiding=4)

src = input(close, title="Source")

shortestLine = input(12, minval=1, title="Shortest Line")
shorterLine = input(26, minval=1, title="Shorter Line")
shortLine = input(50, minval=1, title="Short Line")
middleLine = input(100, minval=1, title="Middle Line")
longLine = input(200, minval=1, title="Long Line")
longerLine = input(89, minval=1, title="Longer Line")
longestLine = input(144, minval=1, title="Longest Line")

shortestLineOutput = ema(src, shortestLine)
shorterLineOutput = ema(src, shorterLine)
shortLineOutput = ema(src, shortLine)
middleLineOutput = ema(src, middleLine)
longLineOutput = ema(src, longLine)
longerLineOutput = ema(src, longerLine)
longestLineOutput = ema(src, longestLine)

//plot(shortestLineOutput, title="Shortest EMA", color=#ffffff)
//plot(shorterLineOutput, title="Shorter EMA", color=#e54fe6)
//plot(shortLineOutput, title="Short EMA", color=#4e6bc3)
//plot(middleLineOutput, title="Middle EMA", color=#1dd6d8)
//plot(longLineOutput, title="Long EMA", color=#d0de10)
//plot(longerLineOutput, title="Longer EMA", color=#ef6a1a)
//plot(longestLineOutput, title="Longest EMA", color=#ff0e0e)

longEnrtyCondition_1 = crossover(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput > shorterLineOutput
longEntryCondition_2 = crossover(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput > shortLineOutput
longEnrtyCondition_3 = crossover(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput > middleLineOutput
longEntryCondition_4 = crossover(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput > longLineOutput

shortEnrtyCondition_1 = crossunder(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput < shorterLineOutput
shortEntryCondition_2 = crossunder(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput < shortLineOutput
shortEnrtyCondition_3 = crossunder(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput < middleLineOutput
shortEntryCondition_4 = crossunder(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput < longLineOutput

if (longEnrtyCondition_1)
    strategy.entry("Buy1", strategy.long)
    strategy.exit("Sell1")

if (longEntryCondition_2)
    strategy.entry("Buy2", strategy.long)
    strategy.exit("Sell2")

if (longEnrtyCondition_3)
    strategy.entry("Buy3", strategy.long)
    strategy.exit("Sell3")

if (longEntryCondition_4)
    strategy.entry("Buy4", strategy.long)
    strategy.exit("Sell4")

if (shortEnrtyCondition_1)
    strategy.entry("Sell1", strategy.short)
    strategy.exit("Buy1")

if (shortEntryCondition_2)
    strategy.entry("Sell2", strategy.short)
    strategy.exit("Buy2")

if (shortEnrtyCondition_3)
    strategy.entry("Sell3", strategy.short)
    strategy.exit("Buy3")

if (shortEntryCondition_4)
    strategy.entry("Sell4", strategy.short)
    strategy.exit("Buy4")

Más.