UltraRSI - indicateur pour MetaTrader 5
Auteur réel :
dm34@mail.ru
Cet indicateur est basé sur les lectures de l'indicateur technique RSI (Relative Strength Index), en analysant un ensemble de ses lignes de signal. L'algorithme de calcul des lignes de signal est le suivant. Les données initiales sont les paramètres d'entrée de l'indicateur :
- StartLength - valeur minimale de départ de la première ligne de signal ;
- Step - pas de changement de période ;
- StepsTotal - nombre de changements de période.
Toute valeur de la période à partir de l'ensemble des lignes de signal est calculée par la formule de progression arithmétique :
SignalPeriod(Number) = StartLength + Number * Step,
où la valeur de la variable Nombre varie de zéro à PasTotal. Les valeurs obtenues des périodes sont ajoutées au tableau des variables et utilisées à chaque tick de l'indicateur pour obtenir un tableau des valeurs moyennes de l'indicateur RSI. Sur la base de ce tableau, les directions de la tendance actuelle pour chacune des moyennes sont calculées et le nombre de tendances positives et négatives pour l'ensemble du tableau de valeurs moyennes de l'IFR est déterminé. La moyenne du nombre final de tendances positives et négatives est utilisée comme lignes d'indicateur, qui forment un nuage coloré affiché à l'aide du style DRAW_FILLING.
La direction de la tendance dans cet indicateur est déterminée par la couleur du nuage, et la force de la tendance est déterminée par sa largeur. Vous pouvez utiliser des niveaux de surachat (UpLevel) et de survente (DnLevel), qui sont définis en tant que pourcentage de la portée maximale de l'indicateur.
Les algorithmes de calcul de la moyenne de l'indicateur peuvent être modifiés selon dix variantes possibles :
- SMA - moyenne mobile simple ;
- EMA - moyenne mobile exponentielle ;
- SMMA - moyenne mobile lissée ;
- LWMA - moyenne mobile linéaire pondérée ;
- JJMA - moyenne adaptative JMA ;
- JurX - moyenne ultralinéaire ;
- ParMA - moyenne parabolique ;
- T3 - lissage exponentiel multiple de Tillson ;
- VIDYA - calcul de la moyenne à l'aide de l'algorithme de Tushar Chande ;
- AMA - calcul de la moyenne à l'aide de l'algorithme de Perry Kaufman.
Il convient de noter que les paramètres Phase1 et Phase2 ont des significations très différentes selon les algorithmes de calcul de la moyenne. Pour JMA, il s'agit de la variable externe Phase, variant de -100 à +100. Pour T3, il s'agit du facteur de calcul de la moyenne multiplié par 100 pour une meilleure perception, pour VIDYA, il s'agit de la période de l'oscillateur CMO et pour AMA, il s'agit de la période de l'EMA lent. Dans les autres algorithmes, ces paramètres n'affectent pas le calcul de la moyenne. Pour AMA, la période de l'EMA rapide est fixe et égale à 2 par défaut. Le facteur de degré pour AMA est également égal à 2.
L'indicateur utilise les classes de la bibliothèque SmoothAlgorithms.mqh (copiez-les dans le répertoire terminal_data_terminal_directory\MQL5\Include), une description détaillée de leur utilisation a été publiée dans l'article "Averaging price series without additional buffers for intermediate calculations".
Paramètres d'entrée de l'indicateur :
//+----------------------------------------------+ //|| Paramètres d'entrée de l'indicateur //+----------------------------------------------+ input int RSI_Period=13; // Période de l'indicateur RSI input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Prix d'occasion //---- input Smooth_Method W_Method=MODE_JJMA; // Méthode de calcul de la moyenne input int StartLength=3; // Début de la période de calcul de la moyenne input int WPhase=100; // Paramètre de calcul de la moyenne //---- input uint Step=5; // Étape du changement de période input uint StepsTotal=10; // Nombre de changements de période //---- input Smooth_Method SmoothMethod=MODE_JJMA; // Méthode de lissage input int SmoothLength=3; // Profondeur de lissage input int SmoothPhase=100; // Paramètre de lissage //---- input uint UpLevel=80; // Niveau de surachat en %%. input uint DnLevel=20; // Niveau de survente en %% input color UpLevelsColor=Blue; // Couleur du niveau de surachat input color DnLevelsColor=Blue; // Couleur du niveau de survente input STYLE Levelstyle=DASH_; // Niveaux Style. input WIDTH LevelsWidth=Width_1; // Épaisseur des niveaux

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/725