Estrategias de seguimiento de tendencias basadas en medias móviles


Fecha de creación: 2024-01-22 17:26:04 Última modificación: 2024-01-22 17:26:04
Copiar: 0 Número de Visitas: 575
1
Seguir
1617
Seguidores

Estrategias de seguimiento de tendencias basadas en medias móviles

Descripción general

Esta estrategia utiliza las medias móviles rápidas y las medias móviles lentas para construir señales de negociación y permitir la identificación y seguimiento de tendencias. La estrategia genera una señal de compra cuando la línea rápida atraviesa la línea lenta; genera una señal de venta cuando la línea rápida atraviesa la línea lenta.

Principio de estrategia

Esta estrategia utiliza el promedio móvil exponencial de dos períodos diferentes como base para la toma de decisiones comerciales. El parámetro de promedio móvil rápido se establece en 30 días para capturar cambios en los precios a corto plazo. El parámetro de promedio móvil lento se establece en 100 días para determinar la dirección de la tendencia de la línea larga en los precios.

Cuando la línea rápida atraviesa la línea lenta desde abajo, indica que el mercado entra en una tendencia ascendente, generando una señal de compra; cuando la línea rápida atraviesa la línea lenta desde arriba, indica que el mercado entra en una tendencia descendente, generando una señal de venta.

Ventajas estratégicas

La estrategia tiene las siguientes ventajas:

  1. La construcción de la línea uniforme es eficaz para eliminar el ruido de los mercados a corto plazo.
  2. El uso de una estrategia de doble equilátero permite determinar claramente la dirección de la tendencia.
  3. Para optimizar los parámetros, se puede personalizar el ciclo promedio rápido y lento.
  4. Con la función de seguimiento de tendencias medianas y largas y ajustes a corto plazo.
  5. Las reglas son sencillas, claras, fáciles de entender y adecuadas para los principiantes.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Cuando los precios se encuentran en una corrección horizontal, es fácil generar señales de negociación incorrectas. Se puede reducir el riesgo optimizando los parámetros de la línea media.
  2. En caso de que no se puedan evaluar y manejar eficazmente las situaciones excepcionales de fluctuaciones bruscas de los precios, se puede establecer un stop loss para controlar el riesgo.
  3. El sistema de línea media en sí mismo es retrasado y puede perder el punto de inflexión de precios. Se puede optimizar en combinación con otros indicadores.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimización de los parámetros de ciclo de la línea media para mejorar la rentabilidad.
  2. Añadir otros indicadores de criterio, como el indicador de volumen de transacciones, para evitar falsas rupturas.
  3. Aumentar las estrategias de stop loss y controlar las pérdidas individuales.
  4. Combinado con indicadores de tendencia, para determinar la intensidad de la tendencia y evitar su reversión.
  5. Se ha añadido la función de optimización de parámetros para que la estrategia sea más universal.

Resumir

Esta estrategia se basa en un sistema de toma de decisiones de comercio basado en dos líneas medias, para juzgar la tendencia del mercado a través de la relación de precios de las líneas medias rápidas y lentas, la generación de señales es simple y clara. La estrategia filtra parte del ruido, puede ser fluida y adecuada para el comercio de tendencias de líneas medias y largas.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)