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

 
Valeriy Yastremskiy:

Exactement logique, pas de chaîne, car il y a un I.)))) entre les deux.

Donc, je n'ai pas bien compris votre question. J'ai raté le point lorsque vous avez demandé "... quel type de variable est-ce...". Je suis en train d'apprendre. Merci pour le conseil !

Salutations, Vladimir.

 
Igor Makanu:

c'est une condition complètement différente de celle ci-dessus, et ce n'est pas une question de différence visuelle.

Il s'agit de l'exécution simultanée de la partie gauche du "ET" et de la partie droite du "ET".

Bonjour, Igor ! J'ai déjà compris quelle était l'erreur. Merci pour le conseil !

Salutations, Vladimir.

 
MrBrooklin:

Bonjour, Igor ! J'ai déjà compris quelle était l'erreur. Merci pour le conseil !

Salutations, Vladimir.

Hier, Vasily Sokolov a donné des recommandations sur la façon d'étudier la langue, et l'accent a été mis sur la compréhension des fonctions.

c'est correct et pratique - cela accélère le développement, vous permet de diviser la tâche en blocs, vous permet de réutiliser le code....

Mais, à mon avis, vous devez d'abord apprendre à traiter les conditions logiques, ce n'est qu'une question de temps pour trouver une fonction utilisateur toute prête ou utiliser les fonctions standard de MQL.

Mais il est plus important de créer correctement les conditions logiques, ainsi que de formaliser le problème, ce qui est une seule et même chose.


Les erreurs logiques sont les pires - tout va fonctionner, mais quand et où cela va mal tourner... vous ne le trouverez pas ))))


bien et sur le sabotage, si à propos des conditions, écrivez la condition d'intersection de 2 MAs, bien que tous les forums thématiques soient remplis de cette question et réponse, mais il arrive souvent qu'une question aussi simple pour un homme, ne soit pas si facile à formaliser sous forme de conditions logiques ;)


UPD : Bonjour !

 

Une fois encore, je tiens à remercier Valery et Igor de m'avoir aidé à comprendre le fonctionnement du type de données bool à l'aide d'un exemple aussi simple.

Salutations, Vladimir.

 
Igor Makanu:
... Bien et sur le sujet, si à propos des conditions, écrivez la condition d'intersection de 2 MAs, bien que tous les forums thématiques soient pleins de cette question et réponse, mais il arrive souvent qu'une question aussi simple pour une personne ne soit pas si facile à formaliser sous forme de conditions logiques ;)...

Je vais certainement l'essayer, mais un peu plus tard. Je suis en quarantaine avec la grippe et j'ai l'impression que ma tête ne digère pas très bien les nouvelles informations.

Salutations, Vladimir.

 
Aliaksandr Hryshyn:
Question de test :
"suffisamment de temps" - quel type de variable cela peut-il être pour qu'il n'y ait pas d'avertissement du compilateur?

Les gars, ne faites pas de conneries. Ne prenez pas Brooklyn à part. Ne vous concentrez pas sur les types.

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b)
     {
      Print("я выучу язык MQL 5");
     }
  }

Le code fonctionne bien. Parce que au niveau du noyau, une fonction de comparaison de chaînes de caractères est définie qui renvoie vrai si les chaînes sont égales, et faux sinon. Lorsque nous écrivons a != b, la fonction qui compare les deux chaînes de caractères via le littéral != est appelée. À propos, il appartient à l'utilisateur de définir une fonction de comparaison pour ses propres types d'utilisateurs, qui fonctionneront alors de manière similaire. Il ne s'agit donc pas de types, mais de fonctions.

Mais bien qu'il soit exécuté correctement, le code est incohérent en interne. En réalité, l'auteur voulait exprimer que "si j'ai assez de temps" et "assez de patience", le résultat sera "je vais apprendre MQL5". En fait, il en résulte qu'une valeur ne doit pas être égale à une autre pour pouvoir apprendre la langue.

 
Vasiliy Sokolov:

Les gars, ne faites pas de conneries. Ne prenez pas Brooklyn à part. Ne vous concentrez pas sur les types.

Le code fonctionne très bien. Parce que au niveau du noyau, une fonction de comparaison de chaînes de caractères est définie qui renvoie vrai si les chaînes sont égales et faux sinon. Lorsque nous écrivons a != b, la fonction comparant deux chaînes de caractères via le littéral != est appelée. À propos, il appartient à l'utilisateur de définir une fonction de comparaison pour ses propres types d'utilisateurs, qui fonctionneront alors de manière similaire. Il ne s'agit donc pas de types, mais de fonctions.

Mais bien qu'il soit exécuté correctement, le code est incohérent en interne. En réalité, l'auteur voulait exprimer que "si j'ai assez de temps" et "assez de patience", le résultat sera "je vais apprendre MQL5". En fait, le résultat est qu'une valeur ne doit pas nécessairement être égale à une autre pour apprendre la langue.

Bonjour Vasily ! Merci pour votre soutien et vos précisions ! Quoi qu'il en soit, je vous remercie tous d'avoir partagé vos connaissances avec moi. Ils sont très importants pour moi, surtout à ce stade !

Sincèrement, Vladimir.

 
MrBrooklin:

Bonjour Vasily ! Merci pour votre soutien et pour la clarification ! Merci quand même à tous ceux qui ont partagé leurs connaissances avec moi. Ils sont très importants pour moi, surtout à ce stade !

Je me sens mieux maintenant. Nous continuerons après.

 
Vasiliy Sokolov:

Rétablissez-vous. Nous continuerons après.

Merci !

Sincèrement, Vladimir.

 
Vasiliy Sokolov:
"... Cependant, le code, bien qu'exécuté correctement, est incohérent sur le plan interne. En réalité, l'auteur voulait exprimer que "si j'ai assez de temps" et "assez de patience", le résultat sera "je vais apprendre MQL5". En fait, le résultat est qu'une valeur ne doit pas être égale à une autre pour apprendre la langue."

Il y a d'abord eu cette version du scénario :

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
string a="достаточно времени";
string b="достаточно терпения";
//---
   if(a!=b && b!=a)
     {
      Print("я выучу язык MQL 5");
     }
  }
//+------------------------------------------------------------------+

dans lequel j'ai utilisé un "AND" logique. Puis j'ai regardé que dans la condition serait suffisant pour imprimer l'expression "Je vais apprendre MQL5" a!=b. Bref, je ne suis pas allé au cœur du sujet, qui m'avait été suggéré par Valery et Igor.

Salutations, Vladimir.

Raison: