La stratégie de trading du RSI Laguerre est basée sur le filtre John EHLERS Laguerre appliqué à l'indicateur RSI. En ajustant le coefficient α, cette stratégie augmente ou diminue le décalage et la douceur du RSI pour filtrer le bruit et générer des signaux de trading plus clairs.
L'indicateur de base de cette stratégie est le RSI Laguerre, dont la formule de calcul est la suivante:
L0 = (1-γ)Src + γL0 [1] L1 = -γL0 + L0[1] + γL1 [1] L2 = -γL1 + L1[1] + γL2 [1] L3 = -γL2 + L2[1] + γL3 [1]
Ici γ=1-α, α est un coefficient réglable, Src représente le prix. L0 à L3 sont 4 indicateurs contenant des relations récursives. Sur cette base, l'intégrale ascendante cu et l'intégrale descendante cd peuvent être calculées:
cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0
Ensuite, le RSI de Laguerre peut être calculé en utilisant cu et cd:
LaRSI = cu / (cu + cd)
Grâce à la structure de filtre récursif, Laguerre RSI conserve la capacité d'identification de tendance du RSI tout en filtrant beaucoup de bruit aléatoire, générant des signaux de trading plus clairs et plus fluides.
Les règles de négociation spécifiques sont les suivantes: Allez long quand le RSI de Laguerre dépasse 20, et allez court quand le RSI de Laguerre dépasse 80.
Les principaux avantages de la stratégie RSI de Laguerre sont les suivants:
Filtre efficacement le bruit du RSI à travers la structure de filtre Laguerre, rendant les signaux de trading plus clairs et plus fiables
Le coefficient α réglable rend les paramètres de stratégie flexibles pour l'optimisation afin de s'adapter à plus d'environnements de marché
Conserve la validité à long terme du RSI tout en permettant l'identification de l'élan par le filtrage, l'intégration de la tendance et le surachat/survente
Des règles de stratégie simples et intuitives, faciles à mettre en œuvre et performantes dans divers environnements de marché
Les principaux risques de cette stratégie sont les suivants:
Les réglages incorrects de α peuvent entraîner un retard excessif ou un surfiltrage, ce qui fait manquer les variations de prix
Des pertes de négociation fréquentes peuvent survenir sur les marchés volatils
Certaines opportunités de hausse peuvent être manquées dans les marchés haussiers soutenus à long terme
Cette stratégie peut être optimisée par les aspects suivants:
Utiliser des algorithmes d'apprentissage automatique pour optimiser le réglage du coefficient α
Ajouter des mécanismes de stop loss pour réduire le risque de perte
Combiner d'autres indicateurs pour filtrer les faux signaux
Améliorer le modèle d'assouplissement quantitatif pour garantir des bénéfices à des stades spécifiques
La stratégie Laguerre RSI identifie efficacement les situations de surachat et de survente grâce à des mécanismes de filtrage tout en évitant les interférences du bruit lors de l'émission de signaux de trading.
/*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))