Die Strategie ermöglicht den Durchbruch von Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom-Bottom
Verwenden Sie den RSI ((5)), um die W-Form zu beurteilen und potenzielle Kaufchancen zu finden. Wenn die W-Form im Überverkaufszone auftritt, ist dies ein Zeichen für eine bevorstehende Umkehr.
Die EMA20 beurteilt die EMA50 als Trend nach oben und die EMA50 als Eintrittsrichtung.
Kaufen Sie, wenn Sie eine W-Form identifizieren, die aufwärts geht.
Wenn Sie bereits eine Position halten, können Sie die Position erhöhen, wenn der RSI erneut unter 20 fällt.
Wenn der RSI über 75 liegt, ist das ein Überkaufgebiet und ein Stop-Out erforderlich.
Setzen Sie einen Stop-Loss-Punkt von 8%, und wenn der Verlust diesen Punkt überschreitet, gehen Sie zum Stop-Out.
W-Formkennung erhöht die Sicherheit der Zulassung.
In Kombination mit Trends zu beurteilen, um zu verhindern, dass Sie die Chance auf eine Umkehr verpassen.
Der RSI-Parameter ist auf 5 Tage eingestellt, um die Gelegenheit zu erfassen, eine kurze Linie rechtzeitig zu erfassen.
Ein Stop-Loss-Punkt kann die Risiken kontrollieren.
W-Form-Erkennung ist abhängig von Parameter-Einstellungen, die möglicherweise die Form nicht erkennen oder falsch beurteilen.
Als Rückschlagsignal besteht die Gefahr, in eine Falle gesteckt zu werden.
RSI ist anfällig für falsche Durchbrüche und sollte entsprechend gefiltert werden.
Wenn die Stop-Loss-Einstellung zu groß ist, kann es zu einer vorzeitigen Stop-Loss-Einstellung kommen.
Verschiedene RSI-Zyklusparameter werden getestet, um die optimale Parameterkombination zu finden.
Erhöhung der Formalerkennungsbedingungen und Verbesserung der Identifikationsgenauigkeit.
In Kombination mit anderen Indikatoren werden die Signale gefiltert, um Fehltransachen zu verhindern.
Dynamische Anpassung der Stop-Loss-Position und Optimierung der Stop-Loss-Strategie.
Optimierung der Stop-Loss-Strategie und Verlängerung der Haltungsdauer unter der Voraussetzung, dass die Gewinnquote garantiert ist.
Die Strategie nutzt die RSI W-Form, um effiziente Umkehr- und Durchbruchoperationen zu erzielen. Es ist jedoch erforderlich, die Parameter-Setting weiter zu optimieren und die Signalfilterung mit anderen technischen Indikatoren zu unterstützen, um die Strategie zu stabilisieren und die Ertragslage zu 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 )