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

 
MrBrooklin:

Bonjour Alexey, pour être honnête, je ne suis pas très bon en programmation. Cela signifie-t-il que le code fourni par Konstantin doit être amélioré ?

Sincèrement, Vladimir.

Il doit être retravaillé et jeté.

 
Alexey Viktorov:

Il doit être retravaillé et jeté.

Pourquoi si cruel !

Merci Alexey ! !! Votre code fonctionne parfaitement.

Salutations, Vladimir.

 

Alexey, tout est clair concernant la recherche, car StringFind est une recherche d'une sous-chaîne dans une chaîne:

int  StringFind( 
   string  string_value,        // строка, в которой ищем 
   string  match_substring,     // что ищем 
   int     start_pos=0          // с какой позиции начинать поиск 
   );

La seule chose que je n'arrive pas à comprendre, c'est pourquoi nous vérifions l'égalité de la fonction avec zéro lors de la recherche d'une sous-chaîne dans une chaîne.

if(StringFind(_Symbol, Symbol_Main, 0) == 0)

Salutations, Vladimir.

 
MrBrooklin:

Alexey, tout est clair concernant la recherche, car StringFind est une recherche d'une sous-chaîne dans une chaîne:

La seule chose que je n'arrive pas à comprendre, c'est pourquoi nous vérifions l'égalité de la fonction avec zéro lors de la recherche d'une sous-chaîne dans une chaîne.

Salutations, Vladimir.

Extrait de la documentation de

Valeur retournée

La fonction renvoie le numéro de la sous-chaîne dans la chaîne, à laquelle la sous-chaîne recherchée commence. Si aucune sous-chaîne n'est trouvée, la fonction renvoie -1.

Par exemple, le symbole du graphique commence par "GBPUSD" et le suffixe qui y est attaché n'a pas d'importance.

J'ai été un peu hâtif aussi, cependant. Si vous saisissez uniquement "GBP" par exemple, tout graphique sera valable si la devise de base est "GBP". En outre, nous devons vérifier la longueur du texte dans la ligne de saisie.
 
Alexey Viktorov:

Extrait de la documentation

Par exemple, le symbole du graphique commence par "GBPUSD" et le suffixe qui y est attaché n'a pas d'importance.

Bien que j'aie été un peu hâtif aussi. Si vous saisissez uniquement "GBP" par exemple, tout graphique sera valide si la devise de base est "GBP". En outre, nous devons vérifier la longueur du texte dans la ligne de saisie.

mais il suffit de comparer ? et de limiter l'entrée aux lettres minuscules. ou enum, c'est à toute épreuve))))

 
Alexey Viktorov:

Extrait de la documentation

Par exemple, le symbole du graphique commence par "GBPUSD" et le suffixe qui y est attaché n'a pas d'importance.

Bien que, j'ai été un peu hâtif aussi. Si vous saisissez uniquement "GBP" par exemple, tous les graphiques seront valables si la devise de base est "GBP". En outre, nous devons vérifier la longueur du texte dans la ligne de saisie.

Je vois !

Salutations, Vladimir.

 
Valeriy Yastremskiy:

mais juste comparer ? et limiter l'entrée à des lettres minuscules. ou enum, pour le bien de l'idiot))))

Bonjour Valery ! J'ai commencé avec ENUM_SYMBOL_INFO_STRING dès le début, mais pour une raison quelconque, rien ne fonctionnait. Mais vous pouvez réessayer.

Sincèrement, Vladimir.

 
Valeriy Yastremskiy:

mais il suffit de comparer ? et de limiter l'entrée à des lettres minuscules. ou un enum, pour éloigner l'imbécile de)))).

Vous pouvez aussi simplement comparer, mais si les caractères ont un suffixe, vous devez les saisir tels quels. En général, il y a beaucoup d'options, et il est futile de discuter des goûts des flomasters.

Mais si vous avez un enum, la recherche dans la chaîne de caractères sera nécessaire. Parce que l'enum contient des noms de symboles purs et que le graphique peut contenir n'importe quelle pièce jointe.

 
Alexey Viktorov:

Pourquoi se moquer ainsi d'un esprit immature ? Votre code ne répond pas du tout à cette exigence. Si seul "eu" ou "eur" est saisi dans les paramètres d'entrée, cette partie de la condition

sera remplie quelle que soit la paire de devises contenant "EU" dans son nom et peu importe que l' EUR soit la devise de base ou la devise cotée. Et pourquoi parcourir le SymbolName de MarketWatch à la recherche du bon symbole ?

Alexei, c'est un code tout à fait normal. Ce n'est pas normal, vous devez entrer plusieurs symboles dans un paramètre, ce que personne n'a l'habitude 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 multidevises, ce qui ne peut être dit pour les autres codes, c'est-à-dire que le code est universel.

 
Alexey Viktorov:

Vous pouvez aussi simplement les comparer, mais si les caractères ont un suffixe, vous devez les saisir tels quels. En général, il y a beaucoup d'options et il est inutile de se disputer sur les goûts des flomasters.

Mais si vous avez un enum, la recherche dans la chaîne de caractères sera nécessaire. L'enum est utilisé pour stocker les noms des symboles purs, tandis que le graphique peut contenir n'importe quelle pièce jointe.

Alexey, merci pour le conseil en gras. Je vais essayer de retravailler la toute première version du code que j'ai écrit précédemment, par souci d'intérêt.

Salutations, Vladimir.

Raison: