Estratégia de reversão de combinação de indicador RSI de média móvel dupla


Data de criação: 2023-11-10 18:01:09 última modificação: 2023-11-10 18:01:09
cópia: 0 Cliques: 773
1
focar em
1621
Seguidores

Estratégia de reversão de combinação de indicador RSI de média móvel dupla

Visão geral

Esta estratégia utiliza uma combinação de duas linhas de equilíbrio, um indicador de força relativa (RSI) e um indicador de linha de paralisação (PSAR) para determinar o ponto de reversão do preço, fazendo operações de compra e venda quando a reversão ocorre e é uma estratégia de negociação reversa.

Princípios

A estratégia baseia-se nos seguintes indicadores técnicos para determinar os pontos de reversão:

  1. Dual equilíbrio: Calcule a média móvel rápida (MA rápida) e a média móvel lenta (MA lenta). Quando a linha rápida atravessa a linha lenta, julgue-se um mercado de muitos pontos, faça mais; quando a linha rápida atravessa a linha lenta, julgue-se um mercado de vazio, faça vazio.

  2. O indicador RSI: O RSI julga a situação de sobrecompra e sobrevenda, calculando o aumento e a queda do fechamento médio em um período de tempo. O RSI maior que 70 é a zona de sobrecompra e menor que 30 é a zona de sobrevenda.

  3. Indicador PSAR: A linha paralela do indicador SAR determina a direção da tendência. Abaixo do ponto SAR está o mercado de ativos e acima o mercado de ativos.

  4. Indicador ADX: O ADX determina a intensidade da tendência através do cálculo da intensidade direcional da mudança de preço. Um valor maior que 20 indica a tendência e menor que 20 indica a liquidação.

A lógica dos sinais de compra e venda baseados nos indicadores acima é a seguinte:

Sinais de compra: a linha rápida atravessa a linha lenta, o RSI é menor que 30 (zona de superalimento), o ponto SAR está acima do preço, o ADX é maior que 20 e emite um sinal de compra.

Sinais de venda: a linha rápida atravessa a linha lenta, o RSI é maior que 70 (zona de supera compra), o ponto SAR está abaixo do preço, o ADX é maior que 20 e emite sinais de venda.

Quando ocorrem sinais de compra e venda, estabeleça posições excessivas e vazias com 10% de posições, respectivamente. Quando o sinal de reversão falhar, pare a posição em equilíbrio.

Vantagens

  • Usando duas linhas de equilíbrio para determinar a direção da grande tendência, além de adicionar indicadores como RSI e SAR para eliminar sinais errôneos, é possível determinar com maior precisão o ponto de reversão.

  • Utilize vários conjuntos de indicadores para evitar sinais errados de um único indicador técnico.

  • O setor de Stop Loss pode controlar os riscos de forma eficaz.

  • A estratégia é simples, clara e fácil de implementar.

  • A estratégia tem uma abordagem para a volatilidade do mercado e pode ser aplicada em diferentes situações.

Riscos e soluções

  • Quando a dupla linha de equilíbrio gera um sinal de cabeceira, a situação pode ocorrer com falhas, que precisam ser julgadas em combinação com outros indicadores. O ciclo de linha de equilíbrio pode ser estendido de forma apropriada, ou adicionar o indicador de faixa de Bryn para julgar a veracidade da ruptura.

  • O indicador RSI pode gerar um sinal de erro devido à configuração inadequada dos parâmetros. Os parâmetros do RSI devem ser ajustados adequadamente, ao mesmo tempo em que outros indicadores são adicionados para confirmar o sinal RSI.

  • Quando o ADX é inferior a 20, deve-se suspender a negociação para evitar a inversão de mercado sem direção. Ou reduzir adequadamente o parâmetro de ciclo do ADX.

  • O Stop Loss do SetStringry é muito pequeno e pode causar perdas desnecessárias. O Stop Loss deve ser razoavelmente ajustado de acordo com a volatilidade do mercado.

  • A frequência de negociação pode ser excessiva, podendo ser adequadamente ajustado o ciclo de dupla linha média para reduzir a frequência de negociação.

Direção de otimização

  • Teste combinações de linhas médias de diferentes períodos de comprimento para encontrar o melhor parâmetro.

  • Testar diferentes configurações de parâmetros do RSI para otimizar o julgamento de overbought e oversold.

  • Tente adicionar outros indicadores, como a banda Brin, KDJ, etc., para enriquecer a lógica de julgamento dos sinais de compra e venda.

  • De acordo com as diferentes variedades e condições do mercado, o mecanismo de parada de perdas dinâmico é configurado.

  • Adição de estratégias de gerenciamento de posições para que os lucros acompanhem melhor as tendências.

  • Teste diferentes parâmetros ADX para encontrar o valor que melhor determina a força da tendência.

  • Adição de um módulo de parada automática para que a estratégia possa parar automaticamente.

Resumir

Esta estratégia de julgar a grande direção através de dupla equilíbrio, em combinação com RSI, SAR e outros indicadores para filtragem de sinal de reversão, após a configuração de parâmetros de otimização, pode efetivamente julgar o ponto de reversão de preços, para capturar a tendência antes e depois de reversão. Em ativos reais, deve-se ter atenção ao controle de risco, ao estabelecimento razoável de condições de parada e ao contínuo otimização de parâmetros, para tornar a estratégia mais estável e mais lucrativa.

Código-fonte da estratégia
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close

//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)


//ADX Init
adxlen = input(30, title="ADX Smoothing")	
dilen = input(30, title="DI Length")	
dirmov(len) =>	
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]
	
adx(dilen, adxlen) => 	
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
	[adx, plus, minus]
	
[sig, up, down] = adx(dilen, adxlen)	


// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)


//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))


//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1]) 

//////////////////// Algo

//if (rsi>50 and n1>n2)
   //strategy.exit("Close", "Short")
  // strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
   //strategy.exit("Close", "Long")
//   strategy.entry("Short", strategy.short)

//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200  and rsi >= 60?red : silver
//short1 =  sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 =  sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close

//Entry

long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)



/////////////////////
///PLOT

plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)


//plot(short,"short",color=red,linewidth=1)
//

//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)

//strategy.exit(id="Stop", profit = 20, loss = 100)