Esta estrategia identifica las rupturas de tendencia mediante el cálculo de promedios móviles en diferentes períodos de tiempo.
Ir largo cuando la EMA de 10 días cruza por encima de la EMA de 200 días y la EMA de 20 días cruza por encima de la EMA de 50 días. Ir corto cuando la EMA de 10 días cruza por debajo de la EMA de 200 días y la EMA de 20 días cruza por debajo de la EMA de 50 días.
La estrategia primero calcula cuatro promedios móviles exponenciales (EMA) durante los períodos de 10 días, 20 días, 50 días y 200 días. La EMA de 10 días representa la tendencia a corto plazo, la tendencia a medio plazo de 20 días, la tendencia a medio plazo de 50 días y la tendencia a largo plazo de 200 días. Cuando la EMA más corta cruza la EMA más larga, indica una posible inversión de tendencia. Sin embargo, el uso de un solo cruce de EMA produce fácilmente señales falsas.
Para mejorar la fiabilidad, la estrategia aplica dos capas de filtrado: el indicador cruzado de la EMA 10/200 muestra cambios de tendencia a largo/corto plazo, mientras que el indicador cruzado de la EMA 20/50 muestra cambios de tendencia a medio/mediano plazo.
El doble filtrado de la EMA reduce significativamente las señales falsas, generando entradas comerciales más fiables.
Las mejoras incluyen relajar los umbrales de ruptura, agregar confirmación de volumen y optimizar parámetros.
En resumen, el núcleo doble de la media móvil complementado con optimización, volumen y más indicadores puede construir un sistema de seguimiento de tendencias constante.
Una estrategia simple pero práctica de seguimiento de tendencias. El núcleo dual de EMA filtra las fallas de ruptura de manera confiable para señales de calidad. La fácil parametrización también facilita la adopción.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-13 02:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Advancing Our Basic Strategy", overlay=true) ema10 = ema(close, 10) ema20 = ema(close, 20) ema50 = ema(close, 50) ema200 = ema(close, 200) long = ema10 > ema200 and ema20 > ema50 short = ema10 < ema200 and ema20 < ema50 longcondition = long and long[10] and not long[11] shortcondition = short and short[10] and not short[11] closelong = ema10 < ema200 or ema20 < ema50 and not long[11] closeshort = ema10 > ema200 or ema20 > ema50 and not short[11] plot(ema10, title="10", color=green, linewidth=2) plot(ema20, title="20", color=red, linewidth=3) plot(ema50, title="50", color=purple, linewidth=2) plot(ema200, title="200", color=blue, linewidth=3) testPeriodStart = timestamp(2018,8,1,0,0) testPeriodStop = timestamp(2038,8,30,0,0) if time >= testPeriodStart and time <= testPeriodStop strategy.entry("Long", strategy.long, 1, when=longcondition) strategy.entry("Short", strategy.short, 1, when=shortcondition) strategy.close("Long", when = closelong) strategy.close("Short", when = closeshort)