
Die RSI-Indikator-Abweichung von der Handelsstrategie gibt ein Kauf- und Verkaufssignal, indem sie die Abweichung zwischen dem RSI-Indikator und der Kursentwicklung erkennt. Die Strategie bietet gleichzeitig Stopp-, Stop- und Tracking-Stopp-Funktionen, um das Risiko effektiv zu kontrollieren.
Die Strategie identifiziert die Handelsmöglichkeiten hauptsächlich anhand von Abweichungen vom RSI-Indikator. Insbesondere berechnet die Strategie zunächst den RSI-Wert für einen bestimmten Zeitraum und zeichnet dann eine Trendlinie für den RSI-Indikator. Gleichzeitig zeichnet die Strategie auch eine Trendlinie für den Preis.
Wenn ein Fall identifiziert wird, in dem die RSI-Linie niedrig steigt und die Preislinie hoch fällt, wird ein Kaufsignal gegeben. Wenn ein Fall identifiziert wird, in dem die RSI-Linie hoch sinkt und die Preislinie niedrig steigt, wird ein Verkaufssignal gegeben. Sobald ein Handelssignal gebildet wird, kann die Strategie entsprechend der Größe des RSI-Wertes angemessen handeln.
Darüber hinaus bietet die Strategie Stop Loss, Stop Stop und Tracking Stop Loss Funktionen. Stop Loss kann das Risiko von Verlusten kontrollieren, Stop Stop kann Gewinne sperren, Tracking Stop Loss kann Gewinne weiterlaufen lassen. Diese Einstellungen können das Risiko für jeden Handel effektiv verwalten.
Die RSI-Abweichung von der Handelsstrategie hat folgende Vorteile:
Durch das Aufspüren von Abweichungen des RSI-Indikators können Kursumdrehungen frühzeitig entdeckt werden.
Der RSI-Indikator ist weit verbreitet und in die meisten Handelssoftware integriert.
Die RSI-Parameter sind flexibel eingestellt und können je nach Markt-Beobachtungszyklus angepasst werden.
In Kombination mit Stop-Loss, Stop-Stop und Stop-Tracking-Einstellungen kann das Risiko für jeden Handel effektiv kontrolliert werden.
Strategie: Handel mit einer moderaten Signalfrequenz und vermeiden Sie zu intensiven Handelsprozesse.
Die Strategie ist klar und verständlich, sodass sie von einem Computerprogramm umgesetzt werden kann.
Die Strategie birgt auch einige Risiken:
Die Abweichung vom RSI ist nicht hundertprozentig zuverlässig und kann falsche Signale erzeugen.
Der RSI-Abweichsignal kann bei Trends nicht wirksam sein und sollte daher vermieden werden.
Die falsche Einstellung der RSI-Parameter beeinträchtigt auch die Effektivität der Strategie. Eine zu kurze Periode erhöht die Handelsfrequenz und das Risiko.
Ein zu kleines Stop-Loss-System kann zu früh zum Stillstand führen, ein zu großes System kann das Risiko nicht wirksam kontrollieren. Es ist eine Abwägung erforderlich.
Bei starken Preisschwankungen kann ein vorzeitiger Stopp erfolgen. Es ist notwendig, eine angemessene Stopp-Distanz in Verbindung mit den Marktschwankungen festzulegen.
Die entsprechenden Risiken können durch folgende Maßnahmen gemindert werden:
Hinzufügen von anderen Indikatoren, wie MACD, Brin Line und andere Signalfilter, um falsche Signale zu reduzieren.
Diese Strategie wird nur bei der Erfassung von bewegten Städten angewendet, um offensichtliche Trends zu vermeiden.
Optimieren Sie die RSI-Parameter-Einstellungen und wählen Sie die optimale Zeitspanne.
Bereitstellung von angemessenen Stopp- und Stopppositionen basierend auf historischen Rückmessdaten.
Der Umfang der Stop-Loss-Verfolgung wird je nach Marktschwankungen und Risikopräferenzen angepasst.
Diese Strategie kann optimiert werden durch:
Die Verwendung von anderen Indikatoren zur Filterung von Handelssignalen und zur Erhöhung der Zuverlässigkeit der Signale.
Automatische Optimierung der RSI-Parameter-Einstellungen mit Hilfe von maschinellen Lerntechnologien.
Entwerfen Sie dynamische Stop-Loss-Algorithmen für verschiedene Marktmodelle. Zum Beispiel erweitern Sie den Stop-Loss-Stand bei Erschütterungen und verkleinern Sie den Stop-Loss-Stand bei Trends.
Entwerfen von dynamischen Positionsmanagement-Algorithmen, die die Positionsgröße für jeden Handel an die Marktfluktuation anpassen.
Einführung des Konzepts der Schwankungsrate in der Verfolgung von Stopps, die Verfolgung von Stoppdistanzen basierend auf der Intensität der Preisschwankungen.
Versuchen Sie, die Strategie auf andere Märkte wie Forex und Kryptowährungen auszudehnen.
Erstellen von Systemen zur Quantifizierung von Transaktionen, um strategische Transaktionen zu automatisieren.
Die RSI Abweichung Trading-Strategie durch die Erfassung der Abweichung zwischen dem RSI-Indikator und der Preisentwicklung zu erzeugen Handelssignale. Die Strategie Vorteile sind einfach, klar und leicht zu automatisieren. Gleichzeitig Stop-Loss, Stop-Stops und Tracking Stop-Loss-Einstellungen können auch effektiv Risiken zu kontrollieren.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 4h
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/
// © faytterro
//@version=5
// strategy("RSI Divergence Strategy", overlay=true, scale = scale.none)
rsilen=input.int(14, title="rsi length")
rsisrc=input(close, title="source")
x=ta.rsi(rsisrc,rsilen)
len=input.int(14, title="RSI Divergence length", maxval=500)
tpb = input.float(25, title="take profit", group = "buy", step = 0.5)
sb = input.float(5, title="stop", group = "buy", step = 0.5)
tsb = input.float(0.25, title="trailing stop", group = "buy", step = 0.5)
tps = input.float(25, title="take profit", group = "sell", step = 0.5)
ss =input.float(5, title="stop", group = "sell", step = 0.5)
tss = input.float(0.25, title="trailing stop", group = "sell", step = 0.5)
src=close
extrapolation=0
zoom=input.int(0, title="zoom", maxval=27, minval=-27)
hline(300-zoom*10, color=color.rgb(54, 58, 69, 100))
hline(10, color=color.rgb(54, 58, 69, 100))
// for ax+b
xo=0.0
yo=0.0
xyo=0.0
xxo=0.0
for i=0 to len-1
xo:= xo + i/(len)
yo:= yo + x[len-1-i]/(len)
xyo:= xyo + i*x[len-1-i]/(len)
xxo:= xxo + i*i/(len)
dnm=ta.lowest(low,200)
dizi=array.new_float(len*2+1+extrapolation)
// linedizi=array.new_line()
a=(xo*yo-xyo)/(xo*xo-xxo)
b=yo-a*xo
for i=0 to len-1+extrapolation
array.set(dizi,i,a*i+b)
//// for src
// for ax+b
xo2=0.0
yo2=0.0
xyo2=0.0
xxo2=0.0
for i=0 to len-1
xo2:= xo2 + i/(len)
yo2:= yo2 + src[len-1-i]/(len)
xyo2:= xyo2 + i*src[len-1-i]/(len)
xxo2:= xxo2 + i*i/(len)
dizi2=array.new_float(len*2+1+extrapolation)
// linedizi2=array.new_line()
a2=(xo2*yo2-xyo2)/(xo2*xo2-xxo2)
b2=yo2-a*xo2
for i=0 to len-1+extrapolation
array.set(dizi2,i,a2*i+b2)
ttk=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))? 1 :
((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))? -1 : 0
cg=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))// and ta.highest(ttk[1],len/2)<1)
cr=((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))// and ta.lowest(ttk[1],len/2)>-1)
bgcolor(color=(cg and ta.highest(ttk[1],len/2)<1)? color.rgb(76, 175, 79, 50) :
(cr and ta.lowest(ttk[1],len/2)>-1)? color.rgb(255, 82, 82, 50) : na, offset=0, display=display.none)
plot(x)
// for ax+b
xo3=0.0
yo3=0.0
xyo3=0.0
xxo3=0.0
for i=0 to len-1
xo3:= xo3 + i/(len)
yo3:= yo3 + x[len-1-i+(ta.barssince(cg))]/(len)
xyo3:= xyo3 + i*x[len-1-i+(ta.barssince(cg))]/(len)
xxo3:= xxo3 + i*i/(len)
dizi3=array.new_float(len*2+1+extrapolation)
// linedizi3=array.new_line()
a3=(xo3*yo3-xyo3)/(xo3*xo3-xxo3)
b3=yo3-a3*xo3
for i=0 to len-1+extrapolation
array.set(dizi3,i,a3*i+b3)
// for ax+b
xo4=0.0
yo4=0.0
xyo4=0.0
xxo4=0.0
for i=0 to len-1
xo4:= xo4 + i/(len)
yo4:= yo4 + x[len-1-i+(ta.barssince(cr))]/(len)
xyo4:= xyo4 + i*x[len-1-i+(ta.barssince(cr))]/(len)
xxo4:= xxo4 + i*i/(len)
dizi4=array.new_float(len*2+1+extrapolation)
// linedizi4=array.new_line()
a4=(xo4*yo4-xyo4)/(xo4*xo4-xxo4)
b4=yo4-a4*xo4
for i=0 to len-1+extrapolation
array.set(dizi4,i,a4*i+b4)
// line=line.new((last_bar_index-ta.barssince(cg)-len),
// array.get(dizi3,0),
// last_bar_index-ta.barssince(cg),
// array.get(dizi3,len-1), color=color.rgb(0,255,0), width=2)
// line2=line.new((last_bar_index-ta.barssince(cr)-len),
// array.get(dizi4,0),
// last_bar_index-ta.barssince(cr),
// array.get(dizi4,len-1), color=color.rgb(255, 0, 0, 0), width=2)
// line.delete(line[1])
// line.delete(line2[1])
alert=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)) and ta.highest(ttk[1],len/2)<1)
or ((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)) and ta.lowest(ttk[1],len/2)>-1)
alertcondition(alert)
hline(50)
rs=hline(30)
rss=hline(70)
fill(rs, rss, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
longCondition = cg and ta.highest(ttk[1],len/2)<1
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("exit long", "Long", limit = close*(100+tpb)/100 , stop =close*(100-sb)/100 , trail_price = close , trail_offset = close*tsb)
shortCondition = cr and ta.lowest(ttk[1],len/2)>-1
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("exit short", "Short", limit = close*(100-tps)/100, stop = close*(100+ss)/100, trail_price = close , trail_offset = close*tss)