Accueil Indicateur technique Publication

UltraWPR : L'Indicateur Indispensable pour MetaTrader 5

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

Auteur original :

dm34@mail.ru

L'indicateur UltraWPR s'appuie sur le WPR (Plage de Pourcentage de Larry Williams, %) ainsi que sur l'analyse de plusieurs lignes de signal. Voici comment fonctionne l'algorithme de calcul des lignes de signal. Nous disposons des paramètres d'entrée de l'indicateur comme données sources :

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

Pour chaque valeur de période tirée de l'ensemble des lignes de signal, on applique une progression arithmétique :

SignalPeriod(Number)  =  StartLength +  Number * Step,

où la variable Number varie de zéro à StepsTotal. Les valeurs obtenues des périodes sont ajoutées à un tableau de variables et utilisées à chaque tick de l'indicateur pour obtenir un ensemble de valeurs lissées de l'indicateur WPR. Les directions de la tendance actuelle pour chaque lissage sont calculées, ainsi que le nombre de tendances positives et négatives pour l'ensemble du tableau des valeurs lissées. Le nombre final de tendances positives et négatives est à son tour lissé et utilisé comme lignes de l'indicateur qui forment un nuage coloré affiché grâce à la classe de style DRAW_FILLING.

La direction de la tendance dans cet indicateur est déterminée par la couleur du nuage, tandis que sa force est appréciée par la largeur du nuage. Vous pouvez utiliser les niveaux de surachat (UpLevel) et de survente (DnLevel) définis en pourcentage à partir de l'amplitude maximum de l'indicateur.

Les algorithmes de lissage peuvent être choisis parmi dix versions possibles :

  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 ultralinéaire ;
  7. ParMA - lissage parabolique ;
  8. T3 - lissage exponentiel multiple de Tillson ;
  9. VIDYA - lissage avec l'algorithme de Tushar Chande ;
  10. AMA - lissage avec l'algorithme de Perry Kaufman.

Il est important de noter que les paramètres Phase1 et Phase2 ont des significations complètement différentes selon les algorithmes de lissage. Pour le JMA, il s'agit d'une variable externe de phase variant de -100 à +100. Pour le T3, c'est un ratio de lissage multiplié par 100 pour une meilleure visualisation, pour le VIDYA c'est une période d'oscillateur CMO et pour le AMA c'est une période de EMA lente. Dans les autres algorithmes, ces paramètres n'affectent pas le lissage. Pour le AMA, la période de EMA rapide est une valeur fixe et égale à 2 par défaut. Le ratio de puissance est également égal à 2 pour le AMA.

L'indicateur utilise les classes de la librairie SmoothAlgorithms.mqh (doit être copiée dans le dossier terminal_data_folder/MQL5/Include). L'utilisation de ces classes est décrite en détail dans l'article "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

N'oubliez pas de placer le fichier compilé de l'indicateur UltraWPR dans le dossier terminal_data_folder/MQL5/Indicators.

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

//+----------------------------------------------+
//| Paramètres d'entrée de l'indicateur                  |
//+----------------------------------------------+
input int WPR_Period=13;                    // Période de l'indicateur WPR
//----
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;                          // Pas 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 uint UpLevel=80;                      // Niveau de surachat, %
input uint DnLevel=20;                      // Niveau de survente, %
input color UpLevelsColor=Blue;             // Couleur du niveau de surachat
input color DnLevelsColor=Blue;             // Couleur du niveau de survente
input STYLE Levelstyle=DASH_;              // Style des niveaux
input WIDTH  LevelsWidth=Width_1;          // Largeur des niveaux

UltraWPR

Articles connexes

Commentaire (0)