Souhaits pour MT5 - page 72

 
stringo:

Nous en avons déjà discuté. Nous avons découvert que nous pouvons nous contenter de la fonctionnalité existante.

Vraiment ? Et quelle est la fonctionnalité dont on peut se passer, rappelez-moi s'il vous plaît ?
 
Pourquoi les variables globales sont-elles uniquement de type double ? En 4, c'était une terrible entrave, et en 5, on ne voit pas bien pourquoi, en particulier les variables de chaîne.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 

TheXpert:
Да ладно? И каким же функционалом можно обойтись, напомните, пожалуйста?

Je vous l'ai dit. Disponible.

Par exemple, nous avons les fichiers d'en-tête inclus une fois. Pas besoin de #ifdef.

Au lieu de macrosubstituer des constantes en fonction d'une condition, nous pouvons utiliser des variables qui sont initialisées différemment dans différentes conditions.

Là encore, les conditions peuvent être définies par des variables constantes au lieu de définir par défaut.

Présence de la constante IS_DEBUG_MODE

Capacité à déterminer à la volée dans quel environnement le programme fonctionne (test, débogage, test visuel, optimisation, autorisation d'utiliser la dll).

 
marketeer:
Pourquoi les variables globales sont-elles uniquement de type double ? Les deux en 4 interféraient terriblement et en 5 on ne sait pas pourquoi, en particulier les variables de chaîne.

Il s'agit de la taille maximale des données numériques. Vous pouvez mettre jusqu'à 8 octets d'informations dans une variable globale, que vous pouvez interpréter comme une longueur, comme 2 ints ou comme 64 bits.

Pourquoi les variables globales ne peuvent pas être de type string, pour la même raison que les variables globales ne peuvent pas être des tableaux - pour ne pas compliquer inutilement les choses

 
stringo:

Pourquoi les variables globales ne peuvent pas être de type string, pour la même raison que les variables globales ne peuvent pas être des tableaux - pour ne pas compliquer les choses inutilement.

Slava, le public ne sera guère d'accord avec vous dans ce cas - cette complication ne serait pas inutile. Voulez-vous procéder à un vote ?
 
MetaDriver:
Slava, le public ne serait guère d'accord avec vous dans ce cas - cette complication ne serait pas inutile. Voulez-vous procéder à un vote ?

"Surcompliquer" dans ce contexte signifie ajouter une nouvelle fonctionnalité lente pour un petit nombre d'utilisateurs. Un mécanisme de stockage et d'accès très efficace a maintenant été mis en place, et nous ne voulons pas le détruire.

Pour échanger des données entre programmes (et même entre terminaux clients sur le même ordinateur), vous pouvez utiliser des fichiers. Il suffit d'écrire une fois quelques classes standard.

Au fait, à propos des variables globales de type chaîne. Vous en avez besoin pour l'échange de données entre les programmes d'un même terminal client ? Pourquoi ne pas transmettre les chaînes directement, par le biais des événements utilisateur? C'est une méthode beaucoup plus efficace que l'échange de données via des variables globales.

 
stringo:

Il s'agit de la taille maximale des données numériques. Vous pouvez mettre jusqu'à 8 octets d'informations dans une variable globale, que vous pouvez interpréter comme une longueur, comme 2 ints ou comme 64 bits.

Pourquoi les variables globales ne peuvent pas être des chaînes de caractères, pour la même raison que les variables globales ne peuvent pas être des tableaux - pour ne pas compliquer les choses inutilement.

Vous connaissez le raisonnement habituel : vous vous facilitez la vie et la rendez plus difficile aux utilisateurs, bien que le programme semble être écrit pour eux. Il n'y a pas de complication particulière en termes de mise en œuvre pour vous, mais essayer d'"interpréter" ce double comme vous le voulez, faute d'autre chose - c'est une complication pour un candidat, pour ne pas dire plus fort. Alors que vous devez émuler les variables globales d'autres types avec des moyens improvisés - ce que vous pouviez faire une fois dans le système, les développeurs d'applications le font à leur place.
 
stringo:

Au fait, à propos des variables globales de type chaîne de caractères. Vous en avez besoin pour échanger des données de type chaîne entre les programmes d'un même terminal client, n'est-ce pas ? Pourquoi ne pas transmettre les chaînes directement, par le biais des événements utilisateur? C'est une méthode beaucoup plus efficace que l'échange de données via des variables globales.

Ce sont des choses complètement différentes. L'état doit être stocké et accessible, tandis que les messages sont un moyen de changer d'état.
 
marketeer:
Un raisonnement familier : vous vous facilitez la vie et la rendez plus difficile aux utilisateurs, alors que le programme semble avoir été écrit pour eux. Il n'y a pas de complication particulière en termes de mise en œuvre pour vous, mais essayer d'"interpréter" ce double de quelque manière que ce soit, faute d'autre chose - c'est une complication pour l'utilisateur, pour ne pas dire plus forte. Alors que vous devez émuler les variables globales d'autres types avec des moyens improvisés - ce que vous pouviez faire une fois dans le système, les développeurs d'applications le font à leur place.

Pourquoi émuler quoi que ce soit ? Vous pouvez stocker n'importe quel type de données dans les 8 octets d'une variable globale, sauf une chaîne de caractères. S'il s'agit de données de type double, vous utilisez directement la valeur résultante. S'il s'agit de données d'un autre type, il faut alors une opération supplémentaire de copie de structures simples pour obtenir les données du bon type.

 
stringo:

Pourquoi émuler quoi que ce soit ? Vous pouvez stocker n'importe quel type de données dans les 8 octets d'une variable globale, sauf une chaîne de caractères. S'il s'agit de données de type double, vous utilisez directement la valeur résultante. S'il s'agit d'un autre type, vous devez effectuer une opération supplémentaire de copie de structures simples pour obtenir les données du bon type.

J'étais surtout intéressé par les cordes.