Discussion de l'article "Comprendre les fonctions dans MQL5 avec des applications"

 

Un nouvel article Comprendre les fonctions dans MQL5 avec des applications a été publié :

Les fonctions sont des éléments essentiels dans tout langage de programmation : elles aident les développeurs à appliquer le concept DRY, qui signifie ne vous répétez pas, et présentent bien d'autres avantages. Dans cet article, vous trouverez beaucoup plus d'informations sur les fonctions, et sur comment créer nos propres fonctions en MQL5 avec des applications simples pouvant être utilisées ou appelées dans n'importe quel système de votre choix pour l’enrichir sans compliquer les choses.

Disons que nous avons besoin que le logiciel exécute la tâche de fermer tous les ordres ouverts si le solde a atteint un drawdown maximum. Cette tâche doit être exécutée dans plusieurs parties du logiciel. Il sera préférable ici de créer une fonction et d'inclure tout le code ou la logique nécessaire pour exécuter cette tâche, puis d'appeler cette fonction dans d'autres parties. Il serait au contraire mauvais d'écrire et de répéter le même code dans plusieurs parties pour exécuter la tâche.

Si vous vous demandez pourquoi nous devons utiliser ce type de fonction, la réponse à cette question nous amènera à apprendre les caractéristiques de l'utilisation des fonctions définies par l'utilisateur :

  • Application du concept DRY (Do not Repeat Yourself - Ne Vous Répétez Pas) : l'utilisation de fonctions définies par l'utilisateur nous aidera à ne pas répéter le même code encore et encore. Nous créerons à la place une fonction qui peut effectuer notre tâche une fois et l'appeler ensuite dans n'importe quelle partie du logiciel.
  • Réutilisation : après avoir créé notre fonction, nous pouvons la réutiliser à tout moment.
  • Application du concept "diviser pour mieux régner" : lorsque nous créons un logiciel, le code peut être complexe pour résoudre un problème. Mais si nous divisons le gros problème en petits problèmes et que nous résolvons chacun d'entre eux par des fonctions, cela peut être très utile pour atteindre notre objectif de résolution du gros problème.
  • Le code est plus lisible et compréhensible : lorsque nous utilisons des fonctions, notre code devient plus lisible car il est mieux organisé grâce aux fonctions et chacun gère un problème spécifique et a une tâche spécifique.
  • Application du concept d'abstraction : l'utilisation de fonctions permet d'abstraire notre code, car si nous ne les utilisons pas, nous risquons de devoir écrire plus de lignes de code qu'en utilisant des fonctions.
  • Appliquer du concept d'encapsulation : lorsque nous utilisons des fonctions, cela nous permet de sécuriser et de gérer notre code et nos données davantage que si nous ne les utilisions pas.
  • Améliore le processus de débogage : l'utilisation de fonctions permet d'améliorer l'exploration des erreurs et de les résoudre plus facilement.

Suivant les caractéristiques de l'utilisation des fonctions, nous pouvons facilement déterminer les avantages de l'utilisation de ces fonctions définies par l'utilisateur dans notre logiciel.


Auteur : Mohamed Abdelmaaboud

 

utile

de nombreux remerciements

j'espère trouver la même chose pour les pointeurs et les questions connexes

 
Mohamed Hassan Mohamed Hassan Alsherbiny #:

utile

nombreux remerciements

j'espère trouver la même chose pour les pointeurs et les questions connexes

Merci pour votre commentaire.

J'essaierai de le faire.

 

Merci à l'auteur pour cet article ! Je pense qu'il s'agit d'une information très utile pour tous les débutants qui souhaitent apprendre le langage de programmation MQL5. Je l'ai ajouté à mes favoris.

Cordialement, Vladimir.

Ajouté : mon seul souhait lorsque je publie des articles sur un forum en langue russe est que tous les commentaires soient en russe. C'est tellement plus facile d'assimiler l'information. Voici un exemple. Au lieu de :

//fonction d'addition
// le type de données renvoyées est un entier - le nom de la fonction est add - les paramètres ou arguments sont deux variables int val1 et val2
int add(int val1, int val2)
  {
   //corps de la fonction que la fonction doit exécuter lorsqu'elle est appelée
   //créer une nouvelle variable résultat qui sera affectée par le résultat de l'addition de val1 et val2
   int result = val1+val2;
   //Imprimer le résultat dans l'onglet des experts
   Print(result);
   //valeur de retour
   return 0;
  }

ce serait bien de voir la traduction en une seule fois :

//fonction d'addition
//Le type de données retournées est un entier. Le nom de la fonction est add. Les paramètres ou arguments sont deux variables de type int val1 et val2.
int add(int val1, int val2)
   {
    //le corps de la fonction que nous voulons que la fonction exécute lorsqu'elle est appelée
    //Créer une nouvelle variable résultat à laquelle sera affecté le résultat de l'addition de val1 et val2
    int result = val1+val2;
    //Imprimer le résultat dans l'onglet Experts
    Print(result);
    //retour de la valeur
    return 0;
   }

D'ailleurs, en traduisant les commentaires en russe, j'ai eu un ajout sous forme de question : pourquoi return dans cette fonction renvoie-t-il zéro au lieu du résultat?

N'est-ce pas une erreur de l'auteur ?

 
MrBrooklin #:

D'ailleurs, lorsque j'ai traduit les commentaires en russe, j'ai eu un ajout sous forme de question : pourquoi return dans cette fonction renvoie-t-il zéro et non le résultat?

N'est-ce pas une erreur de l'auteur ?

Messieurs les programmeurs ! Est-ce que mon cerveau s'est desséché au point que je ne comprends pas l'utilité de l'opérateur return ou est-ce que c'est toujours une erreur de l'auteur ?

Cordialement, Vladimir.

 
MrBrooklin #:

Messieurs les programmeurs ! Est-ce que mon cerveau s'est desséché au point de ne pas comprendre l'utilité de l'opérateur return ou est-ce une erreur de l'auteur ?

Cordialement, Vladimir.

Bonjour Vladimir. Je pense que vous êtes déjà devenu un programmeur suffisamment expérimenté pour deviner qu'il s'agit simplement d'une erreur...

 
Alexey Viktorov #:

Bonjour Vladimir. Je pense que tu es déjà devenu un programmeur suffisamment expérimenté pour deviner qu'il s'agit d'une erreur....

Bonjour Alexey, merci bien sûr, mais je suis encore aussi loin d'un programmeur expérimenté que de Pékin. )) Je me demande comment ils font pour laisser entrer dans le forum des articles contenant de telles erreurs ?

Cordialement, Vladimir.

 
MrBrooklin #:

Merci, bien sûr, mais je suis encore aussi loin d'être un programmeur suffisamment expérimenté que je suis loin de Pékin. )) Je me demande juste comment ils font pour laisser entrer dans le forum des articles contenant de telles erreurs ?

Cordialement, Vladimir.

Vladimir, "suffisamment expérimenté" ne signifie pas "gourou". Ce n'est pas de la flatterie.

La fonction est écrite et non déboguée, de sorte que de telles erreurs sont possibles en raison d'un manque d'attention. Et ce qui leur manque......... Combien de personnel faut-il pour relire attentivement tous les articles et corriger de telles erreurs ? Ce n'est pas réaliste... Si vous remarquez une erreur, vous la signalez, elle est corrigée et tout le monde est content.

 
Alexey Viktorov #:

Vladimir, "suffisamment expérimenté" n'est pas synonyme de gourou. Ce n'est pas de la flatterie.

La fonction est écrite et non déboguée, de telles erreurs sont donc possibles par manque d'attention. Et ce qui leur manque......... Combien de personnel faut-il pour relire attentivement tous les articles et corriger de telles erreurs ? Ce n'est pas réaliste... Si vous remarquez une erreur, vous la signalez, elle est corrigée et tout le monde est content.

Le fait est que les débutants apprennent à partir de ces articles, y compris ceux qui n'ont aucune connaissance, et qu'ils n'ont pas la possibilité d'évaluer si le code est correct ou non, mais seulement de le croire sur parole. ))

Cordialement, Vladimir.

 
MrBrooklin langage de programmation MQL5. Je l'ai ajouté à mes favoris.

Cordialement, Vladimir.

Ajouté : mon seul souhait, lorsque je publie des articles sur un forum en langue russe, est que tous les commentaires soient rédigés en russe. C'est tellement plus facile d'assimiler l'information. Voici un exemple. Au lieu de :

ce serait bien de voir une traduction tout de suite :

Au fait, lorsque j'ai traduit les commentaires en russe, j'ai eu un ajout supplémentaire sous la forme d'une question : pourquoi return dans cette fonction renvoie-t-il zéro et non le résultat?

N'est-ce pas une erreur de l'auteur ?

Bonjour, M. Brooklyn !

Merci pour votre commentaire et votre notification. Cette erreur a été corrigée et envoyée pour publication.


Nous vous remercions de votre attention.

 
Mohamed Abdelmaaboud #:

Bonjour, Monsieur Brooklyn !

Merci pour votre commentaire et votre notification. Cette erreur a été éditée et envoyée pour publier l'erreur correcte.

Nous vous remercions de votre attention.

Bonjour, merci pour votre réponse.

Je vous prie d'agréer, Vladimir, l'expression de mes salutations distinguées.