Accueil Indicateur technique Publication

UltraXMA : L'indicateur incontournable pour MetaTrader 5

Pièce jointe
730.zip (20.86 KB, Télécharger 0 fois)

Aujourd'hui, on va parler d'un indicateur qui pourrait bien devenir votre meilleur allié sur MetaTrader 5 : l'UltraXMA. Cet outil est basé sur la valeur intégrale de la tendance à partir de fans de moyennes mobiles similaires, utilisant une progression arithmétique pour le lissage.

L'algorithme de calcul des moyennes mobiles s'articule autour des paramètres d'entrée de l'indicateur, que voici :

  • StartLength - valeur initiale minimale de la première ligne de signal ;
  • Step - étape de changement de période ;
  • StepsTotal - nombre total de changements de période.

Chaque valeur de période dans le fan de lignes est calculée à l'aide de la progression arithmétique :

XMAPeriod(Number) = StartLength + Number*Step

où la variable Number varie de 0 à StepsTotal. Les valeurs obtenues sont ajoutées à un tableau qui sera utilisé à chaque tick de l'indicateur pour générer les valeurs des moyennes mobiles XMA. Les directions de la tendance actuelle pour chaque lissage sont également calculées, tout comme le nombre de tendances positives et négatives dans l'ensemble du tableau de valeurs. Le résultat final de ces tendances est ensuite lissé et utilisé pour former les lignes de l'indicateur qui créent un nuage coloré grâce à la classe de style DRAW_FILLING.

La direction de la tendance dans cet indicateur est indiquée par la couleur du nuage, tandis que sa force est déterminée par la largeur du nuage. Vous avez la possibilité d'utiliser les niveaux de surachat (UpLevel) et de survente (DnLevel), qui sont définis en pourcentage par rapport à l'amplitude maximale de l'indicateur.

Vous pouvez choisir parmi dix algorithmes de lissage différents :

  1. SMA - moyenne mobile simple ;
  2. EMA - moyenne mobile exponentielle ;
  3. SMMA - moyenne mobile lissée ;
  4. LWMA - moyenne mobile pondérée linéaire ;
  5. JJMA - moyenne adaptative JMA ;
  6. JurX - lissage ultra-linéaire ;
  7. ParMA - lissage parabolique ;
  8. T3 - lissage exponentiel multiple de Tillson ;
  9. VIDYA - lissage utilisant l'algorithme de Tushar Chande ;
  10. AMA - lissage utilisant l'algorithme de Perry Kaufman.

Attention, les paramètres de phase pour les différents algorithmes de lissage ont des significations totalement différentes. Par exemple, pour JMA, la variable Phase externe varie de -100 à +100. Pour T3, cela correspond à un ratio de lissage multiplié par 100 pour une meilleure visualisation, tandis que pour VIDYA, il s'agit de la période de l'oscillateur CMO, et pour AMA, cela représente une période de EMA lente. Dans les autres algorithmes, ces paramètres n'ont pas d'impact sur le lissage. Pour AMA, la période de EMA rapide est une valeur fixe, égale à 2 par défaut, et le ratio de puissance est également égal à 2.

L'indicateur utilise les classes de la bibliothèque SmoothAlgorithms.mqh (à copier dans le dossier terminal_data_folder\MQL5\Include). L’utilisation de ces classes est expliquée en détail dans l'article "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Paramètres d'entrée de l'indicateur :

//+----------------------------------------------+
//| Paramètres d'entrée de l'indicateur                  |
//+----------------------------------------------+
input ENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Prix appliqué
//----
input Smooth_Method W_Method=MODE_JJMA;     // Méthode de lissage
input int StartLength=3;                    // Période de lissage initiale                    
input int WPhase=100;                       // Paramètre de lissage
//----  
input uint Step=5;                          // Étape de 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 Applied_price_ IPC=PRICE_CLOSE;       // Prix appliqué
//----                          
input uint UpLevel=80;                      // Niveau de surachat
input uint DnLevel=20;                      // Niveau de survente
input color UpLevelsColor=Red;              // Couleur du niveau de surachat
input color DnLevelsColor=Red;              // Couleur du niveau de survente
input STYLE Levelstyle=DASH_;               // Style des niveaux
input WIDTH  LevelsWidth=Width_1;           // Largeur des niveaux        

UltraXMA

Articles connexes

Commentaire (0)