Esta estratégia identifica padrões W no indicador RSI combinados com condições de tendência para implementar operações de ruptura de baixa compra-alta venda.
Identificar padrões W usando o RSI ((5) para localizar potenciais oportunidades de compra.
O cruzamento da EMA20 acima da EMA50 determina a tendência de alta, proporcionando um viés direcional.
Quando um padrão W é identificado e a tendência é ascendente, as ordens longas são desencadeadas.
Se já estiver numa posição, são permitidas compras adicionais se o RSI cruzar novamente abaixo de 20.
Quando o RSI cruza acima de 75, indica condições de sobrecompra, são desencadeadas saídas de lucro.
Se a perda exceder este ponto, uma saída de stop loss é acionada.
A identificação do padrão W aumenta a certeza de entrada.
A combinação com os filtros de tendência evita sinais falsos e perdas de oportunidades de reversão.
O RSI ((5) pode captar oportunamente oportunidades de curto prazo.
Os pontos de captação de lucro e de stop loss ajudam a controlar os riscos.
O reconhecimento do padrão W depende do ajuste do parâmetro, existem riscos de formações ausentes ou erroneamente identificadas.
Como um sinal de reversão, existem riscos de sermos presos.
O RSI é propenso a falhas, é necessária uma filtragem adequada do sinal.
Se o ponto de stop loss for demasiado amplo, podem ocorrer paradas prematuras.
Teste diferentes períodos de RSI para encontrar parâmetros ideais.
Adicionar mais critérios para aumentar a precisão do reconhecimento de padrões.
Combinar com outros indicadores para filtragem de sinais e redução de transações incorretas.
Ajustar dinamicamente os níveis de stop loss para otimizar a estratégia de stop loss.
Otimizar a estratégia de obtenção de lucros para prolongar o período de detenção, garantindo simultaneamente a rentabilidade.
Esta estratégia utiliza padrões RSI W para negociação de ruptura de reversão eficiente.
/*backtest start: 2023-08-17 00:00:00 end: 2023-09-16 00:00:00 period: 3h basePeriod: 15m 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/ // © mohanee //@version=4 strategy(title="RSI W Pattern strategy", pyramiding=2, shorttitle="RSI W Pattern", overlay = false) //Strategy Rules //ema20 is above ema50 //RSI5 making W pattern in oversold area or just below 70 level , you can define the value for parameter buyRsiEntry --- dont go beyond 70 //Exit when RSI reaches 75 len = input(title="RSI Period", minval=1, defval=5) buyRsiEntry = input(title="look for W pattern bottom edges well below RSI level (BUY) ", minval=10, defval=65, maxval=70) //numberOfBars = input(title="Number of Bars in W pattern ", minval=4, defval=4, maxval=6) emaL = input(title="Long Term EMA", minval=1, defval=50, maxval=200) emaS = input(title="Short Term EMA", minval=1, defval=20, maxval=200) stopLoss = input(title="Stop Loss %", minval=1, defval=8, maxval=10) //rsiWp1=false myRsi = rsi(close,len) //longEmaVal=ema(close,emaL) //shortEmaVal=ema(close,emaS) entryEma=ema(close,5) // This is used as filetr for BUY isEma20AboveEma50=ema(close,emaS)>ema(close,emaL) ? true : false //W Pattern //rsiWp1 = myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3] and myRsi[3]<myRsi[4] //This is published one rsiWp1 = myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3] and myRsi[3]<myRsi[4] and (low[1]<=low[4] or low[3]<=low[4] ) // looking for recent low //rsiWp1 = myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3] and myRsi[3]<myRsi[4] //Ths one has 92% win rate and 4.593 prfit factor //long condition filters //1. ema20 > ema50 //2. Rsi5 has W pattern //3. current RSI <= 65 (parameter buyRsiEntry) (dont go beyond 70 , becuase that is already overbought area) //4. current price low/close is below 5 ema --- looking for pullback -- Optional longCondition = isEma20AboveEma50 and rsiWp1 and (myRsi<=buyRsiEntry and myRsi>=30) //and (low<entryEma or close<entryEma) --- if this optional required , add it to above condition patternText=" W " barcolor(longCondition?color.yellow:na) //initial entry strategy.entry("RSI_W_LE", comment="Buy" , long=true, when=longCondition ) //legging in to existing strategy.entry("RSI_W_LE",comment="Add", long=true, when=strategy.position_size>0 and crossover(myRsi,10 )) //calculate stoploss value stopLossValue=strategy.position_avg_price - (strategy.position_avg_price*stopLoss/100) rsiPlotColor=longCondition ?color.yellow:color.purple plot(myRsi, title="RSI", linewidth=2, color=color.purple) // plot(myRsi, title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple) //plot(myRsi[1], title="RSI", linewidth=2, color=rsiWp1==true?color.yellow:color.purple) //plot(myRsi[2], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple) //plot(myRsi[3], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple) //plot(myRsi[4], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple) hline(40, title="Middle Line", color=color.blue, linestyle=hline.style_dashed) obLevel = hline(75, title="Overbought", color=color.red, linestyle=hline.style_dashed) osLevel = hline(30, title="Oversold", color=color.purple, linestyle=hline.style_dashed) fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90) plotshape( longCondition ? myRsi[1] : na, offset=-1, title="W Pattern", text=patternText, style=shape.labelup, location=location.absolute, color=color.purple, textcolor=color.yellow, transp=0 ) bgcolor(strategy.position_size>0?color.green:na, transp=40, title='In Long Position') //take profit or close when RSI reaches 75 takeProfit=crossover(myRsi,75) //close when RSi reaches profit level strategy.close("RSI_W_LE", comment="TP Exit", qty=strategy.position_size,when=crossover(myRsi,75) and close>strategy.position_avg_price ) //close everything when stoploss hit longCloseCondition=close<(strategy.position_avg_price - (strategy.position_avg_price*stopLoss/100) ) //or crossunder(myRsi,30) strategy.close("RSI_W_LE", comment="SL Exit", qty=strategy.position_size,when=longCloseCondition )