Die Laguerre-RSI-Handelsstrategie basiert auf dem John EHLERS-Laguerre-Filter, der auf den RSI-Indikator angewendet wird.
Der Kernindikator dieser Strategie ist der Laguerre RSI. Seine Berechnungsformel lautet wie folgt:
L0 = (1-γ)Src + γL0[1] L1 = -γL0 + L0[1] + γL1[1] L2 = -γL1 + L1[1] + γL2 [1] L3 = -γL2 + L2[1] + γL3[1]
Hier ist γ=1-α, α ist ein einstellbarer Koeffizient, Src repräsentiert den Preis. L0 bis L3 sind 4 Indikatoren, die rekursive Beziehungen enthalten. Auf dieser Grundlage können die Strom-Up-Integral cu und Down-Integral cd berechnet werden:
Cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0
Dann kann Laguerre RSI mit Cu und cd berechnet werden:
LaRSI = cu / (cu + cd)
Durch die rekursive Filterstruktur behält Laguerre RSI die Trend-Identifikationsfähigkeit des RSI bei, während er viel zufälliges Rauschen herausfiltert und klarere und reibungslosere Handelssignale erzeugt.
Die spezifischen Handelsregeln sind: Gehen Sie lang, wenn der Laguerre RSI über 20 liegt, und kurz, wenn der Laguerre RSI unter 80 liegt.
Die wichtigsten Vorteile der Laguerre RSI-Strategie sind:
Effektiv filtern Sie das Rauschen von RSI durch die Laguerre-Filterstruktur, wodurch Handelssignale klarer und zuverlässiger werden
Der verstellbare α-Koeffizient macht die Strategieparameter flexibel für die Optimierung, um sich an mehr Marktumgebungen anzupassen
Beibehält die langfristige Gültigkeit des RSI und ermöglicht gleichzeitig die Dynamikidentifizierung durch Filtern, Integration von Trend und Überkauf/Überverkauf
Einfache und intuitive Strategieregeln, die leicht zu implementieren sind und in verschiedenen Marktumgebungen gut funktionieren
Die wichtigsten Risiken dieser Strategie sind:
Eine falsche Einstellung von α kann zu einer übermäßigen Verzögerung oder zu einer Überfilterung führen und somit zu fehlenden Preisänderungen führen
Häufige Handelsverluste können auf volatilen Märkten auftreten
Bei langfristig anhaltenden Bullenmärkten können einige Aufwärtschancen verpasst werden
Diese Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Verwenden Sie Machine Learning Algorithmen zur Optimierung der α-Koeffizienten-Einstellung
Hinzufügen von Stop-Loss-Mechanismen zur Verringerung des Verlustrisikos
Kombination anderer Indikatoren zur Filterung falscher Signale
Ausbau des Quantitativen Lockerungsmodells zur Gewinnsicherung in bestimmten Phasen
Die Laguerre RSI-Strategie identifiziert überkaufte und überverkaufte Situationen durch Filtermechanismen und vermeidet dabei Störungen durch Lärm bei der Ausgabe von Handelssignalen.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mertriver1 // Developer: John EHLERS //@version=3 // Author:Kıvanç Özbilgiç strategy("Laguerre RSI", shorttitle="LaRSI", overlay=false) src = input(title="Source", defval=close) alpha = input(title="Alpha", type=float, minval=0, maxval=1, step=0.1, defval=0.2) colorchange = input(title="Change Color ?", type=bool, defval=false) Date1 = input(true, title = "=== Date Backtesting ===") FromDay1 = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth1 = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear1 = input(defval = 2020, title = "From Year", minval = 2017) ToDay1 = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth1 = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear1 = input(defval = 9999, title = "To Year", minval = 2017) start1 = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00) finish1 = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59) window1() => time >= start1 and time <= finish1 ? true : false gamma=1-alpha L0 = 0.0 L0 := (1-gamma) * src + gamma * nz(L0[1]) L1 = 0.0 L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1]) L2 = 0.0 L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1]) L3 = 0.0 L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1]) cu= (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0) cd= (L0<L1 ? L1-L0 : 0) + (L1<L2 ? L2-L1 : 0) + (L2<L3 ? L3-L2 : 0) temp= cu+cd==0 ? -1 : cu+cd LaRSI=temp==-1 ? 0 : cu/temp Color = colorchange ? (LaRSI > LaRSI[1] ? green : red) : blue plot(100*LaRSI, title="LaRSI", linewidth=2, color=Color, transp=0) plot(20,linewidth=1, color=maroon, transp=0) plot(80,linewidth=1, color=maroon, transp=0) strategy.entry("Long", true, when = window1() and crossover(cu, cd)) strategy.entry("Short", false, when = window1() and crossunder(cu, cd))