Estrategia de cruce de dos medias móviles

El autor:¿ Qué pasa?, fecha: 2024-01-04 15:03:14
Las etiquetas:

img

Resumen general

Esta estrategia utiliza cruces de promedios móviles simples e indicador de rango verdadero promedio para generar señales de compra y venta. Pertenece a las estrategias de seguimiento de tendencias.

Estrategia lógica

  1. Calcular la media móvil simple de 50 días SMA1 y la media móvil simple de 100 días SMA2
  2. Cuando el SMA1 cruza el SMA2, se genera una señal de compra.
  3. Calcular el ATR de 14 días
  4. El ATR multiplicado por un factor establecido se utiliza como punto de parada de pérdida
  5. Cuando se activa una señal de compra, el precio de cierre menos el punto de stop loss es el punto de venta de stop loss.

Se puede ver que esta estrategia se basa principalmente en la capacidad de juzgar la tendencia de las medias móviles y la capacidad de control de riesgos de ATR. La lógica es simple y fácil de entender e implementar.

Ventajas

  1. Lógica sencilla, fácil de implementar, adecuada para principiantes
  2. Las medias móviles pueden rastrear las tendencias de manera efectiva
  3. ATR stop loss puede controlar eficazmente las pérdidas de eventos individuales de cisne negro
  4. Los parámetros se pueden ajustar fácilmente para diferentes entornos de mercado

Los riesgos

  1. Muchas señales falsas pueden desencadenarse durante los mercados de rango, faltando puntos de reversión
  2. La ATR puede no reaccionar con suficiente sensibilidad a los mercados que cambian rápidamente, lo que puede dar lugar a pérdidas mayores de las esperadas
  3. La configuración de los parámetros y el multiplicador ATR dependen de la experiencia.
  4. Las medias móviles duales tienen un efecto de retraso, pueden perder puntos de inflexión

Gestión de riesgos:

  1. Acortar los períodos de media móvil para hacer más sensible el indicador
  2. Ajuste dinámico del multiplicador ATR para una pérdida de parada más flexible
  3. Añadir otros indicadores para filtrar señales falsas
  4. Operar basándose en juicios de estructura de marcos de tiempo más amplios

Direcciones de optimización

  1. Pruebe otros tipos de medias móviles, como las EMA que filtran mejor
  2. Considere la posibilidad de sustituir el ATR por un stop loss dinámico con canales Keltner, etc.
  3. Añadir indicadores de apoyo como el volumen a las señales de filtro
  4. Identificar los puntos clave de la tendencia con conceptos como Ondas de Elliott, resistencia de soporte, etc.

Resumen de las actividades

Esta es una estrategia típica de seguimiento de tendencia, utilizando promedios móviles para determinar la dirección de la tendencia y ATR stop loss para controlar los riesgos. La lógica es simple y fácil de comprender. Pero tiene ciertos riesgos de retraso y señales falsas. Se pueden hacer mejoras a través de la afinación de parámetros, optimización de indicadores, incorporación de más factores, etc. para hacer que la estrategia sea más adaptable. En general, esta estrategia es adecuada para la práctica y optimización de principiantes, pero debe tener cuidado al aplicarla en la negociación real.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")

// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)

// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")

// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)

// Step 5. Execute trades based on conditions
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", "Sell", stop=shortStopLoss)


Más.