Estrategia de seguimiento de tendencias basada en múltiples indicadores

El autor:¿ Qué pasa?, Fecha: 2023-11-23 15:43:02
Las etiquetas:

img

Resumen general

Esta estrategia identifica tendencias combinando múltiples indicadores como RSI, MA, EMA y Bollinger Bands para implementar el seguimiento de tendencias. Cuando se identifica una tendencia ascendente relativamente baja, la estrategia establecerá una posición larga. Por el contrario, cuando se identifica una tendencia ascendente relativamente descendente, la estrategia establecerá una posición corta.

Principio

La lógica central de esta estrategia es identificar las tendencias de precios combinando RSI, MA, EMA y Bollinger Bands. Específicamente, se trazan simultáneamente dos líneas MA, una establecida en 10 períodos y la otra establecida en 5 períodos. Al mismo tiempo, se dibujan dos líneas EMA con parámetros de 30 y 20 respectivamente. El parámetro del indicador RSI se establece en 7.

Cuando el precio de cierre se rompe por debajo de la línea MA de 5 períodos, la línea EMA de 20 períodos y el tren inferior, mientras que el indicador RSI se rompe por debajo de la línea de 25 sobrecompras, la estrategia juzga que los precios están aumentando relativamente y entrará en una posición larga.

Por el contrario, cuando el precio de cierre se rompe por encima de la línea MA de 10 períodos, la línea EMA de 30 períodos y el tren superior, mientras que el indicador RSI se rompe por encima de la línea de 75 sobreventa, la estrategia juzga que los precios están disminuyendo relativamente y entrará en una posición corta.

Como puede ver, esta estrategia identifica tendencias potenciales combinando la lógica de los precios rompiendo la media móvil y la inversión del indicador RSI, y luego sigue esa tendencia.

Análisis de ventajas

La mayor ventaja de esta estrategia es que utiliza múltiples indicadores para identificar tendencias, lo que puede reducir eficazmente las señales falsas.

Además, la estrategia sigue tendencias relativamente claras en lugar de ruido a corto plazo, lo que también aumenta la probabilidad de ganancias.

Análisis de riesgos

No hay ninguna estrategia que pueda ser 100% rentable, y esta estrategia no es una excepción. El principal riesgo es que el juicio combinado de múltiples indicadores salga mal, lo que resulta en operaciones incorrectas. Además, los eventos repentinos también pueden invalidar la estrategia.

Para reducir los riesgos, los parámetros de los indicadores pueden ajustarse adecuadamente para optimizar la rentabilidad. Además, también es muy necesario establecer puntos de stop loss para controlar pérdidas individuales. Por supuesto, los riesgos sistémicos inevitables requieren una preparación psicológica de los inversores.

Optimización

Las principales optimizaciones para esta estrategia son:

  1. Prueba de combinaciones de más tipos de indicadores para encontrar mejores combinaciones de múltiples indicadores;

  2. Optimizar los parámetros de los indicadores para mejorar la estabilidad de la estrategia;

  3. Aumentar los modelos de aprendizaje automático para ayudar al juicio y mejorar la precisión;

  4. Mejorar los mecanismos de stop-loss adaptativos para controlar los riesgos;

  5. Optimización de las pruebas posteriores para mejorar la estabilidad y la rentabilidad.

Conclusión

Esta estrategia diseñó un conjunto de mecanismos de seguimiento relativamente ascendentes basados en RSI, MA, EMA y Bollinger Bands, y entra en posiciones direccionales después de juzgar las tendencias de precios mediante la combinación de múltiples indicadores. La integración de múltiples indicadores para juzgar puede reducir efectivamente la probabilidad de error de juicio y filtrar el ruido hasta cierto punto, siguiendo tendencias relativamente claras. Por supuesto, la gestión de riesgos también necesita atención. En general, esta estrategia tiene un gran espacio de optimización y puede lograr mejores resultados con aprendizaje automático y otros medios.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © lepstick-TC
//@version=4
strategy("1", overlay=true)
length = input(5, minval=1)
src = input(close, title="Source")
mult = input(1.5, minval=0.001, maxval=50)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
rsicok=input(75,minval=0,title="Rsi yüksek")
rsiaz=input(25,maxval=50,title="Rsi düşük")
rsizaman=input(7,minval=0,title="Rsi zaman")
smadeger=input(10,minval=0,title="Ma üst")
smadeger2=input(5,minval=0,title="Ma alt")
emadeger=input(30,minval=0,title="Ema üst")
emadeger2=input(20,minval=0,title="Ema alt")
myrsi=rsi(close,rsizaman)
myrsi2=rsi(close,rsiaz)
myrsi3=rsi(close,rsicok)
myma=sma(close,smadeger)
myma2=sma(close,smadeger2)
myema=ema(close,emadeger)
myema2=ema(close,emadeger2)
mycond =myrsi >rsicok and close> myma and close>myema
mycond2=myrsi<rsiaz and close<myma2 and close<myema2
barcolor(mycond? #2196F3: na)
barcolor(mycond2? #FF9800: na)
plot(myma,title="Ma yüksek",color=color.black,linewidth=0)
plot(myma2,title="Ma düşük",color=color.blue,linewidth=0)
plot(myema,title="Ema yüksek",color=color.yellow,linewidth=0)
plot(myema2,title="Ema düşük",color=color.gray,linewidth=0)
idunno =close< sma(close,smadeger2) and close < sma(close,smadeger) and close<ema(close,emadeger)and close<ema(close,emadeger2)and crossunder(close,lower)and crossunder(myrsi,myrsi2)and crossunder(close,basis) 
plotchar(idunno,char="A",color=#808000 ,location=location.belowbar) 
idunno2 =close> sma(close,smadeger2) and close> sma(close,smadeger) and close>ema(close,emadeger)and close>ema(close,emadeger2)and crossover(close,upper)and crossover(myrsi,myrsi3)and crossover(close,basis)
plotchar(idunno2,char="S",color=#787B86 ,location=location.abovebar)
strategy.entry("Al",true,when =idunno)
strategy.entry("Sat",false,when = idunno2)
strategy.close("Al",when=ema(close,emadeger)and crossover(open,upper))
strategy.close("Sat",when=sma(close,smadeger2)and crossunder(open,lower))
//strategy.exit("Al çıkış","Al",limit=upper)
//strategy.exit("Sat çıkış","Sat",limit=lower)
//strategy.exit("Al çıkış","Al",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)
//strategy.exit("Sat çıkış","Sat",trail_points=close*0.1/syminfo.mintick,trail_offset=close*0.005/syminfo.mintick)


Más.