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

 
Реter Konow:
En fait, la condition ci-dessus est toujours vraie, comme 2 = 2. C'est pourquoi if (l'opérateur de condition) ne fonctionne pas ici et le compilateur générera un avertissement pour ce code.

Bonjour Peter ! Le compilateur n'a pas généré d'avertissement.

Salutations, Vladimir.

 
MrBrooklin:

Je dois avoir mal compris quelque chose, car il y a une telle réaction.

J'ai écrit la condition suivante dans le script New6.mq5 : "Pour les ordres en attente Buy Stop et Sell Stop, appliquer la directive #define au lieu de l'entrée. Cela nous permettra de spécifier dans le code du script les types d'ordres en attente nécessaires, mais ils ne seront pas affichés dans les paramètres d'entrée du script lors de son exécution. Définissons les variables définissant les types d'ordres en attente orderType1 et orderType2. Nommons ces variables "BUY_STOP" et "SELL_STOP".

Veuillez me conseiller sur ce que j'ai fait de mal dans la mise en œuvre de cette condition.

Salutations, Vladimir.

Tout est en ordre. Il n'y a essentiellement aucune condition, tout comme il n'y a aucune condition dans l'expression if (2 == 2). Il y a une certaine logique commune et quotidienne au travail ici. :)
 
MrBrooklin:

J'ai dû mal comprendre quelque chose, car il y a eu une telle réaction.

Sincèrement, Vladimir.

Le respecté membre du forumKoldun Zloy vous a donné une réponse détaillée. Il y a eu une erreur dans la macro. Pourquoi avez-vous commencé à utiliser des macros en premier lieu ? Pourquoi en avez-vous besoin dans cette tâche ? Les macros sont un outil puissant avec lequel vous pouvez facilement vous tuer. Mais la première chose à faire est de commencer à utiliser des macros.

 
MrBrooklin:

Bonjour Peter ! Le compilateur n'a pas généré d'avertissement.

Salutations, Vladimir.

Il aurait dû générer un avertissement vous invitant à vérifier la condition. (Le triangle jaune dans la fenêtre de compilation).
 
Реter Konow:
Tout va bien. En fait, il n'y a pas de condition car il n'y a pas de condition dans l'expression if (2 == 2). C'est une logique commune, quotidienne. :)

Je comprends que pour les experts en programmation, mes bêtisiers semblent maladroits. Peut-être ai-je fait une mauvaise condition d'écriture de code pour moi-même ?

Sincèrement, Vladimir.

 
Vasiliy Sokolov:

Vous, membre respecté du forum,Koldun Zloy, avez donné une réponse détaillée. L'erreur se trouve dans la macro. Pourquoi avez-vous commencé à utiliser des macros ? Pourquoi en avez-vous besoin dans cette tâche ? Les macros sont un outil puissant avec lequel vous pouvez facilement vous tuer. Mais la première chose à faire est de commencer à utiliser des macros.

Donc, je n'ai pas encore tout compris, et il y a des choses à travailler.

Salutations, Vladimir.

 
Реter Konow:
L'idée est de donner un avertissement incitant à vérifier la situation. (Le triangle jaune dans la fenêtre de compilation).

Il ne devrait pas, il y a une valeur à droite et une substitution à gauche, donc c'est correct.

 
MrBrooklin:

Je comprends que pour les experts en programmation, mes bêtisiers semblent maladroits. Peut-être ai-je fait une mauvaise condition d'écriture de code pour moi-même ?

Sincèrement, Vladimir.

Vous avez commencé vos études de la mauvaise façon. Comprenez-vous tout ce qui est écrit dans le code ? Tous les opérateurs, les mots clés ?

Une question complémentaire sur le code :

Que signifient ces lignes ?

if(!OrderSend(request,result))
      PrintFormat("OrderSend error %d",GetLastError());
 
Реter Konow:
Il aurait dû générer un avertissement vous invitant à vérifier la condition. (Le triangle jaune dans la fenêtre de compilation).

J'ai vérifié quelques fois de plus - le compilateur ne donne rien.

Salutations, Vladimir.

 
MrBrooklin:

Je comprends que pour les experts en programmation, mes bêtisiers semblent maladroits. Peut-être ai-je fait une mauvaise condition d'écriture de code pour moi-même ?

Sincèrement, Vladimir.

Cette condition n'est pas du tout nécessaire à cet endroit. Quel rôle joue-t-il ? Pouvez-vous expliquer ?