Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Facebook !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Indicateurs

Période du cycle - indicateur pour MetaTrader 5

Publié par:
Nikolay Kositsin
Vues:
127
Note:
(19)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Le véritable auteur :

Witold Wozniak

L'objectif de cet indicateur est de mesurer la périodicité du processus de changement du prix d'un actif financier.

L'indicateur stocke dans sa mémoire tampon les valeurs du cycle de marché en cours, qui ne sont jamais constantes. Cet indicateur est conçu pour être utilisé principalement dans les oscillateurs afin de les adapter aux cycles de marché changeants et de les transformer en oscillateurs adaptatifs.

L'indicateur est basé sur l'article "Using The Fisher Transform" de John Ehlers, publié en novembre 2002 dans le magazine "Technical Analysis Of Stock & Commodities".

Indicateur de période de cycle

Pour utiliser cet indicateur dans le code d'un autre indicateur (par exemple, l'oscillateur RVI), vous devez déclarer la variable CyclePeriod du handle de l'indicateur au niveau global :

//---- déclaration de variables entières pour les poignées d'indicateurs
int CP_Handle;

Ensuite, dans le bloc d'initialisation de l'indicateur RVI , vous devez obtenir le handle de l'indicateur CyclePeriod:

//---- obtenir la poignée de l'indicateur CyclePeriod
   CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);
   if(CP_Handle==INVALID_HANDLE)
     {
      Print("Échec de la manipulation de l'indicateur CyclePeriod");
      return(1);
     }

Il existe maintenant une nouvelle variable Alpha, qui est le paramètre d'entrée de l'indicateur utilisé et représente le coefficient de moyenne de la période. Cette variable doit devenir une variable d'entrée de l'indicateur en cours de développement.

//+----------------------------------------------+
//|| Paramètres d'entrée de l'indicateur
//+----------------------------------------------+
input double Alpha=0.07; // Coefficient de moyennage de l'indicateur 

Mais l'ancienne variable d'entrée Length doit être supprimée du nombre de paramètres d'entrée, pour en faire une variable locale à l'intérieur de la fonction OnCalculate().

Pour le calcul de la moyenne, l'indicateur utilise des tableaux dont la taille est fixée par la valeur du paramètre Length:

//---- Allocation de mémoire pour les tableaux de variables 
   ArrayResize(Count,Length);
   ArrayResize(Value1,Length);
   ArrayResize(Value2,Length);

Or, la valeur de ce paramètre change, il est donc préférable que la taille de ces tableaux ne soit pas inférieure à la valeur maximale attendue de cette variable.

Après avoir analysé les graphiques de l'indicateur, nous pouvons nous assurer que cette valeur ne dépasse pas cent, et nous fixons donc la taille des tableaux exactement à cette valeur :

//---- Allocation de mémoire pour les tableaux de variables 
   ArrayResize(Count,MAXPERIOD);
   ArrayResize(Value1,MAXPERIOD);
   ArrayResize(Value2,MAXPERIOD);

Ensuite, dès le bloc OnCalculate(), il est nécessaire d'obtenir les valeurs de la période pour la barre actuelle à partir du tampon de l'indicateur personnalisé CyclePeriod et de les utiliser à la place de la valeur de l'ancien paramètre d'entrée Length.

//---- cycle de calcul de l'indicateur principal
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //---- copier les données nouvellement apparues dans le tableau
      if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);

      Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));
      if(bar<Length) Length=bar; // tronquer le calcul de la moyenne à un nombre valide de barres

Dans ce cas, les quatre dernières valeurs sont extraites de la mémoire tampon de l'indicateur CyclePeriod et font l'objet d'une moyenne pondérée linéaire, après quoi la valeur obtenue est utilisée comme période de calcul de la moyenne Length. Enfin, nous devons modifier légèrement la ligne à la fin du code de l'indicateur :

      if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);

Nous avons donc un oscillateur RVI adaptatif:

Fig.2 Indicateurs RVI et RVI adaptatif

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

Projections journalières Gamme complète Projections journalières Gamme complète

Prédiction des plages de changement de la prochaine bougie journalière pour toutes les barres du graphique actuel.

Logging V2 for both MQL4 and MQL5 Logging V2 for both MQL4 and MQL5

La classe CDebugLogger est un utilitaire de journalisation flexible et complet conçu pour être utilisé dans les environnements MQL4/5. Elle permet aux développeurs d'enregistrer des messages à différents niveaux d'importance (INFO, WARNING, ERROR, DEBUG) avec des options permettant d'inclure des horodatages, des signatures de fonctions, des noms de fichiers et des numéros de lignes dans les entrées du journal. La classe prend en charge la journalisation vers la console et les fichiers, avec la possibilité de sauvegarder les journaux dans un dossier commun et au format CSV. En outre, elle offre une fonctionnalité permettant de réduire au silence les journaux sur la base de mots-clés spécifiques, ce qui garantit que les informations sensibles ne sont pas enregistrées. Cette classe est idéale pour les développeurs qui souhaitent mettre en œuvre des mécanismes de journalisation robustes dans leurs applications MQL4/5, avec des fonctionnalités personnalisables qui répondent à un large éventail de besoins en matière de débogage et de surveillance.

Oscillateur CG adaptatif Oscillateur CG adaptatif

L'oscillateur CG adaptatif est un oscillateur CG qui s'adapte aux cycles de marché en constante évolution d'un actif financier réel.

PTB PTB

Description de l'indicateur : PTB.mq5 Aperçu : L'indicateur PTB.mq5 pour MetaTrader 5 calcule les prix hauts et bas à court terme et à long terme, ainsi que les niveaux de retracement de Fibonacci basés sur ces extrêmes. Caractéristiques : Haut et bas à court terme : Identifie le support et la résistance immédiats sur une courte période définie par l'utilisateur. Haut et bas à long terme : Analyse les tendances plus larges du marché sur une période plus longue. Niveaux de Fibonacci : Trace les niveaux de retracement clés (23,6%, 38,2%, 50%, 61,8%, 78,6%) pour les points d'inversion potentiels : Trace les niveaux de retracement clés (23,6 %, 38,2 %, 50 %, 61,8 %, 78,6 %) pour les points d'inversion potentiels. Paramètres d'entrée : shortLength : Nombre de bougies pour le calcul à court terme. longLength : Nombre de bougies pour le calcul à long terme. Représentation visuelle : Couleurs et largeurs distinctes pour chaque ligne afin de différencier les niveaux haut/bas et les niveaux de Fibonacci. Utilisation : Aide les traders à identifier les points d'entrée et de sortie et à surveiller les tendances du marché sur la base des niveaux de prix historiques.