Diese Strategie trägt den Namen
Der Grundgedanke hinter der Strategie ist: Berechnen Sie zunächst den RSI-Wert, und konstruieren Sie dann den Stochastischen RSI-Indikator auf der Grundlage des RSI, nämlich die K- und D-Werte. Wenn der K-Wert über den D-Wert überschreitet, wird ein Kaufsignal generiert. Wenn der K-Wert unter den D-Wert überschreitet, wird ein Verkaufssignal generiert. Um falsche Signale auszufiltern, führt die Strategie auch den Rate of Change Index (RVI) und seine gleitende Durchschnittslinie zur Bestätigung ein.
Berechnen Sie den 14-Perioden-RSI-Wert.
Aufbau eines auf dem RSI basierenden 14-Perioden-Stochastischen RSI-Indikators, um K- und D-Werte zu erhalten (D ist der 3-Perioden- gleitende Durchschnitt von K).
Berechnen Sie den 5-Perioden-RVI und seine Signallinie (den gleitenden Durchschnitt des RVI).
Wenn K über D überschreitet, wird ein Kaufsignal erzeugt, wenn RVI > Signallinie und letzter Periode
Öffnen von Long- oder Short-Positionen basierend auf den erzeugten Signalen.
Die Kombination von stochastischem RSI und doppelter Bestätigung durch RVI kann falsche Signale effektiv filtern.
Der RVI-Indikator kann kurzfristige Überkauf-/Überverkaufszustände widerspiegeln und vermeidet die Eröffnung von Positionen an Extrempunkten.
Der Stochastische RSI-Indikator identifiziert Überkauf-/Überverkaufszonen und verwendet das goldene/tote Kreuz des KDJ-Indikators zur Bestimmung der Einstiegspunkte.
Die Ergebnisse der Backtests zeigen, dass diese Strategie bei einigen Kryptowährungspaaren (z. B. FCT/BTC) eine gute Performance erzielt hat.
Eine falsche Stop-Loss-Platzierung ähnlicher Trailing-Stop-Strategien kann dazu führen, dass sie vorzeitig gestoppt werden.
Eine hohe Signalfrequenz kann zu übermäßigen Handelsgebühren führen, die berücksichtigt werden sollten.
Sowohl die KDJ- als auch die RVI-Indikatoren können falsche Signale erzeugen, was zu unnötigen Verlusten führt.
Die Strategieparameter müssen für verschiedene Handelspare optimiert und die allgemeine Anwendbarkeit bewertet werden.
Der ATR kann verwendet werden, um Stop-Loss-Levels festzulegen.
Optimieren Sie die RVI-Parameter und den stochastischen RSI-Parameter für sauberere Signale.
Hinzufügen einer Handelsgrößenkontrolle, um zu große Einzelbestellungen zu vermeiden.
Es kann auch ein Filtermechanismus hinzugefügt werden, um zu vermeiden, dass Positionen auf ungünstigen Niveaus eröffnet werden.
Testen Sie verschiedene Kryptowährungspaare, um die beste Passform zu finden.
Diese Strategie konstruiert zunächst einen stochastischen RSI basierend auf dem RSI-Indikator, verwendet dann den RVI-Indikator zur Bestätigung, um kurzfristige Überkauf-/Überverkaufszustände und offene Positionen an Wendepunkten zu erkennen. Der Vorteil ist, dass die doppelte Bestätigung falsche Signale filtern kann. Der Nachteil ist das Risiko von Überanpassung von Parametern. Insgesamt hat diese Strategie bei einigen Handelspaaren gute Ergebnisse erzielt. Weitere Optimierungen können mehr konsistente Gewinne erzielen.
/*backtest start: 2022-12-08 00:00:00 end: 2023-12-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true) Per = input(5, title="Length", minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) lengthRSI = input(14, minval=1) lengthStoch = input(14, minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) D = sma(K, smoothD) rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per) sig = swma(rvi) //plot(rvi, color=green, title="RVI") //plot(sig, color=red, title="Signal") //plot(K, title="K") //plot(D, title="D") Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1] Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1] ARROW = Up - Dn plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10) plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10) long = crossover(Up, Dn) short = crossunder(Up, Dn) last_long = long ? time : nz(last_long[1]) last_short = short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) //plot(long_signal, "BUY", color=green) //plot(short_signal, "SELL", color=red) strategy.entry("BUY", strategy.long, when=long_signal) strategy.entry("SELL", strategy.short, when=short_signal)