Desarrollo de una estrategia de media móvil exponencial de 2/20

El autor:¿ Qué pasa?, Fecha: 2023-10-08 15:14:17
Las etiquetas:

Resumen general

Esta estrategia utiliza una media móvil exponencial dual para determinar la dirección de la tendencia basada en el precio que rompe a través de la media móvil.

Estrategia lógica

La estrategia se basa en el indicador de la media móvil exponencial dual. El parámetro longitud en el indicador establece el período de la media móvil a 20 días. El parámetro xPrice se establece para el cierre del precio. El parámetro xXA exponencial de 20 días se calcula luego. También se calculan el máximo nHH y el mínimo nLL en los últimos dos días. Si nLL es mayor que el promedio móvil o nHH es menor que el promedio móvil, el menor de nLL y nHH se toma como el precio clave nXS. Si el precio de cierre es mayor que el promedio móvil y el precio clave, va largo. Si el precio de cierre es menor que el promedio y el precio clave, va corto.

La estrategia juzga la dirección del precio que rompe la media móvil y combina el máximo máximo y el mínimo mínimo en tiempo real para determinar la validez de la ruptura para evitar falsas rupturas.

Análisis de ventajas

  1. La media móvil exponencial dual puede determinar con mayor precisión la dirección de la tendencia.

  2. La combinación del máximo más alto y el mínimo más bajo para juzgar la validez de la ruptura evita las falsas rupturas causadas por las fluctuaciones de precios.

  3. La dirección largo/corto se puede revertir fácilmente utilizando el parámetro inverso para adaptarse a diferentes entornos de mercado.

  4. Sólo el comercio de breakouts filtra eficazmente el ruido del mercado.

Análisis de riesgos

  1. La media móvil exponencial dual a veces reacciona lentamente y puede perder oportunidades comerciales a corto plazo.

  2. Los sistemas de medias móviles son propensos a generar frecuentes señales falsas durante las consolidaciones de mercado.

  3. La estrategia se adapta a entornos de mercado con tendencias obvias y no es adecuada para mercados volátiles de rango.

  4. No tiene en cuenta las salidas de pérdidas y tiene el riesgo de aumentar las pérdidas.

  5. No establece el tamaño de las posiciones y puede conducir a un control de riesgos inadecuado.

Direcciones de optimización

  1. Otros indicadores pueden combinarse para juzgar las tendencias del mercado y evitar operaciones frecuentes durante las consolidaciones.

  2. Se pueden añadir paradas dinámicas para controlar el riesgo de pérdidas de operaciones individuales.

  3. Los parámetros de la media móvil pueden ajustarse dinámicamente en función de la volatilidad del mercado para optimizar la sensibilidad del indicador.

  4. El tamaño de las posiciones se puede configurar para controlar los riesgos mientras se amplían los beneficios.

  5. Los parámetros se pueden optimizar utilizando el análisis de avanzada.

Resumen de las actividades

Esta estrategia utiliza un indicador de media móvil exponencial dual para determinar la dirección de la tendencia del precio, mientras que combina el máximo más alto y el mínimo más bajo para evitar falsas rupturas.


/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/12/2016
// Strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Strategy 2/20 Exponential Moving Average", overlay = true)
Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
xPrice = close
xXA = ema(xPrice, Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos =  iff(close > xXA and close > nXS , 1,
	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nXS, color=blue, title="XAverage")

Más.