Indicador de momentum RSI captura estratégia de negociação de reversão


Data de criação: 2024-01-03 12:09:48 última modificação: 2024-01-03 12:09:48
cópia: 1 Cliques: 661
1
focar em
1621
Seguidores

Indicador de momentum RSI captura estratégia de negociação de reversão

Visão geral

Esta estratégia primeiro calcula os ADX e SMAs nos quadros de tempo altos, identificando a direção da tendência e a mudança de tendência. Em seguida, calcula o RSI nos quadros de tempo baixos, identificando os fenômenos de overbought e oversold, formando sinais de negociação.

Princípio da estratégia

  1. Calcular a força da tendência no ADX em um período de tempo alto. Um aumento no ADX representa um fortalecimento da tendência.

  2. Calcular a direção da tendência de avaliação da SMA em um período de tempo de alta. Uma alta SMA representa uma alta de preço, uma baixa SMA representa uma queda de preço.

  3. O RSI é calculado em um período de tempo baixo. O RSI acima da barreira representa um excesso de compra e o RSI abaixo da barreira representa um excesso de venda.

  4. Quando o ADX sobe, o SMA sobe e o RSI do timeframe inferior supera compra, pode-se considerar que a tendência está se fortalecendo para cima e fazer um curto prazo.

  5. Quando o ADX sobe, o SMA desce e o RSI do timeframe inferior supera, pode-se fazer mais quando se considera que a tendência está se fortalecendo para baixo.

Análise de vantagens

  1. A combinação de discernimento de tendências e negociação de reversão permite capturar oportunidades de reversão em tendências maiores.

  2. A combinação de indicadores em diferentes prazos de tempo pode aumentar a confiabilidade do sinal.

  3. A estratégia RSI é simples, fácil de entender e de implementar.

Análise de Riscos

  1. Existe a possibilidade de que o RSI produza falsos sinais, fazendo com que a negociação resulte em prejuízos. A probabilidade de falsos sinais pode ser reduzida através da otimização de parâmetros.

  2. O julgamento de tendências de grande ciclo pode ser errado, tornando a estratégia inadequada para o contexto do mercado. Pode-se considerar a combinação de mais indicadores para julgar tendências.

  3. A frequência de negociação pode ser excessiva e os custos de negociação afetam a rentabilidade. O RSI pode ser ajustado adequadamente para reduzir o número de negociações.

Direção de otimização

  1. Teste mais combinações de parâmetros para encontrar a melhor correspondência entre os parâmetros RSI e os parâmetros ADX, SMA.

  2. Aumentar o mecanismo de suspensão de prejuízos para controlar as perdas individuais.

  3. Considere reduzir a posição em um período de baixa volatilidade em combinação com os indicadores de volatilidade.

  4. Otimização de preços específicos de entrada e saída, como o preço mais alto de uma linha K anterior quebrada para entrar em vazio.

Resumir

Esta estratégia integra o discernimento de tendências e sinais de negociação de reversão, procurando oportunidades de reversão locais em tendências de grande ciclo. Comparado ao uso do RSI isoladamente, a confiança é maior e evita ser manipulado.

Código-fonte da estratégia
/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("RSI scalping", overlay=true)

CustSession 	= input(defval=true,title= "Custom Resolution / TF ? ",type=bool)
SessionTF0	= input(title="Custom Resolution / TF", defval="180")
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
length = input(7, title= "RSI length")
overSold = input( 28, title= "RSI oversold" )
overBought = input( 68, title= "RSI overbought" )

RSI = rsi(close, 7)

res		=	CustSession ? SessionTF0 : period

o = request.security(syminfo.tickerid, res, open)
c = request.security(syminfo.tickerid, res, close)
l = request.security(syminfo.tickerid, res, low)
h = request.security(syminfo.tickerid, res, high)

 // ADX higher time frame
dirmov(len) =>
	up = change(h)
	down = -change(l)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truer = request.security(syminfo.tickerid, res, tr)
	truerange = rma(truer, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, 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)

sig = adx(dilen, adxlen)

// SMA higher time frame
len = input(20, minval=1, title="SMA HTF Length")
smma = 0.0
smma := na(smma[1]) ? sma(c, len) : (smma[1] * (len - 1) + c) / len

ADXrising = (sig > sig[1]) and (sig[1] > sig[2]) and (sig[2]  > sig[3]) and (sig > 15)
SMAdrop= (smma < smma[1]) and (smma[1] < smma[2]) and (smma[2] < smma[3])
SMArising = (smma > smma[1]) and (smma[1] > smma[2]) and (smma[2] > smma[3])
longCondition = crossover(RSI, overBought) and ADXrising and SMArising
shortCondition = crossunder(RSI, overSold) and SMAdrop and ADXrising 

if (longCondition)
    strategy.entry("Long entry", strategy.long)

if (shortCondition)
    strategy.entry("Short Entry", strategy.short)