Die RSI-Umkehrhandelsstrategie ist eine quantitative Handelsstrategie, die überkaufte und überverkaufte Bedingungen mithilfe des Relative Strength Index (RSI) -Indikators identifiziert und an Umkehrpunkten lange oder kurze Trades eingeht.
Die Strategie basiert auf der folgenden Grundlogik:
Der RSI misst die relative Dynamik von Aufwärts- vs. Abwärtsbewegung, indem er das Verhältnis von durchschnittlichen Aufwärtsänderungen zu durchschnittlichen Abwärtsänderungen über einen Zeitraum berechnet.
Wenn der RSI in die Überkaufzone eintritt (in der Regel als RSI über 70 betrachtet), zeigt er eine starke Aufwärtsdynamik an. Es werden mehr Trader sein, die lang bullische Positionen halten, und der Raum für die Fortsetzung des Aufwärtskurses ist begrenzt. Der Preis kann nach unten umkehren, um den Überkaufzustand zu korrigieren.
Wenn der RSI in die Überverkaufszone (in der Regel unter 30) eintritt, zeigt er eine starke Abwärtsdynamik an. Es werden mehr Händler kurz gehalten werden, die bärische Positionen halten, und der Raum für einen weiteren Abwärtstrend ist begrenzt. Der Preis kann sich nach oben wenden, um die Überverkaufszone zu korrigieren.
Daher können wir die RSI-Überkaufsschwelle auf 90 und die Überverkaufsschwelle auf 10 setzen.
Insbesondere ist die Strategielogik:
Der Wert des RSI-Indikators wird unter Verwendung des Schlusskurses als RSI-Quelle berechnet und hat eine Länge von 2 Perioden.
Wenn der RSI über 90 liegt, geht man in die Überkaufzone, wenn er unter 10 liegt, geht man lang.
Setzen Sie einen Stop-Loss für jeden Trade.
Setzen Sie für jeden Trade einen Trailing-Stop ein. Wenn der RSI in extremere Überkauf-/Überverkaufsniveaus weitergeht, passen Sie den Trailing-Stop an, um mehr Raum zu geben.
Betrachten Sie den Gewinn, wenn der RSI wieder in die neutrale Zone um 50 zurückkehrt.
Wenn nach 3 Bars keine Umkehr stattfindet, schließen Sie den Handel, um unbegrenzte Verluste zu vermeiden.
Die RSI-Umkehrstrategie hat folgende Vorteile:
Die Verwendung des RSI zur Identifizierung von überkauften / überverkauften Bedingungen kann Marktumkehrpunkte effektiv erfassen.
Umkehrstrategien haben den systematischen Vorteil, weiterhin Trends zu folgen. Sie können kurz bei Überkauf und lang bei Überverkauf sein, um nicht gefangen zu werden.
Der Stop-Loss-Mechanismus kontrolliert effektiv den Verlust bei einzelnen Trades. Selbst wenn die Umkehrung fehlschlägt, ist der Verlust innerhalb eines bestimmten Bereichs begrenzt.
Trailing Stop kann die Stoppdistanz flexibel anpassen, basierend auf der fortgesetzten Preisbewegung, und einen Ausgleich zwischen dem Auslösen des Stops und der Erfassung einer größeren Preisdifferenz herstellen.
Ein erzwungener Ausstieg nach festen Bars stellt sicher, dass Trades ohne rechtzeitige Umkehrung nicht zu unbegrenzten Verlusten führen.
Anpassbare RSI-Parameter können die Strategie an verschiedene Märkte anpassen.
Die Strategie birgt außerdem folgende Risiken:
Als technische Indikatorstrategie kann die RSI-Umkehrleistung eine Kurvenanpassung haben.
Obwohl der RSI überkaufte/überverkaufte Bedingungen identifizieren kann, kann er den genauen Umkehrzeitpunkt nicht vorhersagen.
Die RSI-Überkauf-/Überverkaufswerte können möglicherweise nicht angemessen festgelegt werden. Falsche Werte können dazu führen, dass Umkehrungen verfehlt oder vor Umkehrungen gestoppt werden.
Die Wahrscheinlichkeit, dass der Preis noch einmal umkehrt, bevor der Take-Profit erreicht wird.
Eine unzumutbar enge oder zu lockere Stoppverlustdistanz kann Stopps unwirksam machen.
Handelsprovisionen können sich auch auf die Rentabilität der Strategie auswirken.
Die Strategie kann wie folgt verbessert werden:
Verschiedene RSI-Parameter testen, um optimale Kombinationen zu finden, wie z. B. RSI-Länge, überkaufte/überverkaufte Schwellenwerte.
Mehr Filter hinzufügen, um falsche Umkehrsignale zu vermeiden, wie z. B. die Kombination mit MACD usw., um die Wahrscheinlichkeit zu erhöhen.
Optimierung der Stop-Loss-Strategie, z. B. ATR-basierte Stopps, volatilitätsbereinigte Entfernungen.
Optimieren Sie die Gewinnstrategie, z. B. Umzug, Gewinn nehmen, mehr Preisunterschied verfolgen.
Fügen Sie maschinelle Lernmodelle hinzu, um die Umkehrungen zu beurteilen und die Erfolgsrate zu verbessern.
Strategie auf verschiedenen Märkten und Instrumenten testen, um die besten Parameter für den realen Handel zu finden.
Vergleichen Sie das mit dem Handelsvolumen, betrachten Sie nur Umkehrsignale, wenn das Volumen steigt.
Zusammenfassend lässt sich sagen, dass die RSI-Umkehrstrategie die Stärke des RSI nutzt, um überkaufte und überverkaufte Marktbedingungen und Trades an Umkehrpunkten zu identifizieren und anständige systematische Renditen zu erzielen. Aber sie hat auch Risiken, die durch RSI-Parameter und Stop/Take-Profit-Optimierung und Filterung mit anderen Indikatoren angegangen werden müssen.
/*backtest start: 2023-11-06 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Copyright (c) 2021-present, RicMos //study("RSI2 Sell Strategy, overlay=true) //------------------------------------------USER VARIABLE DEFINITIONS -------------------------------------- var float lots = 0.1 //var float fixed_commission = 0.6 // forex pairs commission value USD per position size two sides var float fixed_commission = 10 // BTC commission value USD per position size two sides //var float money = 10000 //forex pairs position size var float money = 0.3333 //BTC position size strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false) len = input(2, minval=1, title="RSI Length") src = input(close, "RSI Source", type = input.source) upRsi = rma(max(change(src), 0), len) downRsi = rma(-min(change(src), 0), len) rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi)) var color buyColor = color.blue var color sellColor = color.red plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor) plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor) // long = rsi <= 10 // var float longsl = 0 // var int long_ts_points = 0 // if long // longsl:= low // long_ts_points := 200 // if rsi >= 70 // long_ts_points := 100 // else if rsi >= 80 // long_ts_points := 80 // plot (longsl) // var int barsPassed = 0 // barsPassed := barssince(long) // if long // strategy.entry("long", long = strategy.long, qty = 10000, stop = high) // strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points ) // //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" ) // strategy.cancel_all(barsPassed > 3 and not long) short = rsi >= 90 var float shortsl = 0 var int short_ts_points = 0 //var bool stClose = 0 if short shortsl:= high short_ts_points := 200 if rsi <= 30 short_ts_points := 100 //stClose :=1 else if rsi <= 20 short_ts_points := 80 //else //stClose := 0 plot (shortsl) var int barsPassedSh = 0 barsPassedSh := barssince(short) if short strategy.entry("short", long = strategy.short, qty = money, stop = low) strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 ) //strategy.close("short", comment="rsi<30", when = stClose) //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" ) strategy.cancel_all(barsPassedSh > 3 and not short)