Estrategia de cruce de promedio móvil simple

El autor:¿ Qué pasa?, Fecha: 2023-11-14 16:17:16
Las etiquetas:

img

Resumen general

Esta estrategia genera señales de compra y venta basadas en cruz dorada y cruz de muerte de múltiples promedios móviles simples (SMA) con diferentes períodos de tiempo para determinar la dirección de la tendencia. Utiliza 4 SMA - 20 días, 50 días, 100 días y 200 días SMA. Cuando el SMA a corto plazo cruza por encima del SMA a largo plazo, se considera una cruz de oro y se activa una señal de compra. Cuando el SMA a corto plazo cruza por debajo del SMA a largo plazo, se considera una cruz de muerte y se activa una señal de venta.

Estrategia lógica

La lógica central de esta estrategia se basa en los siguientes puntos:

  1. Se calcularán múltiples SMA con diferentes períodos de tiempo, incluidos los de 20 días, 50 días, 100 días y 200 días.

  2. Verifique las situaciones de cruce entre las SMA a corto plazo (20 días) y las SMA a largo plazo (50 días, 100 días, 200 días).

  3. Cuando la SMA de 20 días cruza por encima de la SMA de 50 días, se considera una cruz dorada y se activa una señal de compra.

  4. La tendencia más amplia está determinada por las SMA de período más largo que se mantienen por encima de las SMA de período más corto, es decir, SMA de 50 días > SMA de 20 días.

  5. La prioridad para las señales de entrada es: SMA de 20 días frente a SMA de 50 días > SMA de 20 días frente a SMA de 100 días > SMA de 20 días frente a SMA de 200 días.

  6. La señal de salida se genera cuando la SMA de 20 días cruza de nuevo por debajo de la SMA de 50 días.

La estrategia se basa principalmente en los cruces de SMA para determinar la dirección de la tendencia. Las cruces de oro en los mercados alcistas y las cruces de muerte en los mercados bajistas pueden señalar el inicio de una tendencia potencial. Además, las SMA a largo plazo que se mantienen por encima de las SMA a corto plazo sirven como confirmación de la tendencia más grande.

Ventajas de la estrategia

Las principales ventajas de esta estrategia incluyen:

  1. La lógica es simple y fácil de entender e implementar.

  2. Las SMA son mejores que las EMA para filtrar el ruido del mercado e identificar la tendencia.

  3. El uso de múltiples SMA de período de tiempo mejora la confiabilidad de la señal.

  4. El ajuste de la prioridad de las señales de entrada evita la entrada prematura.

  5. Los períodos y colores de SMA personalizables permiten la optimización de la estrategia.

  6. Aplicable a múltiples plazos para diferentes estilos de negociación.

  7. El sistema de cruce SMA es muy eficaz para determinar la dirección de la tendencia principal.

Riesgos de la estrategia

Algunos riesgos asociados con esta estrategia:

  1. Puede producirse demasiadas señales falsas durante los mercados de variación con cruces frecuentes de SMA.

  2. Los períodos de SMA fijos no pueden adaptarse a los cambios del mercado, los parámetros deben optimizarse en función de la tendencia y la volatilidad.

  3. Los cruces de la SMA por sí solos no pueden determinar una entrada precisa, se deben incorporar otros indicadores como el MACD.

  4. Las SMA tienen carácter retrasado, la hora de entrada necesita optimización o se deben utilizar órdenes límite.

  5. La aplicación estricta del stop loss es crucial para la preservación del capital.

  6. Debe considerarse el impacto de los costes de negociación en la rentabilidad.

Mejora de la estrategia

Algunas maneras de optimizar esta estrategia:

  1. Optimizar los períodos de SMA dinámicamente en función de las condiciones del mercado y del ATR.

  2. Añadir otros indicadores como MACD, RSI para el momento de entrada.

  3. Añadir un filtro de tendencia como ADX para evitar señales falsas durante la consolidación.

  4. Optimizar los métodos de stop loss como el stop ATR o el stop de trailing.

  5. Gestionar el tamaño de las posiciones dinámicamente en función del tamaño de la cuenta.

  6. Prueba de parámetros óptimos en diferentes clases de activos.

  7. Incorporar múltiples marcos de tiempo para garantizar la coherencia con la tendencia de los marcos de tiempo más altos.

Conclusión

En resumen, este simple sistema de cruce de SMA es confiable para determinar la dirección de la tendencia y es adecuado para la mayoría de los operadores. Sin embargo, tiene algunos problemas de retraso y puede generar señales falsas. Debemos buscar mejorar el tiempo de entrada, stop loss, dimensionamiento de posiciones, etc. para hacerlo robusto en entornos de mercado cambiantes. La combinación de múltiples indicadores técnicos y evaluación de tendencias es clave para construir una estrategia de seguimiento de tendencia sólida.


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xyzdesign1989
//@version=5
strategy("SMA crossover buy/sell [SCSM_Algo]", overlay=true, margin_long=3000, margin_short=3000)


BuyCond = ta.crossover(ta.sma(close, 20), ta.sma(close, 50)) and ta.sma(close, 20) > ta.sma(close, 50) and  ta.sma(close, 50) > ta.sma(close, 100) and  ta.sma(close, 100) > ta.sma(close, 200) or (ta.crossover(ta.sma(close, 20), ta.sma(close, 100)) and ta.sma(close, 20) > ta.sma(close, 50))
if (BuyCond)
    strategy.entry("SCSM 🤲 Buy", strategy.long)

SellCond = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50))
if (SellCond)
    strategy.entry("الحمد للہ،Sell", strategy.short)

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

show_ma1   = input(true   , "MA №1", inline="MA #1")
ma1_type   = input.string("SMA"  , ""     , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma1_source = input(close  , ""     , inline="MA #1")
ma1_length = input.int(20     , ""     , inline="MA #1", minval=1)
ma1_color  = input(#0929f6, ""     , inline="MA #1")
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(show_ma1 ? ma1 : na, color = ma1_color, title="MA №1")

show_ma2   = input(true   , "MA №2", inline="MA #2")
ma2_type   = input.string("SMA"  , ""     , inline="MA #2", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma2_source = input(close  , ""     , inline="MA #2")
ma2_length = input.int(50     , ""     , inline="MA #2", minval=1)
ma2_color  = input(#00fb04, ""     , inline="MA #2")
ma2 = ma(ma2_source, ma2_length, ma2_type)
plot(show_ma2 ? ma2 : na, color = ma2_color, title="MA №2")

show_ma3   = input(true   , "MA №3", inline="MA #3")
ma3_type   = input.string("SMA"  , ""     , inline="MA #3", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma3_source = input(close  , ""     , inline="MA #3")
ma3_length = input.int(100    , ""     , inline="MA #3", minval=1)
ma3_color  = input(#131313, ""     , inline="MA #3")
ma3 = ma(ma3_source, ma3_length, ma3_type)
plot(show_ma3 ? ma3 : na, color = ma3_color, title="MA №3")

show_ma4   = input(true   , "MA №4", inline="MA #4")
ma4_type   = input.string("SMA"  , ""     , inline="MA #4", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
ma4_source = input(close  , ""     , inline="MA #4")
ma4_length = input.int(200    , ""     , inline="MA #4", minval=1)
ma4_color  = input(#f60c0c, ""     , inline="MA #4")
ma4 = ma(ma4_source, ma4_length, ma4_type)
plot(show_ma4 ? ma4 : na, color = ma4_color, title="MA №4")

Más.