Estrategia de seguimiento de la tendencia de la media móvil doble

El autor:¿ Qué pasa?, Fecha: 2024-02-04 15:57:12
Las etiquetas:

img

Resumen general

La estrategia de seguimiento de tendencia de la media móvil doble utiliza una combinación de medias móviles rápidas y lentas para determinar la dirección de la tendencia, junto con el color del cuerpo del candelabro como señales de entrada.

Principio

La estrategia utiliza un promedio móvil lento de 20 períodos para definir la tendencia general. El cruce ascendente sugiere una tendencia alcista mientras que el cruce descendente sugiere una tendencia bajista. Un MA rápido de 5 períodos sirve como un filtro de entrada. Las operaciones se activan solo cuando el precio rompe el MA rápido. Además, se comprueban los colores del cuerpo de la vela N recientes. Las señales largas se activan cuando el color del cuerpo se vuelve rojo en una tendencia alcista. Las señales cortas se activan cuando el color del cuerpo se vuelve verde en una tendencia bajista. Esto ayuda a evitar breakouts falsos.

La estrategia examina la acción del precio utilizando tres dimensiones: tendencia, MA a corto plazo y cuerpo de velas, mejorando la confiabilidad de la señal.

Ventajas

  1. Combina el seguimiento de tendencias y la reversión media, adaptable en todos los entornos de mercado.

  2. La revisión de múltiples factores de las señales previas mejora la tasa de ganancia al evitar señales falsas.

  3. Optimizable utilizando las longitudes MA, los colores de las velas verificados, etc.

  4. Lógica clara y concisa, para principiantes.

Los riesgos

  1. Los cambios en los mercados de rango pueden conducir a pérdidas / reducciones.

  2. Los posibles golpes en los laterales pueden resultar en pérdidas.

  3. Se necesita una extensa prueba posterior para validar los parámetros y el rendimiento.

Mejoramiento

  1. Explorar otros tipos de OMA, por ejemplo, EMA, KAMA, etc.

  2. Añadir las reglas de dimensionamiento de las posiciones, por ejemplo, cantidad fija o porcentaje de capital.

  3. Considere la posibilidad de salir si el precio cierra por debajo de la media media lenta.

  4. Prueba en diferentes instrumentos para verificar la estabilidad.

Conclusión

La estrategia de doble MA obtiene ganancias de las operaciones de tendencia al tiempo que extrae alfa de reversión media en plazos más cortos. El rendimiento y el potencial de ganancia se pueden mejorar aún más a través de la optimización. A pesar de su simplicidad, permite a los principiantes comprender los conceptos clave en torno a la combinación de tendencia y reversión media.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA")
src = input(close, defval = close, title = "Source of Slow MA")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(src, fastlen)

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Trend
ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
trend = low > ma ? 1 : high < ma ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Signals
up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

//Lines
colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast MA")
plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA")

//Trading
longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Más.