RSI-Strategie zur Umkehrung der Dynamik

Schriftsteller:ChaoZhang, Datum: 2023-11-15 16:29:25
Tags:

img

Übersicht

Dies ist eine kurzfristige Handelsstrategie, die auf dem Indikator Relative Strength Index (RSI) basiert. Sie nutzt den RSI, um überkaufte und überverkaufte Niveaus zu identifizieren, und kombiniert Candlestick-Filterung, um falsche Signale zu vermeiden, indem Long- und Short-Positionen an Umkehrpunkten eingegeben werden. Die Strategie zielt darauf ab, durchschnittliche Umkehrmöglichkeiten nach extremen Überkauf- oder Überverkaufsbedingungen zu erfassen.

Erläuterung der Strategie

Logik

Zunächst wird der RSI-Indikator auf der Grundlage des Schlusskurses mit einer Periode von 7 berechnet. Das Überkaufniveau wird auf 70 und das Überverkaufniveau auf 30 festgelegt.

Um falsche Signale auszufiltern, muss sich die Leuchterkörpergröße auf das 1-3-fache des normalen Bereichs erweitern, wenn ein Handelssignal ausgelöst wird.

Wenn der RSI für 5 aufeinanderfolgende Bars unter 30 bleibt, wird ein langes Signal erzeugt. Wenn die nächste Kerze einen bullischen Körper mehr als 4 Mal erweitert zeigt, wird eine lange Position ausgeführt. Wenn der RSI für 5 aufeinanderfolgende Bars über 70 bleibt, wird ein kurzes Signal erzeugt. Wenn die nächste Kerze einen bärischen Körper mehr als 4 Mal erweitert zeigt, wird eine kurze Position ausgeführt.

Um Gewinne zu erzielen, werden Positionen geschlossen, wenn die aktuelle Kerzenrichtung mit der Positionsrichtung übereinstimmt und der Körper sich 2-mal erweitert.

Vorteile

  1. Erfassung der Mittelumkehrung nach Extremwerten

Der RSI ist gut darin, überkaufte und überverkaufte Bedingungen zu identifizieren. Wenn eine Aktie extreme Niveaus erreicht, besteht eine hohe Wahrscheinlichkeit eines Rückschlags, und extreme Niveaus bedeuten oft eine bevorstehende Umkehrung. Diese Strategie ist in der Lage, solche Möglichkeiten an Wendepunkten zu erfassen.

  1. Die Filterung der Kerzen reduziert die falschen Signale.

Der Handel ausschließlich auf der Grundlage von RSI-Signalen kann zu vielen falschen Signalen führen.

  1. Folgende RSI-Bars erhöhen die Zuverlässigkeit

Die Anforderung von 1-5 aufeinanderfolgenden RSI-Bars in Überkauf- oder Überverkaufszonen dient als Bestätigung, vermeidet falsche Signale von gelegentlichen abweichenden Bars und verbessert die Signalzuverlässigkeit.

  1. Flexibler Körpervergrößerungsmultiplikator

Der Body-Expansions-Multiplikator kann für verschiedene Produkte angepasst werden. Für Aktien mit großen Schwankungen können die Kriterien gelockert, während für Aktien mit engen Bandbreiten kann es verschärft werden. Dies ermöglicht flexible Anpassungen für verschiedene Handelsprodukte.

Risiken

  1. Mögliche Überanpassung

Die Parameter-Einstellungen haben einige inhärente Einschränkungen. Verschiedene Produkte und Zeitabschnitte können Parameter-Tuning erfordern.

  1. Niedrige Genauigkeit bei der Identifizierung von Kurven

RSI selbst hat einige Nachlass-Eigenschaften. Kombiniert mit Körper-Erweiterung Ausstieg Positionen vorzeitig. So ist die Genauigkeit der genauen Boden oder Spitzen zu fangen in der Regel nicht sehr hoch.

  1. Potenziell lange Haltungsdauer auf verschiedenen Märkten

In den Märkten mit unterschiedlichen Kursbereichen kann der RSI häufige Kauf- und Verkaufssignale auslösen, was zu langen Halteperioden führt.

  1. Benötigen Sie geeignete Positionsgrößenstrategien

Als kurzfristige Handelsstrategie sollten geeignete Positionsgrößenstrategien kombiniert werden, z. B. bewegliche Stop Loss, Take Profit usw., um Gewinne zu erzielen und Risiken zu kontrollieren.

Verbesserungsvorschläge

  1. Verschiedene Parametermengen testen

Es können verschiedene Kombinationen von RSI-Parametern getestet werden, z. B. Periode, Überkauf-/Überverkaufsniveaus und Candlestick-Filter, um optimierte Parameter für verschiedene Produkte zu finden.

  1. Hinzufügen von Stop Loss und Take Profit

Bewegliche oder prozentuale Stop-Loss können hinzugefügt werden, um Gewinne zu erzielen, oder Stop-Loss basierend auf ATR-Werten oder Donchain-Kanälen usw.

  1. Kombination anderer Indikatoren als Filter

Es können Bedingungen auf Basis von MACD, KDJ und anderen Indikatoren hinzugefügt werden, um falsche Signale von ungültigen Ausbrüchen zu vermeiden.

  1. Hinzufügen von Trendverzerrung

Die Strategie kann während der Range-bound-Märkte pausiert werden. Trendstärke Indikatoren können auch als Filter verwendet werden.

Schlussfolgerung

Zusammenfassend ist diese RSI-Umkehrstrategie eine typische kurzfristige Handelsstrategie mit ihren eigenen Vor- und Nachteilen. Der Hauptvorteil liegt darin, Pullbacks nach Extremen zu erfassen, während das Hauptrisiko aus geringer Signalpräzision und langen Halteperioden in Bereichen resultiert. Wir können die Strategie durch Anpassung von Parametern, Hinzufügen von Filtern, Optimierung von Stops usw. verbessern, um uns an mehr Produkte und Marktbedingungen anzupassen und stetigere Ergebnisse zu erzielen.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)

//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    sps := 1

if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()
    sps := 0
    

Mehr