La stratégie de trading du RSI de Laguerre

Auteur:ChaoZhang est là., Date: 2023-12-19 14:04:46 Je vous en prie.
Les étiquettes:

img

Résumé

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.

La logique de la stratégie

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.

Analyse des avantages

Les principaux avantages de la stratégie RSI de Laguerre sont les suivants:

  1. Filtre efficacement le bruit du RSI à travers la structure de filtre Laguerre, rendant les signaux de trading plus clairs et plus fiables

  2. Le coefficient α réglable rend les paramètres de stratégie flexibles pour l'optimisation afin de s'adapter à plus d'environnements de marché

  3. 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

  4. Des règles de stratégie simples et intuitives, faciles à mettre en œuvre et performantes dans divers environnements de marché

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les réglages incorrects de α peuvent entraîner un retard excessif ou un surfiltrage, ce qui fait manquer les variations de prix

  2. Des pertes de négociation fréquentes peuvent survenir sur les marchés volatils

  3. Certaines opportunités de hausse peuvent être manquées dans les marchés haussiers soutenus à long terme

Directions d'optimisation

Cette stratégie peut être optimisée par les aspects suivants:

  1. Utiliser des algorithmes d'apprentissage automatique pour optimiser le réglage du coefficient α

  2. Ajouter des mécanismes de stop loss pour réduire le risque de perte

  3. Combiner d'autres indicateurs pour filtrer les faux signaux

  4. Améliorer le modèle d'assouplissement quantitatif pour garantir des bénéfices à des stades spécifiques

Conclusion

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))

Plus de