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

 
WinProject:
Merci !) De votre réponse, je conclus que pour chaque type d'objet, je dois créer une fonction distincte. J'ai pensé que d'une manière ou d'une autre il serait possible de faire un début séparé de fonctions pour construire des objets, attaché à la boucle alors que la fonction principale pour lire le fichier. Et pourquoi pas Switch ?

Je n'ai probablement pas assez approfondi le sujet.

La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.

Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.

Il sera donc nécessaire de lire le fichier une seule fois au démarrage.

 
Alexey Viktorov:

Je n'ai probablement pas assez approfondi le sujet.

La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.

Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.

Ainsi, il ne sera nécessaire de lire le fichier qu'une seule fois au démarrage.

Merci beaucoup pour la réponse, je vais essayer de faire les deux variantes, à travers les drapeaux comme suggéré par STARIJ et votre variante est aussi intéressante à essayer. Je vais essayer de poser moins de questions, c'est heureux qu'on y réponde).
 
STARIJ:

Les drapeaux sont des variables. Ou bool : false=empty, true=raised ou int - alors il y a plusieurs drapeaux dans un numéro à la fois : 0 - tout omis, 1=perte de la première, 2=perte de la deuxième, 3=perte de la première et de la deuxième, 4=perte de la troisième, 5=perte de la troisième et de la première, 6=perte de la troisième et de la deuxième, 7=perte de la première, de la deuxième et de la troisième, 8=perte de la quatrième.... C'est en code binaire. Comment le savoir ?

Merci, j'ai trouvé une bonne explication sur le net, je vais l'essayer. La chose étrange est que sur ce site, ni dans la documentation, ni dans le tutoriel, probablement supposé que tous ceux qui sont venus ici ont déjà des compétences en programmation.
 
WinProject:
Merci beaucoup pour la réponse, je vais essayer de faire les deux variantes, par les drapeaux comme suggéré par STARIJ et votre variante est aussi intéressante à essayer. Je vais essayer de poser moins de questions, c'est bien d'avoir des réponses).

Les drapeaux ne sont peut-être pas mauvais, mais ils ne servent pas à grand-chose.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Toutes les questions des débutants sur MQL4, aide et discussion sur les algorithmes et les codes

WinProject, 2018.01.26 18:17

Bonsoir, une fois de plus, je cherche de l'aide. Mon EA a une fonction principale dans OnInit, qui lit un fichier, et construit immédiatement différents objets graphiques en fonction de différentes conditions. Le graphique comporte également un bouton qui, lorsqu'il est cliqué, active la fonction permettant de supprimer ces objets, tels que les étiquettes de texte. Comment faire pour qu'après avoir appuyé sur le bouton, les étiquettes de texte soient supprimées, et qu'en relâchant le bouton, il soit possible de ne pas lancer entièrement la fonction, qui construira complètement tous les objets, mais de ne construire que les étiquettes de texte. La seule chose qui me vient à l'esprit est de créer séparément pour chaque type d'objet un analogue de la fonction principale avec toutes les actions liées à l'ouverture et à la lecture du fichier, mais je veux utiliser une solution intelligente, mais je ne sais pas laquelle et comment, dans la fonction principale ou dans les fonctions des boutons ?

Dans ce cas, il est plus facile d'implémenter la lecture du fichier dans une fonction distincte définie par l'utilisateur et de l'appeler plusieurs fois, afin de ne pas multiplier la création d'un seul et même code plusieurs fois. Mais quels que soient les efforts déployés, la lecture des fichiers demeure lorsque des drapeaux sont utilisés. Et cela ne change rien à ce qu'il faut vérifier lors de la création d'objets supprimés - leur absence ou l'état du drapeau par type d'objet. Après tout, le type d'objet est déterminé par le bouton lié à un type particulier, c'est le drapeau.
 

Pouvez-vous me dire comment obtenir la valeur de l'heure courante en MQL5 ?
J'ai créé un objet de la structure MqlDateTime, cela ne donne rien

 
Roman Sharanov:

Pouvez-vous me dire comment obtenir la valeur de l'heure courante en MQL5 ?
J'ai créé un objet de la structure MqlDateTime, cela ne donne rien

La structure doit être remplie avec la date et l'heure.
 
Artyom Trishkin:
La structure doit être remplie avec la date et l'heure.

Utiliser TimeCurrent()? Je ne comprends pas comment.

 
Roman Sharanov:

utiliser TimeCurrent()? Je ne comprends pas comment le faire.

TimeToStruct()
 
Artyom Trishkin:
TimeToStruct()

Ah, je l'ai, ça marche, merci !

 

https://docs.mql4.com/ru/basis/types/casting

Avant-dernier exemple, lacouleur en représentation RVB comme chaîne de caractères."Convertir deux structures en copiant leur contenu" ne fonctionne pas.

#property script_show_inputs
input color          testColor=clrBlue;// задайте цвет для тестирования
//--- структура для представления цвета в RGB
struct RGB
  {
   uchar             blue;          // синяя составляющая цвета
   uchar             green;         // зеленая составляющая цвета
   uchar             red;           // красная составляющая цвета
   uchar             empty;         // этот байт не используется
   string            toString();    // функция для получения в виде строки
  };
//--- функция для вывода цвета в виде строки
string RGB::toString(void)
  {
   string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
   return out;
  }
//--- структура для хранения встроенного типа color 
struct builtColor
  {
   color             c;
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- переменная для хранения в RGB
   RGB colorRGB;
//--- переменная для хранения типа color
   builtColor test;
   test.c=testColor;
//--- приведение двух структур путем копирования содержимого
   colorRGB=test;
   Print("color ",test.c," = ",colorRGB.toString());
//---
  }

Le compilateur génère l'erreur suivante... ('=' - opération illégale utiliser test.mq4 34 12 )

Ai-je mal copié quelque chose ou y a-t-il une erreur dans l'échantillon ? S'il vous plaît, conseillez-moi.

Приведение типов - Типы данных - Основы языка - Справочник MQL4
Приведение типов - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...