
Esta estrategia es una estrategia de seguimiento de tendencias basada en un triple promedio móvil de índices (EMA). La estrategia capta la tendencia del mercado mediante la detección de señales cruzadas de tres promedios móviles de índices rápidos, intermedios y lentos, así como de la dirección de la tendencia, abriendo posiciones en el mercado solo en tendencias al alza. La estrategia utiliza un estricto control de pérdidas y un mecanismo de verificación de retroalimentación para lograr un buen rendimiento comercial.
La estrategia utiliza promedios móviles de índices de tres períodos diferentes: EMA rápido (periodos ajustables de 3 a 20), EMA intermedio (periodos ajustables de 21 a 60) y EMA lento (periodos fijos de 130). La señal de negociación se basa en las siguientes condiciones:
La estrategia es un sistema de seguimiento de tendencias estructurado y lógicamente riguroso. La combinación de múltiples indicadores técnicos garantiza la fiabilidad de la estrategia y ofrece suficiente flexibilidad. Aunque existe cierto espacio para la optimización, el marco general tiene una buena base de práctica.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia de Largo con Medias Móviles", overlay=true)
// Parámetros ajustables de las medias móviles
fast_length = input.int(10, title="Período de Media Rápida", minval=3, maxval=20)
mid_length = input.int(30, title="Período de Media Intermedia", minval=21, maxval=60)
slow_length = input.int(130, title="Período de Media Lenta (EMA 130)", minval=130)
// Calcular las medias móviles
fast_ma = ta.ema(close, fast_length)
mid_ma = ta.ema(close, mid_length)
slow_ma = ta.ema(close, slow_length) // Media lenta exponencial de 130 periodos
// Calcular la pendiente manualmente (restando el valor actual de la media móvil del valor de 1 barra anterior)
slope_ma130 = slow_ma - slow_ma[1] // Pendiente de la media lenta
slope_mid_ma = mid_ma - mid_ma[1] // Pendiente de la media intermedia
// Condición para pendiente positiva de la media lenta
slow_ma_trending_up = slope_ma130 > 0
// Condición para pendiente positiva de la media intermedia
mid_ma_trending_up = slope_mid_ma > 0
// Condiciones para entrada en largo (Cruce de la media rápida sobre la media intermedia, solo si la media intermedia tiene pendiente positiva y la media lenta también tiene pendiente positiva)
long_condition = ta.crossover(fast_ma, mid_ma) and mid_ma_trending_up and slow_ma_trending_up
// Condiciones para entrada adicional (Cruce de la media rápida sobre la media lenta, solo si la media lenta tiene pendiente positiva)
additional_long_condition = ta.crossover(fast_ma, slow_ma) and slow_ma_trending_up
// Condiciones para cierre de la posición (Cruce de la media rápida por debajo de la media intermedia)
exit_condition = ta.crossunder(fast_ma, mid_ma)
// Abrir la posición si se cumplen las condiciones (incluyendo las pendientes de las medias)
if (long_condition or additional_long_condition)
strategy.entry("Comprar", strategy.long)
// Cerrar la posición si se cumplen las condiciones de salida
if (exit_condition)
strategy.close("Comprar")
// Mostrar las medias móviles en el gráfico
plot(fast_ma, color=color.green, linewidth=1, title="EMA Rápida")
plot(mid_ma, color=color.orange, linewidth=1, title="EMA Intermedia")
plot(slow_ma, color=color.red, linewidth=2, title="EMA Lenta (130 Periodos)")