Diese Strategie identifiziert W-Muster auf dem RSI-Indikator in Kombination mit Trendbedingungen, um Breakout-Operationen mit niedrigem Kauf-hohem Verkauf zu implementieren.
Identifizieren Sie W-Muster unter Verwendung des RSI (**) (5) um potenzielle Kaufmöglichkeiten zu lokalisieren.
Ein EMA20-Kreuz über der EMA50 bestimmt den Aufwärtstrend und liefert eine Richtungsverzerrung.
Wenn ein W-Muster identifiziert wird und der Trend steigt, werden Long-Orders ausgelöst.
Wenn Sie bereits in einer Position sind, sind zusätzliche Käufe zulässig, wenn der RSI erneut unter 20 fällt.
Wenn der RSI oberhalb von 75 überschreitet, bedeutet das Überkauf, die Gewinnüberschüsse werden ausgelöst.
Ein Stop-Loss von 8% wird eingestellt, wenn der Verlust diesen Punkt übersteigt, wird ein Stop-Loss-Ausgang ausgelöst.
Die W-Musteridentifizierung erhöht die Eintrittssicherheit.
Die Kombination mit Trendfiltern verhindert falsche Signale und fehlende Umkehrchancen.
Der RSI kann kurzfristige Chancen rechtzeitig erfassen.
Profit-taking und Stop-Loss-Punkte helfen, Risiken zu kontrollieren.
W-Mustererkennung hängt von Parameter-Tuning ab, es besteht die Gefahr, dass Formationen fehlen oder falsch identifiziert werden.
Als Umkehrsignal besteht die Gefahr, eingeschlossen zu werden.
RSI ist anfällig für falsche Ausbrüche, eine ordnungsgemäße Signalfilterung ist erforderlich.
Wenn der Stop-Loss-Punkt zu groß ist, kann es zu vorzeitigen Stopps kommen.
Verschiedene RSI-Perioden testen, um optimale Parameter zu finden.
Mehr Kriterien hinzufügen, um die Genauigkeit der Mustererkennung zu erhöhen.
Kombination mit anderen Indikatoren zur Signalfilterung und Reduzierung falscher Trades.
Dynamische Anpassung der Stop-Loss-Niveaus zur Optimierung der Stop-Loss-Strategie.
Optimierung der Gewinnstrategie zur Verlängerung der Haltedauer bei gleichzeitiger Gewinnsicherung.
Diese Strategie nutzt RSI W-Muster für effiziente Umkehr-Breakout-Handel. Aber weitere Parameteroptimierung und Hinzufügen anderer technischer Indikatoren für Signalfilterung kann die Strategie Stabilität und Rentabilität verbessern.
/*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 )