Estrategia de negociación de cruce de medias móviles dobles


Fecha de creación: 2023-11-02 14:21:24 Última modificación: 2023-11-02 14:21:24
Copiar: 0 Número de Visitas: 657
1
Seguir
1617
Seguidores

Estrategia de negociación de cruce de medias móviles dobles

Descripción general

La estrategia utiliza el cruce de dos medias móviles como una señal de negociación, en combinación con el ATR para realizar operaciones de seguimiento de tendencias. La idea central es hacer más cuando se atraviesa la media móvil a corto plazo y hacer un espacio cuando se atraviesa la media móvil a largo plazo, mientras se utiliza el ATR para establecer paradas de pérdida y paradas de seguimiento dinámico.

Principio de estrategia

La estrategia se basa en dos grupos de medias móviles para determinar la dirección de la tendencia. Las medias móviles rápidas tienen una duración de 25 días y las medias móviles lentas tienen una duración de 100 días.

Para filtrar algunas señales falsas, la estrategia añade un contador de cruces crossCount. La señal se activa solo si el promedio móvil rápido tiene menos cruces que maxNoCross durante el período de lookback (por defecto 25 días) (por defecto 10 veces).

Además, la estrategia añade un mecanismo de confirmación, es decir, que la señal se confirma si el precio vuelve a entrar entre dos medias móviles después de la emisión de la señal inicial.

Después de la entrada, la estrategia utiliza el indicador ATR para establecer la distancia de parada. El ATR mide el rango de fluctuación de los precios en el último período determinado, donde se utiliza 14 veces el ATR para establecer la distancia de parada. La línea de parada se mantiene flotando con el movimiento de los precios.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El uso de medias móviles dobles en combinación con un mecanismo de filtración cruzada puede filtrar eficazmente las señales falsas y capturar tendencias más fuertes.

  2. El gobierno de la República Democrática del Congo (RDC) ha anunciado el inicio de una nueva fase de la operación de rescate de refugiados.

  3. El uso de un ATR flotante para rastrear los pérdidas permite asegurar el máximo de ganancias y evitar una retirada excesiva.

  4. La optimización de los parámetros es más sencilla y fácil de aplicar.

  5. Puede aplicarse en una variedad de mercados, incluyendo monedas digitales y mercados básicos tradicionales.

  6. La integración de varios indicadores para la construcción de la estrategia hace que la estrategia sea más sólida.

Análisis de riesgos

El principal riesgo de esta estrategia es:

  1. En la fase de ajuste de la oscilación, las medias móviles se cruzan con frecuencia y pueden causar pérdidas múltiples.

  2. La configuración incorrecta de los parámetros de ATR puede causar un frenado demasiado relajado o demasiado apretado.

  3. Un salto muy alto o un Gap pueden desencadenar directamente el stop loss.

  4. Los eventos de gran magnitud que causan grandes fluctuaciones en los precios también pueden causar pérdidas directas.

  5. Los parámetros de media móvil no razonables pueden causar tendencias perdidas o generar demasiadas señales falsas.

  6. Los cambios recientes en el rango de fluctuación de los precios pueden causar que el ATR no se adapte a la distancia de pérdida.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Optimiza los parámetros de las medias móviles para encontrar la combinación más adecuada. Puede probar diferentes parámetros de periodicidad y medias móviles ponderadas.

  2. Prueba diferentes parámetros de ciclo ATR para encontrar la mejor distancia de pérdida.

  3. Añadir condiciones de filtración adicionales, como aumento de volumen de transacciones, indicadores de oscilación, etc., para mejorar la calidad de la señal.

  4. En este caso, el indicador de tendencia se utiliza para evaluar la situación y evitar que la economía se vea afectada por el impacto de la crisis.

  5. Aumentar el algoritmo de aprendizaje automático para optimizar automáticamente el conjunto de parámetros a través del entrenamiento de datos históricos.

  6. Busque más confirmaciones en los gráficos de gran escala y evite ser engañado por el ruido de las líneas cortas.

  7. Establecer las reglas de reducción de la posición de ganancias y bloquear las ganancias gradualmente.

Resumir

Esta estrategia integra el uso de múltiples indicadores técnicos, como el cruce de medias móviles dobles, filtración de tendencias, mecanismos de confirmación y paradas dinámicas ATR. Hay espacio para mejorar en la optimización de los parámetros y el control de riesgos, pero su idea de negociación es simple y clara, fácil de implementar y copiar, es una estrategia de seguimiento de tendencias más sólida.

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

//@version=3
strategy("QuantCat Intraday Strategy (15M)", overlay=true)

//MA's for basic signals, can experiment with these values

fastEMA = sma(close, 25)
slowEMA = sma(close, 100)

//Parameters for validation of position

lookback_value = 25
maxNoCross=10 //value used for maximum number of crosses on a certain MA to mitigate noise and maximise value from trending markets

//Amount of crosses on MA to filter out noise

ema25_crossover = (cross(close, fastEMA)) == true ? 1 : 0
ema25_crossover_sum = sum(ema25_crossover, lookback_value) ///potentially change lookback value to alter results
crossCount = (ema25_crossover_sum <= maxNoCross)

//Entries long

agrLong =  ((crossover(fastEMA, slowEMA)) and (crossCount == true)) ? true : false
consLong = ((close < fastEMA) and (close > slowEMA) and (fastEMA > slowEMA) and (crossCount == true)) ? true : false

//Entries short

agrShort =  ((crossunder(fastEMA, slowEMA)) and (crossCount == true)) ? true : false
consShort = ((close > fastEMA) and (close < slowEMA) and (fastEMA < slowEMA) and (crossCount == true)) ? true : false

//ATR

atrLkb = input(14, minval=1, title='ATR Stop Period')
atrRes = input("15",  title='ATR Resolution')
atr = request.security(syminfo.tickerid, atrRes, atr(atrLkb))

//Strategy

longCondition = ((agrLong or consLong) == true)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ((agrShort or consShort) == true)
if (shortCondition)
    strategy.entry("Short", strategy.short)

//Stop multiplier 

stopMult = 4

//horizontal stoplosses

longStop = na
longStop :=  shortCondition ? na : longCondition and strategy.position_size <=0 ? close - (atr * stopMult) : longStop[1] 
shortStop = na
shortStop := longCondition ? na : shortCondition and strategy.position_size >=0 ? close + (atr * stopMult) : shortStop[1]

//Strategy exit functions

strategy.exit("Long ATR Stop", "Long", stop=longStop)
strategy.exit("Short ATR Stop", "Short", stop=shortStop)

//Plots 

redgreen = (fastEMA > slowEMA) ? green : red
    
p1 = plot(fastEMA, title="Fast EMA", color=redgreen, linewidth=2) 
p2 = plot(slowEMA, title="Slow EMA", color=redgreen, linewidth=2) 
fill(p1, p2, color=redgreen)

s1 = plot(longStop, style=linebr, color=red, linewidth=2,     title='Long ATR Stop')
s2 = plot(shortStop, style=linebr, color=red, linewidth=2,  title='Short ATR Stop')

fill(p2, s1, color=red, transp=95)
fill(p2, s2, color=red, transp=95)