Estrategia de tendencia basada en promedios móviles de varios plazos y EMA

El autor:¿ Qué pasa?, Fecha: 2024-02-21 15:59:43
Las etiquetas:

img

Resumen general

Esta estrategia utiliza promedios móviles (MA) y EMA a través de diferentes marcos de tiempo para identificar y comerciar tendencias. Al combinar SMA, EMA de varios períodos, así como cuerpos de velas, puede filtrar eficazmente el ruido del mercado y comerciar tendencias a medio y largo plazo con bajo riesgo.

Estrategia lógica

La idea central se basa en la comparación de 3 SMA de diferentes períodos para determinar el impulso del precio.

Específicamente, la estrategia emplea 3 SMAs - 3-, 8-, y 10-periodo SMA. Cuando el precio está por debajo de los 3 SMAs, se considera una tendencia bajista. La señal larga se activa cuando el precio cruza de nuevo por encima de los SMAs.

Además, una EMA de 5 períodos comprueba si el cuerpo de la vela apunta hacia arriba antes de entrar en operaciones largas.

Para las reglas de salida, el número máximo de cierre rentables o la duración máxima se utilizan como mecanismo de stop loss.

Análisis de ventajas

Al combinar los MAs de varios marcos de tiempo, esta estrategia puede filtrar eficazmente el ruido del mercado y capturar tendencias a medio y largo plazo.

El uso de EMA para comprobar la dirección del cuerpo de la vela reduce el deslizamiento innecesario de la compra en las velas que caen.

En general, se trata de un sistema estable y fiable adecuado para seguir la tendencia durante semanas o meses.

Riesgos y mitigaciones

  • La estrategia es sensible a los parámetros. La elección subóptima de 3 períodos SMA o 1 EMA puede deteriorar la calidad de la señal. Los parámetros deben optimizarse para diferentes instrumentos.

  • El riesgo de brecha no se maneja. Noticias fundamentales repentinas de que los precios de brecha podrían causar pérdidas.

Oportunidades de mejora

  • Se pueden añadir más marcos de tiempo de las EMA o de las EMA para mejorar aún más la exactitud de la tendencia.

  • Se puede probar un stop loss de precio moderado para bloquear las ganancias mientras se reducen las pérdidas en movimientos extremos.

  • El aprendizaje automático puede optimizar dinámicamente los parámetros para adaptarse a las condiciones cambiantes del mercado.

Conclusión

La estrategia es robusta y confiable en general, utilizando cruces MA para determinar la tendencia complementada por filtro EMA.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #02 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Más.