Diese Strategie verwendet drei RSI-Indikatoren mit unterschiedlichen Perioden, um festzustellen, ob der Markt extrem überkaufte oder überverkaufte Niveaus erreicht hat, und erzeugt entsprechend Kauf- und Verkaufssignale.
Wenn alle drei RSI-Indikatoren gleichzeitig überkaufte oder überverkaufte Signale zeigen, werden Handelssignale generiert.
Wenn der 2-Perioden-RSI unter 10, der 7-Perioden-RSI unter 20 und der 14-Perioden-RSI unter 30 liegt, gilt der Markt als überverkauft und ein Kaufsignal wird generiert.
Der Code verwendet einen Genauigkeitsparameter, um die überkauften/überverkauften Schwellenwerte des RSI zu optimieren. Der Standardwert beträgt 3 und niedrigere Werte bedeuten strengere Kriterien für Überkauf/Überkauf.
Wenn ein Kauf- oder Verkaufssignal generiert wird, wird die aktuelle Position geschlossen, um Gewinn zu erzielen oder Verluste zu reduzieren, wenn sich der Preis umkehrt und den Eröffnungspreis des Tages durchbricht.
Die Verwendung einer Kombination von mehrjährigen RSI-Indikatoren kann zu präziser zu überkauften/überverkauften Bedingungen führen und falsche Signale filtern.
Durch die Feinabstimmung der Kriterien für Überkauf/Überverkauf mit verschiedenen Parametern kann die Strategieempfindlichkeit anhand der Marktbedingungen angepasst werden.
Durch die Einführung offener Preisverfolgungshaltestellen können Sie rechtzeitig Gewinne erzielen.
Die RSI-Indikatoren sind anfällig für Abweichungen, die bei der Ermittlung von Trendumkehrungen nicht wirksam sind.
Bei Perioden hoher Volatilität müssen die RSI-Parameter angepasst werden, da sie sonst zu häufig zu Stops führen können.
Drei RSI-Signale, die zusammen auslösen, sind selten, was gute Handelsmöglichkeiten verpassen kann.
Die Parameter für die Kriterien für Überkauf/Überverkauf sollten abgestimmt und auf verschiedenen Märkten getestet werden.
Es sollten andere Indikatoren zur Bestätigung hinzugefügt werden, wie Bollinger-Bänder, KDJ usw., um eine RSI-Divergenz zu vermeiden.
Automatische Optimierung der RSI-Parameter auf der Grundlage verschiedener Marktregime.
Testen Sie andere Stopp-Ausfahrbedingungen, wie ATR-Stopps.
Fügen Sie Filter hinzu, um den Handel in ungeeigneten Zeiten zu vermeiden.
Diese Strategie identifiziert überkaufte/überverkaufte Zonen unter Verwendung einer Kombination von mehrjährigen RSI-Indikatoren und implementiert Trend-Tracking-Stopps. Zu den Vorteilen gehören eine verbesserte Genauigkeit, rechtzeitige Stopps; Zu den Nachteilen gehören fehlende Trades, RSI-Fehler. Parameteroptimierungstests werden empfohlen, zusammen mit dem Hinzufügen von Bestätigungsindikatoren, um eine bessere Leistung zu erzielen.
/*backtest start: 2023-10-25 00:00:00 end: 2023-10-28 10:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, 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") //RSI-2 fastup = rma(max(change(close), 0), 2) fastdown = rma(-min(change(close), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //RSI-7 middleup = rma(max(change(close), 0), 7) middledown = rma(-min(change(close), 0), 7) middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown)) //RSI-14 slowup = rma(max(change(close), 0), 14) slowdown = rma(-min(change(close), 0), 14) slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown)) //Signals acc = 10 - accuracy up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3) dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3) exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open) //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()