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.
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.
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.
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.
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.
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")