Esta estratégia calcula primeiro o ADX e o SMA em prazos mais altos para identificar a direção da tendência e as mudanças.
ADX em prazos mais longos julga a força da tendência.
A SMA em prazos mais longos julga a direção da tendência.
O RSI em prazos mais baixos julga as condições de sobrecompra e sobrevenda.
Quando o ADX sobe, a SMA sobe e o RSI é sobrecomprado em um período de tempo menor, considera-se que a tendência de alta está se fortalecendo, vá curto aqui.
Quando o ADX sobe, a SMA cai e o RSI está sobrevendido em um período de tempo menor, considera-se que a tendência de queda está se fortalecendo, vá longo aqui.
Combina o julgamento da tendência e a negociação de reversão, pode capturar oportunidades de reversão nas principais tendências.
Utiliza indicadores em diferentes prazos, melhora a fiabilidade dos sinais.
A estratégia RSI é simples de entender e implementar.
Pode otimizar parâmetros para reduzir sinais falsos.
O julgamento da tendência do ciclo principal pode ser errado, tornando a estratégia inadequada para a condição do mercado.
Potencialmente alta frequência de negociação, impactando a rentabilidade devido aos custos de transação.
Teste mais combinações de parâmetros para encontrar a correspondência ideal entre os parâmetros RSI e ADX, SMA.
Adicionar um mecanismo de stop loss para controlar a perda de uma única transação.
Considerar um indicador de volatilidade para reduzir o tamanho da posição quando a volatilidade for baixa.
Otimizar os preços de entrada e saída específicos, como entrar em curto após quebrar os níveis mais altos anteriores.
Esta estratégia combina o julgamento da tendência e sinais de reversão para encontrar reversões locais dentro das principais tendências. Em comparação com o uso exclusivo do RSI, é mais confiável e evita ficar preso.
/*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)