Auto-apprentissage du langage MQL5 à partir de zéro - page 78

 
Alexey Viktorov:

Je ferais ça.

Le fait est que c'est une fonction de mon EA, et qu'elle est multi-instrumentale. C'est là que vous ajoutez des symboles et qu'il vérifie tous les symboles disponibles. S'il est trouvé, il est ajouté au rapport sur le marché pour être utilisé ultérieurement avec celui-ci. Et bien sûr, le nom correct de l'instrument est écrit dans la variable locale.

 
Vitaly Muzichenko:

Alexey, le code est tout à fait normal. Ce qui n'est pas normal, c'est d'entrer plusieurs caractères dans le paramètre, ce que personne n'est susceptible de faire.

J'ai à peu près la même mise en œuvre dans mon produit de travail.

Cette mise en œuvre fonctionne avec succès dans une solution multi-devises, ce qui ne peut être dit pour d'autres codes, c'est-à-dire que le code est universel.

Il n'y a pas la moindre allusion à une solution multidevise dans la question. C'est pourquoi il est dit que le code ne répond pas à l'exigence.

 

Et juste pour info. Pourquoi vérifier les deux voies

StringFind(symbol, s, 0) >= 0 || StringFind(s, symbol, 0) >= 0

Infaillible. J'ai eu une fois un client qui s'est plaint d'avoir entré un symbole mais que celui-ci ne fonctionnait pas. Il s'est avéré que son terminal affichait un symbole pur mais le saisissait avec des additifs. J'ai ajouté la deuxième direction de contrôle sans longue réflexion ;)))

 
Ensuite, il y aura un troisième type, qui sera scandalisé par le fait qu'il a entré le nom du symbole sans additifs, et le graphique a des additifs, mais pour une raison quelconque le conseiller expert a fonctionné. Par conséquent, effectuez une comparaison exacte et, en cas de non-concordance, affichez un message - "le graphique comporte tel ou tel symbole, et vous saisissez tel ou tel symbole" et laissez la charge de la responsabilité à l'utilisateur.
 
Dmitry Fedoseev:
Ensuite, nous aurons un troisième type qui se plaindra d'avoir entré le nom du symbole sans additifs, alors que le graphique a des additifs, mais le conseiller expert a fonctionné pour une raison quelconque. Par conséquent, effectuez une comparaison exacte et, en cas de non-concordance, affichez un message - "le graphique comporte tel ou tel symbole, et vous saisissez tel ou tel symbole" et laissez la charge de la responsabilité à l'utilisateur.

Ce n'est pas une option, bien sûr. Une personne est à l'aise pour saisir des caractères purs. Et laissez le code ajouter les suffixes/préfixes lui-même. Par pur souci de commodité. Je ne suis pas un fan de la recherche du nom complet d'un personnage moi-même.
Vous pouvez même simplement copier le fichier de configuration et exécuter le programme. Il n'est pas nécessaire d'écraser quoi que ce soit. S'il y a des symboles, ils seront accrochés automatiquement.

 
Konstantin Nikitin:

Ce n'est pas une option, bien sûr. Une personne est à l'aise pour saisir des caractères purs. Et laissez le code ajouter les suffixes/préfixes lui-même. Par pur souci de commodité. Je ne suis pas un fan de déterrer le nom complet d'un personnage moi-même.

L'infaillibilité n'est jamais pratique)

 
Valeriy Yastremskiy:

L'infaillibilité n'est jamais pratique)

Ce n'est pas tant le fait d'être infaillible. Il s'agit plutôt de la commodité de copier un fichier défini. Je m'y suis déjà habitué (on s'habitue vite à une bonne chose) et je ne remarque pas quand je transfère des paramètres. Assez pratique.
Bien que la deuxième direction et ajouté des idiots ))))

 
 MrBrooklin:

Bonjour Alexey !

Afin d'améliorer vos connaissances du langage de programmation MQL5, veuillez expliquer pourquoi il n'y a pas de différence entre void &array et void& array ?

Cordialement, Vladimir.

Je ne sais pas. J'ai découvert par expérience que void & array fonctionne de la même manière. Cela & signifie que la variable est passée par référence et rien d'autre. Un tableau en tant que paramètre d'entrée d'une fonction est transmis par référence uniquement.
 
Alexey Viktorov:
Je ne sais pas. J'ai appris par expérience que void & array fonctionne de toute façon. Cela & signifie que la variable est passée par référence et rien d'autre. Un tableau en tant que paramètre d'entrée d'une fonction est transmis par référence uniquement.

Merci, Alexey ! Je garderai cela à l'esprit pour l'avenir.

Joyeux Noël !

Sincèrement, Vladimir.

 
MrBrooklin:

Merci, Alexey ! Je garderai cela à l'esprit pour l'avenir.

Joyeux Noël !

Sincèrement, Vladimir.

Artem Trishkin m'a répondu à la même question, parce que c'est un lien (en majuscules), donc il peut être placé n'importe où. Il faudrait essayer sans espaces pour la pureté de l'expérience.

Raison: