Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 798

 
Roman Sharanov:

rien, vide

Demandezici.

 
Artyom Trishkin:

Demandezici.

S'il aide, il devrait dessiner des flèches, sur l'euro, sur l'euro-yen, l'aussie, sur les autres il ne le fait pas

Dossiers :
Hydra.mq4  9 kb
 
Roman Sharanov:

Si elle aide, elle devrait dessiner des flèches, sur l'euro, sur l'euro-yen, l'aussie, sur d'autres elle ne le fait pas

Juste une supposition.

Il y a une telle valeur dans les paramètres :

input int so_slowma = 233;//Медленная МА

Et ensuite dans OnInit() :

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

Je vois que les données des barres quotidiennes sont utilisées pour le calcul :

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

Êtes-vous sûr qu'il y a suffisamment de barres sur les symboles où il n'y a pas de dessin? Mettez une valeur plus petite dans la variable so_slowma - au moins 100. S'il y a du rendu, alors vous n'avez pas assez de données historiques.

C'est juste une supposition qui m'est venue à l'esprit la première fois que j'ai regardé le code. Et c'est peut-être faux. Mais vous devez d'abord le vérifier.

 

Comment faire pour qu'un rectangle https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle soit dessiné au-dessus d'un autre rectangle sans mélanger leurs couleurs ?

Ici, par exemple, une ligne horizontale ultérieure est dessinée au-dessus d'une ligne horizontale antérieure sans mélanger leurs couleurs, mais je ne vois pas ce qui fait la différence avec les rectangles.

Merci.

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

Juste une supposition.

Il y a une telle valeur dans les paramètres :

et ensuite dans OnInit() :

Je vois que les données des barres quotidiennes sont utilisées pour le calcul :

Êtes-vous sûr qu'il y a suffisamment de barres sur les symboles où il n'y a pas de rendu? Mettez une valeur plus petite dans la variable so_slowma - au moins 100. S'il y a du rendu, alors vous n'avez pas assez de données historiques.

C'est juste une supposition qui m'est venue à l'esprit la première fois que j'ai regardé le code. Et c'est peut-être faux. Mais vous devez d'abord le vérifier.

C'est-à-dire que, parce que je prends les données d'un graphique quotidien quelque part dans le code, l'indicateur ne dessinera pas les 233 premiers jours ?
 
Roman Sharanov:
C'est-à-dire que, parce que je prends les données des données journalières une fois dans le code, l'indicateur ne dessinera pas les 233 premiers jours ?

Non, ce n'est pas le cas. Cette valeur indique à partir de quel numéro de barre l'indicateur commencera à dessiner sur le graphique. Mais ce nombre de barres est utilisé pour calculer la moyenne mobile. S'il y a moins de barres dans le graphique, la MA ne sera pas calculée. Afin d'éviter cette situation, à la ligne 73, le code contient un retour de OnCalculate() en cas d'absence de barres pour le calcul :

if (Bars <= so_slowma) return (0);

En ce qui concerne les données quotidiennes, elles ne sont peut-être pas présentes, mais il s'agit plutôt d'une "continuation de l'histoire"...

 
Artyom Trishkin:

Non, ce n'est pas le cas. Cette valeur indique à partir de quel numéro de barre l'indicateur commencera à dessiner sur le graphique. Mais ce nombre de barres est utilisé pour calculer la moyenne mobile. S'il y a moins de barres dans le graphique, la MA ne sera pas calculée. Pour éviter cette situation, dans le code, à la ligne 73 nous avons écrit return from OnCalculate() en cas d'absence de barres pour le calcul :

En ce qui concerne les données quotidiennes, il se peut qu'elles ne soient pas là aussi, mais il s'agit plutôt d'une "continuation de l'histoire"...

La livre, par exemple, a plus de 1000 barres sur le quotidien et sur m15, mais elle ne dessine pas...

 
Roman Sharanov:

Eh bien, la livre par exemple, à la fois sur le quotidien et sur la m15, compte plus de 1000 barres, mais elle ne dessine pas...

Vous avez le code source. Imprimez les valeurs de toutes les variables dans le journal et voyez ce qu'ils obtiennent.

 
Artyom Trishkin:

Vous avez le code source. Imprimez les valeurs de toutes les variables dans le journal et voyez ce qu'ils obtiennent.

D'où cela vient-il ?


 
Roman Sharanov:

D'où cela vient-il ?


Des déchets dans les tampons. Vous devez d'abord saisir une valeur vide dans tous les tampons que vous dessinez (s'il s'agit de tampons fléchés), et seulement ensuite effectuer le calcul de l'indicateur. Je ne peux pas voir le code depuis mon portable, donc je ne peux pas dire exactement.
Raison: