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.
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.
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.
Der Handel ausschließlich auf der Grundlage von RSI-Signalen kann zu vielen falschen Signalen führen.
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.
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.
Die Parameter-Einstellungen haben einige inhärente Einschränkungen. Verschiedene Produkte und Zeitabschnitte können Parameter-Tuning erfordern.
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.
In den Märkten mit unterschiedlichen Kursbereichen kann der RSI häufige Kauf- und Verkaufssignale auslösen, was zu langen Halteperioden führt.
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.
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.
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.
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.
Die Strategie kann während der Range-bound-Märkte pausiert werden. Trendstärke Indikatoren können auch als Filter verwendet werden.
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