Discussion de l'article "Tracer des lignes de tendance basées sur des fractales à l’aide de MQL4 et MQL5"

 

Un nouvel article Tracer des lignes de tendance basées sur des fractales à l’aide de MQL4 et MQL5 a été publié :

L’article décrit l’automatisation du traçage des lignes de tendance en fonction de l’indicateur Fractals à l’aide de MQL4 et MQL5. La structure de l’article fournit une vue comparative de la solution pour deux langues. Les courbes de tendance sont tracées à l’aide de deux dernières fractales connues.

Pour tracer la ligne, nous devons déterminer le temps et le prix d’une fractale. Bien sûr, dans MQL4, nous pourrions simplement utiliser les séries chronologiques, prédéfinies High[] et Low[] et la fonction iTime(), mais nous devons également obtenir des coordonnées temporelles plus précises pour assurer le tracé correct de la ligne de tendance.

La Fig. 1-2 montre la différence entre les valeurs temporelles des points extrêmes sur les périodes H4 et M15.

Fig.1. La valeur de temps du point extrême sur H4

Fig.1. La valeur de temps de point extrême sur H4

Auteur : Almat Kaldybay

[Supprimé]  
Après-midi. Critique. Un jour ne correspond pas toujours à un nombre fixe de bougies. Dans votre cas, il n'est pas toujours correct de vérifier les données de 96 bougies pour M15. Il est parfois possible d'accéder aux données d'un autre jour.
 
Tapochun:
Après-midi. Critique. Un jour ne correspond pas toujours à un nombre fixe de bougies. Dans votre cas, il n'est pas toujours correct de vérifier les données de 96 bougies pour M15. Parfois, vous pouvez entrer dans les données d'un autre jour.
Merci pour la remarque, je n'ai pas rencontré ce problème moi-même car j'ai abandonné le TL quotidien en faveur du trading intrajournalier (je regarde les 4 heures, l'heure et le M15). Mais en général, je vais devoir examiner la situation de plus près.
[Supprimé]  
Almat Kaldybay:
Merci pour le commentaire, je n'ai pas vraiment rencontré ce problème car j'ai abandonné le TL journalier au profit du trading intraday (je regarde les 4 heures, l'heure et le m15). Mais en général, il faut regarder la situation de plus près.
Ceci est vrai pour n'importe quel TF, pas nécessairement pour le M15. Le point est que si vous cherchez des tops/roots dans une journée, par exemple la veille, vous ne devriez pas vous fier à un nombre fixe de bougies, il vaut mieux se fier au temps : de l'ouverture de la veille, dans ce cas, à l'ouverture (la première bougie, qui peut avoir une heure autre que 00.00) de la journée en cours.
 
Tapochun:
Ceci est vrai pour n'importe quel TF, pas nécessairement pour le M15. Le fait est que si vous cherchez des tops/roots dans une journée, par exemple la veille, vous ne devriez pas vous fier à un nombre fixe de bougies, il vaut mieux se fier au temps : de l'ouverture de la veille, dans ce cas, à l'ouverture (la première bougie, qui peut avoir une heure différente de 00.00) de la journée en cours.

Je suis en train d'écrire un EA sur mql4 et je me suis souvenu de votre critique. Bien que je n'aie pas rencontré cette situation dans la pratique, j'ai décidé de l'exclure. La solution est la suivante :

//1.2 Déterminer la barre qui suit l'extremum
int UpperFractal_1_base_next=UpperFractal_1_base-1;
int UpperFractal_2_base_next=UpperFractal_2_base-1;
int LowerFractal_1_base_next=LowerFractal_1_base-1;
int LowerFractal_2_base_next=LowerFractal_2_base-1;
//1.3 Déterminer le moment de la formation de la fractale
datetime UpFractalTime_1_base=iTime(NULL,base_tf,UpperFractal_1_base);
datetime UpFractalTime_2_base=iTime(NULL,base_tf,UpperFractal_2_base);
datetime LowFractalTime_1_base=iTime(NULL,base_tf,LowerFractal_1_base);
datetime LowFractalTime_2_base=iTime(NULL,base_tf,LowerFractal_2_base);
//1.4 Déterminer le temps de la barre qui suit l'extremum
datetime UpFractalTime_1_base_next=iTime(NULL,base_tf,UpperFractal_1_base_next);
datetime UpFractalTime_2_base_next=iTime(NULL,base_tf,UpperFractal_2_base_next);
datetime LowFractalTime_1_base_next=iTime(NULL,base_tf,LowerFractal_1_base_next);
datetime LowFractalTime_2_base_next=iTime(NULL,base_tf,LowerFractal_2_base_next);
//1.5 Déterminer les indices de barre sur m15 pour le temps d'ouverture de la barre fractale
int UpperFractal_1_m15_base=iBarShift(NULL, 15, UpFractalTime_1_base,true);
int UpperFractal_2_m15_base=iBarShift(NULL, 15, UpFractalTime_2_base,true);
int LowerFractal_1_m15_base=iBarShift(NULL, 15, LowFractalTime_1_base,true);
int LowerFractal_2_m15_base=iBarShift(NULL, 15, LowFractalTime_2_base,true);
//1.6 Déterminer les indices de barre sur m15 pour la barre suivant l'extremum
int UpperFractal_1_m15_base_next=iBarShift(NULL, 15, UpFractalTime_1_base_next,true);
int UpperFractal_2_m15_base_next=iBarShift(NULL, 15, UpFractalTime_2_base_next,true);
int LowerFractal_1_m15_base_next=iBarShift(NULL, 15, LowFractalTime_1_base_next,true);
int LowerFractal_2_m15_base_next=iBarShift(NULL, 15, LowFractalTime_2_base_next,true);
//1.7 Trouver le nombre de barres sur m15 entre la barre - fractale et la barre suivante
int UpperFractal_1_m15_NumBars_base=(UpperFractal_1_m15_base-UpperFractal_1_m15_base_next);
int UpperFractal_2_m15_NumBars_base=(UpperFractal_2_m15_base-UpperFractal_2_m15_base_next);
int LowerFractal_1_m15_NumBars_base=(LowerFractal_1_m15_base-LowerFractal_1_m15_base_next);
int LowerFractal_2_m15_NumBars_base=(LowerFractal_2_m15_base-LowerFractal_2_m15_base_next);
// --- Étape 2 - - raffinement des extrema
//2.1 Pour la première plus petite fractale
int Bar_1_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_1_m15_NumBars_base,LowerFractal_1_m15_base_next);
datetime Time_1_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
double Price_1_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
//2.2 Pour la deuxième plus petite fractale
int Bar_2_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_2_m15_NumBars_base,LowerFractal_2_m15_base_next);
datetime Time_2_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
double Price_2_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
//2.3 Pour la première fractale la plus grande
int Bar_1_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_1_m15_NumBars_base,UpperFractal_1_m15_base_next);
datetime Time_1_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
double Price_1_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
//2.4 Pour la deuxième plus grande fractale
int Bar_2_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_2_m15_NumBars_base,UpperFractal_2_m15_base_next);
datetime Time_2_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Highest_m15_base);
double Price_2_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_2_Highest_m15_base);

	          
[Supprimé]  
Almat Kaldybay:

Bien que je n'aie pas rencontré cette situation en pratique, j'ai décidé de l'exclure malgré tout

Aujourd'hui, par exemple, sur la paire GBPUSD/EURUSD M5, la première bougie s'est ouverte à 00:05. Si nous prenons 288 chandelles par analogie avec M15, nous entrerons dans les données d'un autre jour.

Il est vrai que c'est pour MT5... sur MT4 (serveur MetaQuotes-Demo) - aussi, chez un autre courtier à partir de 00:00, donc... tout est individuel et il faut encore vérifier.

 
MetaQuotes Software Corp.:

Un nouvel article Tracer des lignes de tendance basées sur des fractales avec MQL4 et MQL5 a été publié :

Auteur : Almat Kaldybay

Bonjour,

Je n'obtiens pas la ligne de tendance illustrée ci-dessus.
Un réglage particulier ?

 
Hairi Baba:

Bonjour,

Je n'obtiens pas la ligne de tendance illustrée ci-dessus.
Un réglage particulier ?

Bonjour, vous n'avez peut-être pas de données historiques M15.
 

Bonjour Almat,

Je n'obtiens pas de lignes de tendance dans le graphique, mais je reçois des alertes mobiles continues. Merci de m'aider si j'ai oublié quelque chose.

Merci,
Prakash.R

 
prakki79:

Bonjour Almat,

Je n'obtiens pas de lignes de tendance dans le graphique, mais je reçois des alertes mobiles continues. Merci de m'aider si j'ai oublié quelque chose.

Merci,
Prakash.R

Bonjour,

1. Vous devez compiler le fichier mq4 dans le méta-éditeur ;

2. je pense que vous avez des lignes de tendance dans le graphique, mais que vous ne les voyez pas à cause de l'échelle du graphique.

 
Bonjour, merci de me dire comment mettre un Expert Advisor dans mt4. J'ai téléchargé le fichier trendlines.mq4, je l'ai compilé et envoyé avec le code source dans le dossier mql4/Indicators, j'ai rechargé le terminal, j'essaie d'attacher l'indicateur au graphique - pas de réaction. Qu'est-ce qui ne va pas ?