UltraXMA : L'indicateur incontournable pour MetaTrader 5

Mike 2012.01.31 22:26 51 0 0
Pièce jointe

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                  |//+----------------------------------------------+inputENUM_APPLIED_PRICE Applied_price=PRICE_CLOSE; // Prix appliqué//----input Smooth_Method W_Method=MODE_JJMA;     // Méthode de lissageinputint StartLength=3;                    // Période de lissage initiale                    inputint WPhase=100;                       // Paramètre de lissage//----  inputuint Step=5;                          // Étape de changement de périodeinputuint StepsTotal=10;                   // Nombre de changements de période//----input Smooth_Method SmoothMethod=MODE_JJMA; // Méthode de lissageinputint SmoothLength=3;                   // Profondeur de lissage                    inputint SmoothPhase=100;                  // Paramètre de lissageinput Applied_price_ IPC=PRICE_CLOSE;       // Prix appliqué//----                          inputuint UpLevel=80;                      // Niveau de surachatinputuint DnLevel=20;                      // Niveau de surventeinputcolor UpLevelsColor=Red;              // Couleur du niveau de surachatinputcolor DnLevelsColor=Red;              // Couleur du niveau de surventeinput STYLE Levelstyle=DASH_;               // Style des niveauxinput WIDTH  LevelsWidth=Width_1;           // Largeur des niveaux        

UltraXMA

Liste
Commentaire 0