
Diese Strategie basiert auf dem RSI-Indikator und entwickelt ein offene automatische Handelssystem. Das System kann automatisch eingeschaltet werden, wenn der RSI überkauft wird, und automatisch aufgelöst werden, wenn bestimmte Bedingungen ausgelöst werden.
Diese Strategie nutzt die RSI-Anzeige, um die Überkauf-Überverkauf-Phänomene des Marktes zu bestimmen. Insbesondere, wenn die RSI-Anzeige unter der festgelegten Überverkaufsgrenze liegt, wird ein Überverkauf getätigt.
Darüber hinaus setzt die Strategie auch Ausstiegsbedingungen. Wenn der RSI nach dem Überschreiten erneut die Überkauflinie überschreitet, wird ein Mehrfach-Stopp ausgelöst. Ebenso wird ein Leer-Stopp ausgelöst, wenn der RSI nach dem Schreiten erneut die Überverkauflinie überschreitet.
Der größte Vorteil dieser Strategie besteht darin, dass die RSI-Indikatoren zum Beurteilen von Überkauf und Überverkauf in den Märkten eingesetzt werden. Dies ist eine zuverlässige Methode der technischen Analyse, die im Quantitativen Handel etabliert ist. Im Vergleich zu einer einfachen Moving-Average-Strategie kann die Strategie die Wendepunkte des Marktes genauer erfassen und so den Gewinnraum des Handelssystems verbessern.
Die Strategie setzt außerdem Ausstiegsbedingungen, um das Verlustrisiko im Einbahnstraßenmarkt wirksam zu kontrollieren. Dies steht im Gegensatz zu traditionellen Trendfollow-Strategien, die verhindern können, dass eine Position eingeschlossen wird.
Das größte Risiko dieser Strategie besteht darin, dass die Handelssignale des RSI falsch beurteilt werden können. Kein technischer Indikator kann die Marktentwicklung zu 100 Prozent genau bestimmen, und der RSI ist keine Ausnahme. Die Strategie führt zu einem falschen Einstieg, wenn der RSI das Überkauf-Überverkauf-Signal überschreitet.
Um dieses Risiko zu verringern, wurde eine Stop-Loss-Linie für diese Strategie eingerichtet. In einem einseitigen Fall ist die Wahrscheinlichkeit, dass die Stop-Loss-Linie ausgelöst wird, jedoch höher. In diesem Fall ist eine manuelle Intervention erforderlich, um die falsche Position manuell zu schließen.
Die Strategie kann noch weiter optimiert werden:
In Kombination mit mehreren Indikatoren bestätigt das Einstiegssignal, um Fehlinterventionen zu vermeiden, die durch die einzelne Beurteilung des RSI-Indikators verursacht werden. Zum Beispiel kann ein Moving Average-Indikator eingebunden werden.
Optimieren Sie den RSI-Parameter, um einen geeigneteren RSI-Längen-Parameter zu finden, um die Überkauf-Überverkauf-Befehl präziser zu machen
Optimieren Sie die Stop-Loss-Line-Einstellungen, um maximale Verluste zu vermeiden und sicherzustellen, dass die Stop-Loss-Line nicht überempfindlich ist.
Insgesamt hat diese RSI-basierte automatische Handelsstrategie den Vorteil, dass sie die Überkauf- und Überverkauf-Marktbedingungen effektiv identifiziert. Sie zielt darauf ab, von Marktumkehrungen zu profitieren, indem sie in Über- und Leerpositionen während RSI-Extreme eintritt. Der Stop-Loss-Mechanismus hilft auch, Verluste in starken einseitigen Trends zu begrenzen.
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Soran Strategy 2 - LONG SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)
// ----------------- Inputs ----------------- //
reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).
// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28
stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)
stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)
// --------------- Laguerre ----------------- //
laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")
laguerre_cal(s,g) =>
l0 = 0.0
l1 = 0.0
l2 = 0.0
l3 = 0.0
l0 := (1 - g)*s+g*nz(l0[1])
l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
(l0 + 2*l1 + 2*l2 + l3)/6
// ---------------- Rsi VWAP ---------------- //
rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))
rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV
// ------------------ Plots ----------------- //
prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)
// ---------------- Positions: only shows Buy and close Buy positions --------------- //
timebull = stratbull
timebear = stratbear
strategy.entry("Long", true, when = timebull and crossover(rsiVWAP, ovrsld), comment="")
strategy.close("Long", when = timebull and crossover(rsiVWAP, ovrbgt)[lateleave] or crossunder(rsiVWAP, ovrbgt), comment="")