Estrategia de impulso de doble SMA

El autor:¿ Qué pasa?, fecha: 2024-01-17 15:05:08
Las etiquetas:

img

Resumen general

La estrategia de impulso de doble SMA es una estrategia de negociación basada en el análisis técnico que genera señales de compra y venta basadas en dos indicadores simples de media móvil (SMA).

Estrategia lógica

La estrategia utiliza dos indicadores de SMA con ventanas de tiempo cortas y largas: una SMA rápida (longitud 9 períodos) y una SMA lenta (longitud 45 períodos).

Se genera una señal larga/compra cuando el precio de cierre de la acción cruza por encima de las líneas SMA rápida y lenta, lo que indica el comienzo de una tendencia alcista.

Se genera una señal corta/venta cuando el precio cruza por debajo de ambas líneas SMA, lo que indica el comienzo de una tendencia bajista.

Los niveles de stop loss se establecen dinámicamente en el máximo del día anterior (para operaciones cortas) y el mínimo del día anterior (para operaciones largas).

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. Utiliza una combinación de SMA a corto y largo plazo para capturar las tendencias emergentes a mediano plazo
  2. La colocación de stop loss adaptable reduce el riesgo y permite que las ganancias corran
  3. Fácil de entender e implementar
  4. Se desempeña bien en todas las acciones y mercados durante las condiciones de tendencia

Sin embargo, al igual que todas las estrategias de análisis técnico, puede tener un rendimiento inferior durante los mercados de rango limitado y de whipsaw con frecuentes señales falsas.

Análisis de riesgos

Los principales riesgos de esta estrategia son:

  1. Propensa a cambios bruscos y señales falsas: Dado que se basa únicamente en los cruces de SMA, la estrategia puede enfrentar cambios bruscos y señales falsas durante los mercados laterales o agitados, creando costos comerciales innecesarios. Esto se puede mitigar combinando con otros indicadores como el RSI.

  2. Vulnerable a inversiones repentinas de tendencia: las inversiones rápidas después de las entradas de cruce de SMA pueden alcanzar los niveles de stop loss rápidamente antes de que se forme una tendencia.

  3. Riesgo de sobreoptimización por ajuste de parámetros: La optimización extensiva de las longitudes de SMA y otros parámetros para que la curva se ajuste a los datos históricos puede conducir a un bajo rendimiento en el comercio en vivo.

Oportunidades de mejora

Algunas formas en que se puede mejorar esta estrategia son:

  1. Añadir otros indicadores como el RSI para la confirmación de operaciones adicionales para mejorar el tiempo y la precisión de las señales

  2. Incorporación de métodos dinámicos de colocación de pérdidas de detención como ATR o salidas de lámpara de araña para adaptarse mejor a la volatilidad del mercado

  3. Optimización de las longitudes de SMA basadas en la volatilidad histórica y los plazos de negociación para diferentes acciones

  4. Añadir reglas sólidas para la gestión de fondos y el tamaño de las posiciones para maximizar los rendimientos y limitar los retiros

Conclusión

En resumen, la estrategia Dual SMA Momentum ofrece un enfoque sencillo para operar con tendencias a corto y mediano plazo. Aunque es básica en su enfoque, refinamientos como filtros adicionales, paradas dinámicas y optimizaciones prudentes pueden ayudar a mejorar sus rendimientos ajustados al riesgo. Usado selectivamente durante las tendencias alcistas y bajistas de las acciones, puede capturar movimientos rentables.


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast SMA Length")
slow_length = input(45, title="Slow SMA Length")

// Calculate moving averages
fast_sma = ta.sma(close, fast_length)
slow_sma = ta.sma(close, slow_length)

// Buy condition
buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma)

// Sell condition
sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma)

// Calculate stop loss levels
prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on)
prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on)

// Plot signals on the chart
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit conditions
long_stop_loss = sell_condition ? prev_low : na
short_stop_loss = buy_condition ? prev_high : na

strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss)
strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss)

strategy.entry("Long", strategy.long, when=buy_condition)
strategy.entry("Short", strategy.short, when=sell_condition)


Más.