Estrategia de seguimiento de tendencias a largo plazo basada en la combinación de medias móviles


Fecha de creación: 2024-02-23 14:54:34 Última modificación: 2024-02-23 14:54:34
Copiar: 1 Número de Visitas: 612
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias a largo plazo basada en la combinación de medias móviles

Descripción general

Esta estrategia permite el seguimiento de posiciones largas mediante el cálculo de combinaciones de varios conjuntos de medias lentas y rápidas. Se genera una señal de compra cuando la media rápida se desplaza hacia arriba desde abajo hacia la media lenta; se genera una señal de venta cuando la media rápida se desplaza hacia abajo desde arriba hacia la media lenta.

Principio de estrategia

  1. Calcula el promedio de la EMA rápida de 7 grupos del 3/6/9/12/15/18/21
  2. Calcula el promedio de la EMA lenta de 14 grupos para el 24/27/30/…/200.
  3. Establezca las reglas de determinación de color de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea de la línea.
  4. Establezca la regla de juicio de color de la línea uniforme de la EMA lenta: la línea de 24 días en la línea de 25 días representa un alza, configurada en verde; la descendencia representa un descenso, configurada en rojo.
  5. Cuando el grupo de la línea EMA rápida cruza el grupo de la línea EMA lenta de abajo hacia arriba, se genera una señal de compra que representa un cambio de tendencia hacia arriba.
  6. Cuando el grupo de la línea EMA rápida pasa de arriba hacia abajo a través del grupo de la línea EMA lenta, se genera una señal de venta que representa un cambio de tendencia a la baja.

La combinación de las líneas medias rápidas y lentas permite identificar los cambios en las tendencias de las líneas medias y largas y realizar un seguimiento de las líneas largas.

Ventajas estratégicas

  1. La combinación de la línea media lenta y rápida, la capacidad de reconocer el cambio de tendencia es fuerte. La línea media rápida puede reconocer la tendencia a corto plazo, el filtro de la línea media lenta se ajusta, el uso combinado puede mejorar la precisión de identificación.
  2. La combinación de varias líneas medias permite una mayor claridad y fiabilidad de las señales, evitando así las falsas.
  3. Utiliza diferentes parámetros de ciclo EMA para identificar tendencias de línea media larga en diferentes niveles, con un ciclo de operación flexible.
  4. Las estrategias de seguimiento de posiciones largas se ajustan al modelo de la mayoría de los fondos privados que operan en líneas medianas y largas.

Riesgo estratégico

  1. El tiempo de seguimiento de las posiciones es demasiado largo y puede perderse la oportunidad de negociar en línea corta.
  2. La combinación de EMA medias no es adecuada para capturar fluctuaciones de precios a corto plazo. Cuando se encuentran con una gran volatilidad en los precios, puede generar señales de negociación innecesarias.
  3. La configuración incorrecta de los parámetros puede causar señales de transacción demasiado frecuentes o conservadoras, y se recomienda la verificación en vivo después de probar los parámetros.

Recomendaciones para optimizar la estrategia

  1. Aumentar el número de conjuntos de líneas medias rápidas y configurar más EMA de corto período, mejorando la capacidad de discernimiento de tendencias de líneas cortas.
  2. Aumentar el número de conjuntos de medias lentas y establecer más EMA de períodos medianos y largos para mejorar la capacidad de juicio sobre las tendencias de medias y largas líneas.
  3. Aumentar la confirmación de la señal de MA y comprobar el apoyo de la línea media de MA al emitir la señal de la línea media de EMA al mismo tiempo para reducir la falsa señal.
  4. La combinación de un análisis de volumen de transacciones con un análisis de espacio múltiple evita la generación de señales falsas en el caso de una ruptura violenta de la oscilación de precios.

Resumir

Esta estrategia es una estrategia típica de seguimiento de posiciones mediante la construcción de un sistema combinado de líneas medias rápidas y lentas para identificar cambios en la tendencia de la línea media larga en los precios de las acciones. Hay mucho espacio para la optimización en la selección de parámetros y el filtrado de señales, y los inversores pueden adaptarse a su propio estilo para adaptarse a diferentes circunstancias comerciales.

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

//@version=3
strategy("CM Super Guppy ala WY", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=99, overlay=true)


///////////////////////////////////////////////
//* Backtesting Period Selector | Component *//
///////////////////////////////////////////////

//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//

testStartYear = input(2017, "Backtest Start Year") 
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(3, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

///////////////////////////////////////////////

src = close, 
len1 = input(3, minval=1, title="Fast EMA 1")
len2 = input(6, minval=1, title="Fast EMA 2")
len3 = input(9, minval=1, title="Fast EMA 3")
len4 = input(12, minval=1, title="Fast EMA 4")
len5 = input(15, minval=1, title="Fast EMA 5")
len6 = input(18, minval=1, title="Fast EMA 6")
len7 = input(21, minval=1, title="Fast EMA 7")
//Slow EMA
len8 = input(24, minval=1, title="Slow EMA 8")
len9 = input(27, minval=1, title="Slow EMA 9")
len10 = input(30, minval=1, title="Slow EMA 10")
len11 = input(33, minval=1, title="Slow EMA 11")
len12 = input(36, minval=1, title="Slow EMA 12")
len13 = input(39, minval=1, title="Slow EMA 13")
len14 = input(42, minval=1, title="Slow EMA 14")
len15 = input(45, minval=1, title="Slow EMA 15")
len16 = input(48, minval=1, title="Slow EMA 16")
len17 = input(51, minval=1, title="Slow EMA 17")
len18 = input(54, minval=1, title="Slow EMA 18")
len19 = input(57, minval=1, title="Slow EMA 19")
len20 = input(60, minval=1, title="Slow EMA 20")
len21 = input(63, minval=1, title="Slow EMA 21")
len22 = input(66, minval=1, title="Slow EMA 22")
len23 = input(200, minval=1, title="EMA 200")

//Fast EMA
ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)
ema4 = ema(src, len4)
ema5 = ema(src, len5)
ema6 = ema(src, len6)
ema7 = ema(src, len7)

//Slow EMA
ema8 = ema(src, len8)
ema9 = ema(src, len9)
ema10 = ema(src, len10)
ema11 = ema(src, len11)
ema12 = ema(src, len12)
ema13 = ema(src, len13)
ema14 = ema(src, len14)
ema15 = ema(src, len15)
ema16 = ema(src, len16)
ema17 = ema(src, len17)
ema18 = ema(src, len18)
ema19 = ema(src, len19)
ema20 = ema(src, len20)
ema21 = ema(src, len21)
ema22 = ema(src, len22)

//EMA 200
ema23 = ema(src, len23)

//Fast EMA Color Rules
colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6 and ema6 > ema7)
colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6 and ema6 < ema7)
//Slow EMA Color Rules
colslowL = ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 and ema12 > ema13 and ema13 > ema14 and ema14 > ema15 and ema15 > ema16 and ema16 > ema17 and ema17 > ema18 and ema18 > ema19 and ema19 > ema20 and ema20 > ema21 and ema21 > ema22
colslowS = ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 and ema12 < ema13 and ema13 < ema14 and ema14 < ema15 and ema15 < ema16 and ema16 < ema17 and ema17 < ema18 and ema18 < ema19 and ema19 < ema20 and ema20 < ema21 and ema21 < ema22 
//Fast EMA Final Color Rules
colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray
//Slow EMA Final Color Rules
colFinal2 = colslowL  ? lime : colslowS ? red : gray
//Fast EMA Plots
p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=colFinal)
plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=colFinal)
plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=colFinal)
plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=colFinal)
plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=colFinal)
plot(ema6, title="Fast EMA 6", style=line, linewidth=1, color=colFinal)
p2=plot(ema7, title="Fast EMA 7", style=line, linewidth=2, color=colFinal)

//Slow EMA Plots
p3=plot(ema8, title="Slow EMA 8", style=line, linewidth=1, color=colFinal2)
plot(ema9, title="Slow EMA 9", style=line, linewidth=1, color=colFinal2)
plot(ema10, title="Slow EMA 10", style=line, linewidth=1, color=colFinal2)
plot(ema11, title="Slow EMA 11", style=line, linewidth=1, color=colFinal2)
plot(ema12, title="Slow EMA 12", style=line, linewidth=1, color=colFinal2)
plot(ema13, title="Slow EMA 13", style=line, linewidth=1, color=colFinal2)
plot(ema14, title="Slow EMA 14", style=line, linewidth=1, color=colFinal2)
plot(ema15, title="Slow EMA 15", style=line, linewidth=1, color=colFinal2)
plot(ema16, title="Slow EMA 16", style=line, linewidth=1, color=colFinal2)
plot(ema17, title="Slow EMA 17", style=line, linewidth=1, color=colFinal2)
plot(ema18, title="Slow EMA 18", style=line, linewidth=1, color=colFinal2)
plot(ema19, title="Slow EMA 19", style=line, linewidth=1, color=colFinal2)
plot(ema20, title="Slow EMA 20", style=line, linewidth=1, color=colFinal2)
plot(ema21, title="Slow EMA 21", style=line, linewidth=1, color=colFinal2)
plot(ema22, title="Slow EMA 22", style=line, linewidth=2, color=colFinal2)
p4=plot(ema23, title="EMA 200", style=line, linewidth=2)


// Strategy Center
enterLong = colfastL and colslowL
exitLong = not colfastL

if testPeriod()
    strategy.entry("WY Long", strategy.long, when=enterLong, comment="WY Long")
else
    strategy.cancel(id="WY Long")

if testPeriod()
    strategy.close("WY Long", when=exitLong)