
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.
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.
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.
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.
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.
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.
A combinação de discernimento de tendências e negociação de reversão permite capturar oportunidades de reversão em tendências maiores.
A combinação de indicadores em diferentes prazos de tempo pode aumentar a confiabilidade do sinal.
A estratégia RSI é simples, fácil de entender e de implementar.
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.
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.
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.
Teste mais combinações de parâmetros para encontrar a melhor correspondência entre os parâmetros RSI e os parâmetros ADX, SMA.
Aumentar o mecanismo de suspensão de prejuízos para controlar as perdas individuais.
Considere reduzir a posição em um período de baixa volatilidade em combinação com os indicadores de volatilidade.
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.
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.
/*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)