
La stratégie de négociation RSI de Rachael est basée sur le filtre RSI de John EHLERS. La stratégie augmente ou diminue la stagnation et la fluidité du RSI en ajustant le facteur α, ce qui filtre le bruit du RSI et émet un signal d’achat et de vente plus clair.
L’indicateur central de la stratégie est le RSI de Raguel. Sa 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]
où γ = 1-α, α est le coefficient réglable, Src représente le prix. L0 à L3 sont les 4 indicateurs qui contiennent la relation de succession. Sur cette base, on peut calculer le cumul ascendant cu et le cumul descendant cd:
cu = (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0) cd = (L0
On peut alors calculer le RSI de Raguel en utilisant cu et cd:
LaRSI = cu / (cu + cd)
Ici, grâce à la structure du filtre récursif, le RSI de Rachael filtre une grande quantité de bruit aléatoire, ce qui permet de produire un signal de trading plus clair et plus fluide, tout en conservant la capacité de reconnaître les tendances du RSI.
Règles de négociation spécifiques: Faites plus lorsque vous portez 20 sur le RSI; faites moins lorsque vous portez 80 sur le RSI.
Les principaux avantages de la stratégie RSI de Raguel sont:
La structure du filtre Ragel filtre efficacement le bruit de l’indicateur RSI, rendant les signaux de négociation plus clairs et plus fiables
L’ajustement du coefficient α permet d’optimiser les paramètres de la stratégie avec souplesse pour s’adapter à un environnement de marché plus large
Il maintient l’efficacité à long terme de l’indicateur RSI tout en permettant l’identification de la dynamique, l’intégration des tendances et les surachats et les surventeurs via des filtres.
Les règles de la stratégie sont simples, intuitives, faciles à mettre en œuvre et fonctionnent bien dans une variété d’environnements
La stratégie présente principalement les risques suivants:
Une mauvaise configuration du coefficient α peut entraîner un retard excessif ou un filtre excessif, et manquer les changements de prix.
Des pertes de trading fréquentes dans des marchés très volatiles
Le marché haussier prolongé risque de laisser passer une partie de l’opportunité de hausse
Cette stratégie peut être optimisée dans les domaines suivants:
Paramètres optimisés par un algorithme d’apprentissage automatique pour le facteur α
Augmentation des mécanismes de prévention des pertes et réduction des risques de pertes
Combiné à d’autres indicateurs, il permet de détecter les signaux de fausse alerte.
L’augmentation du modèle d’assouplissement quantitatif, qui bloque les bénéfices à un moment donné
La stratégie RSI de Raguel est une stratégie de trading recommandée car elle est simple à utiliser, offre un grand espace d’optimisation des paramètres et s’adapte à divers environnements de marché.
/*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))