O recurso está a ser carregado... Carregamento...

Estratégia de acompanhamento da tendência baseada em múltiplos indicadores

Autora:ChaoZhang, Data: 2023-11-23 15:43:02
Tags:

img

Resumo

Esta estratégia identifica tendências combinando múltiplos indicadores como RSI, MA, EMA e Bollinger Bands para implementar o rastreamento de tendências. Quando uma tendência relativamente ascendente é identificada, a estratégia estabelecerá uma posição longa.

Princípio

A lógica central desta estratégia é identificar as tendências de preços combinando RSI, MA, EMA e Bollinger Bands. Especificamente, ele traça simultaneamente duas linhas MA, uma definida em 10 períodos e a outra definida em 5 períodos. Ao mesmo tempo, duas linhas EMA são desenhadas com parâmetros de 30 e 20, respectivamente. O parâmetro do indicador RSI é definido em 7.

Quando o preço de fechamento ultrapassa a linha MA de 5 períodos, a linha EMA de 20 períodos e a linha inferior, enquanto o indicador RSI ultrapassa a linha de 25 sobrecompra, a estratégia julga que os preços estão relativamente em ascensão e entrarão em uma posição longa.

Em contrapartida, quando o preço de fechamento ultrapassa a linha MA de 10 períodos, a linha EMA de 30 períodos e a linha superior, enquanto o indicador RSI ultrapassa a linha de 75 sobrevendidos, a estratégia julga que os preços estão relativamente em declínio e entrará numa posição curta.

Como podem ver, esta estratégia identifica tendências potenciais combinando a lógica do preço quebrando a média móvel e a inversão do indicador RSI, e depois acompanha essa tendência.

Análise das vantagens

A maior vantagem desta estratégia é que ela usa vários indicadores para identificar tendências, o que pode efetivamente reduzir sinais falsos. Especificamente, o preço deve atravessar a média móvel e as Bandas de Bollinger simultaneamente para desencadear sinais de negociação, e o indicador RSI também deve sofrer uma reviravolta de Langarde, que filtra muito ruído.

Além disso, a estratégia acompanha tendências relativamente claras em vez de ruído a curto prazo, o que também aumenta a probabilidade de lucro.

Análise de riscos

O risco principal é que o julgamento combinado de vários indicadores seja errado, resultando em negociações erradas. Além disso, eventos repentinos também podem invalidar a estratégia.

Para reduzir os riscos, os parâmetros dos indicadores podem ser ajustados adequadamente para otimizar a lucratividade. Além disso, o estabelecimento de pontos de stop loss para controlar perdas individuais também é muito necessário.

Optimização

As principais optimizações para esta estratégia são:

  1. Testar combinações de mais tipos de indicadores para encontrar melhores combinações de múltiplos indicadores;

  2. Otimizar os parâmetros dos indicadores para melhorar a estabilidade da estratégia;

  3. Aumentar os modelos de aprendizagem de máquina para ajudar no julgamento e melhorar a precisão;

  4. Aumentar os mecanismos adaptativos de stop-loss para controlar os riscos;

  5. Optimização de backtest para melhorar a estabilidade e a rentabilidade.

Conclusão

Esta estratégia projetou um conjunto de mecanismos de rastreamento relativamente ascendentes baseados em RSI, MA, EMA e Bollinger Bands, e entra em posições direcionais depois de julgar as tendências de preços combinando vários indicadores. A integração de vários indicadores para julgar pode efetivamente reduzir a probabilidade de julgamento incorreto e filtrar o ruído até certo ponto, rastreando tendências relativamente claras.


/*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)


Mais.