Estrategias de seguimiento de tendencias basadas en medias móviles


Fecha de creación: 2023-11-27 15:57:15 Última modificación: 2023-11-27 15:57:15
Copiar: 0 Número de Visitas: 565
1
Seguir
1617
Seguidores

Estrategias de seguimiento de tendencias basadas en medias móviles

Descripción general

La estrategia es una estrategia de seguimiento de tendencias basada en la línea de equilibrio. Utiliza el indicador de gráficos de la nube de Ichimoku para determinar la dirección de la tendencia, combinada con una señal de filtro de media móvil de 200 días para lograr el seguimiento de la tendencia.

Principio de estrategia

La estrategia utiliza principalmente la línea de conversión y la línea de base de un gráfico de nubes para determinar la dirección de la tendencia. La línea de conversión es el promedio de los precios medios de los últimos 9 días, y la línea de base es el promedio de los precios medios de los últimos 26 días.

La estrategia también utiliza las medias móviles de 200 días para filtrar las señales. La entrada de la señal de compra se produce solo cuando el precio de cierre está por encima de la línea de 200 días. Esto puede filtrar la mayoría de las señales falsas.

En el caso de la salida, la estrategia es sencilla y utiliza la línea de base de penetración bajo la línea de conversión como señal de equilibrio.

Análisis de las ventajas

Esta estrategia combina el indicador de tendencias de la nube y el indicador de filtración de tendencias a largo plazo de la línea de 200 días, lo que permite un seguimiento eficaz de las tendencias y filtrar la mayoría de las señales falsas. La adopción de parámetros como la media de los precios medios puede reducir el impacto en la línea media debido a las fluctuaciones anormales de los precios.

En comparación con el uso de indicadores como las medias móviles, esta estrategia puede capturar mejor los puntos de inflexión de la tendencia y, por lo tanto, ajustar las posiciones a tiempo. Esta es su mayor ventaja.

Análisis de riesgos

La estrategia depende principalmente de los indicadores de un gráfico de nubes para determinar la dirección de la tendencia, mientras que el propio gráfico de nubes también produce una señal errónea. Si el juicio se desvía, la estrategia puede causar pérdidas.

Además, la configuración incorrecta de los parámetros también puede causar un mal rendimiento de la estrategia. Si los parámetros de la línea de conversión son demasiado cortos, es fácil formar una falsa señal; si los parámetros de la línea base son demasiado largos, el efecto de seguimiento será deficiente.

Dirección de optimización

Se puede considerar la combinación de otros indicadores para mejorar la calidad de la señal, como el indicador KDJ para determinar las zonas de sobreventa para filtrar las señales de sobreventa. O el uso del indicador ATR para establecer el stop loss.

En cuanto a los parámetros, se pueden probar más combinaciones, como ajustar los parámetros de la línea de conversión de 5 o 7 días, etc., para obtener una señal de negociación más sensible. También se puede probar modificar los parámetros de la línea base de aproximadamente 20 días para equilibrar el efecto de seguimiento.

Además, se puede considerar el cierre de la estrategia en un entorno de fluctuación específica para evitar el efecto de la agitación.

Resumir

La estrategia integra las ventajas de la determinación de tendencias y los indicadores de filtración a largo plazo, lo que permite un seguimiento eficaz de las tendencias a medio y largo plazo. Al mismo tiempo, la configuración de los parámetros y las medidas de control del viento también requieren una optimización continua para reducir el impacto de las señales falsas y la volatilidad. En general, la estrategia puede funcionar y tiene cierto valor operativo real.

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

//@version=3
strategy(title="TK Cross > EMA200 Strat",  overlay=true)

ema200 = ema(close, 200)
conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3)
plot(baseLine, color=#991515, title="Base Line", linewidth=3)
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)

plot(ema200, color=purple, linewidth=4,title='ema200')
strategy.initial_capital = 50000

strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200)
strategy.close('tkcross', when=conversionLine<baseLine)


start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01")
increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" )
maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10")
sus = input(true, "Show Up Trending Parabolic Sar")
sds = input(true, "Show Down Trending Parabolic Sar")
disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2")
//"------Step Setting Definition------"
//"A higher step moves SAR closer to the price action, which makes a reversal more likely."
//"The indicator will reverse too often if the step is set too high."

//"------Maximum Step Definition-----")
//"The sensitivity of the indicator can also be adjusted using the Maximum Step."
//"While the Maximum Step can influence sensitivity, the Step carries more weight"
//"because it sets the incremental rate-of-increase as the trend develops"

startCalc = start * .01
incrementCalc = increment * .01
maximumCalc = maximum * .10

sarUp = sar(startCalc, incrementCalc, maximumCalc)
sarDown = sar(startCalc, incrementCalc, maximumCalc)

colUp = close >= sarDown ? lime : na
colDown = close <= sarUp ? red : na

plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp)
plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)