Questions sur la POO dans MQL5

 

Hier, une question s'est posée, j'ai donc décidé de consulter mes frères).

Le samedi 21.05.2016, j'expliquais les bases de la POO à un homme, en utilisant une bibliothèque standard comme exemple. Il avait l'habitude de programmer en MQL4, puis a fait une pause de 5 ans et a décidé de revenir. J'ai commencé à lui faire découvrir le hedging MT5, car j'y refais moi-même tout.

Aussi étrange que cela puisse paraître, cette personne (Maxim, je veux dire vous, si vous lisez cet article :)) a compris les bases de la POO et nous avons même réussi à passer en revue les parties les plus importantes en utilisant l'exemple d'une bibliothèque standard sous le débogueur.

Mais !!! J'avais promis un enregistrement, et pour des raisons techniques tout s'est envolé(((

J'ai promis que je ferai des cheat sheets vidéo exactement sur OOP, je pense, 10 minutes chacun.

Question :

Proposez un sujet sur la POO dans MQL5 pendant 10 minutes. Je le posterai sur YouTube, il sera utile à tous.

------------------

Écrivez tout ce qui est intéressant, je ferai le tri, j'essaierai de satisfaire vos demandes dans la limite de mon temps libre.

Bonne chance !)

 
Alexey Volchanskiy:

Hier, une question s'est posée, j'ai donc décidé de consulter mes frères).

Le samedi 21.05.2016, j'expliquais les bases de la POO à un homme, en utilisant une bibliothèque standard comme exemple. Il avait l'habitude de programmer en MQL4, puis a fait une pause de 5 ans et a décidé de revenir. J'ai commencé à lui faire découvrir le hedging MT5, car j'y refais moi-même tout.

Aussi étrange que cela puisse paraître, cette personne (Maxim, je veux dire vous, si vous lisez cet article :)) a compris les bases de la POO et nous avons même réussi à passer en revue les parties les plus importantes en utilisant l'exemple d'une bibliothèque standard sous le débogueur.

Mais !!! J'avais promis un enregistrement, et pour des raisons techniques, tout s'est envolé(()

J'ai promis que je ferai des cheat sheets vidéo exactement sur OOP, je pense, 10 minutes chacun.

Question :

Proposez un sujet sur la POO dans MQL5 pendant 10 minutes. Je le posterai sur YouTube, il sera utile à tous.

------------------

Écrivez tout ce qui est intéressant, je ferai le tri, j'essaierai de satisfaire vos demandes dans la limite de mon temps libre.

Bonne chance !)

Alexey, faites des exemples sur les endroits les moins couverts dans l'aide - les pointeurs, les pointeurs de fonction, le travail avec les classes de modèles, etc. Bien que, honnêtement, à mon avis, une telle vidéo sur C++ en abondance et il ne sera pas augmenter la connaissance, pour augmenter la connaissance vous avez besoin de la littérature, les webinaires et la diligence.
 
coderex:
Alexey, faites des exemples sur les endroits les moins couverts dans l'aide - les pointeurs, les pointeurs de fonction, le travail avec les classes de modèles, etc. Bien que, franchement, à mon avis, une telle vidéo sur le C++ soit abondante et qu'elle n'augmente en rien les connaissances, vous avez besoin de littérature, de webinaires et de diligence pour les améliorer.
Il n'y a pas de pointeurs en MQL, il y a des descripteurs). Les pointeurs (conditionnels) vers les fonctions ont été récemment introduits, une sorte de béquille pour répondre au concept général de "tous les algo-traders sont suicidaires, ne leur donnez pas de pointeurs".
 
Alexey Volchanskiy:
Il n'y a pas de pointeurs en MQL, il y a des poignées)) Les pointeurs (conditionnels) vers les fonctions ont été récemment introduits, c'est une sorte de béquille pour répondre au concept général "tous les algo-traders sont suicidaires, ils ne doivent pas utiliser de pointeurs".

Alexei, ne t'accroche pas aux mots :) Si j'avais écrit "descripteurs", pour une raison quelconque, je suis sûr que vous ne m'auriez pas compris immédiatement. Quant à ce qui a été introduit récemment et ce qui a été introduit il y a longtemps, cela ne change pas l'essentiel, ces questions sur l'aide sont suspendues dans l'air, il n'y a pas un mot ou un petit bout à leur sujet. Et ces noms, même s'ils se comportent différemment en ce qui concerne C++ et MQL, se ressemblent tous, du moins, c'est ce que les développeurs essaient de faire. J'ai même vu qu'ils ont déjà introduit la comparaison des pointeurs :) Bien qu'honnêtement, pour MT, je ne peux pas imaginer où l'utiliser.

Mais tout de même, je pense que si vous abordez ces questions, de nombreux codeurs novices vous en seront reconnaissants. J'ai vu votre vidéo l'autre jour ; vous savez expliquer les choses de manière si claire :)

 
coderex:

Alexei, ne t'accroche pas aux mots :) Si j'avais écrit "descripteurs", pour une raison quelconque, je suis sûr que vous ne m'auriez pas compris immédiatement. Quant à ce qui a été introduit récemment et ce qui a été introduit il y a longtemps, cela ne change pas l'essence, ces questions sur l'aide sont suspendues dans l'air, il n'y a pas un mot ou un petit bout à leur sujet. Et ces noms, même s'ils se comportent différemment en ce qui concerne C++ et MQL, se ressemblent tous, du moins, c'est ce que les développeurs essaient de faire. J'ai même vu qu'ils ont déjà introduit la comparaison des pointeurs :) Bien qu'honnêtement, pour MT, je ne peux pas imaginer où l'utiliser.

Mais tout de même, je pense que si vous abordez ces questions, de nombreux codeurs novices vous en seront reconnaissants. J'ai regardé une fois votre vidéo, vous savez comment expliquer les gens clairement :)

Je pense que vous ne devriez en aucun cas faire d'une vidéo éducative une version étendue de l'aide. L'objectif est d'éduquer, pas d'éclairer les détails indignes.
 
Alexey Volchanskiy:

Question :

Proposez un sujet sur la POO dans MQL5 pendant 10 minutes, je le mettrai sur YouTube, c'est-à-dire qu'il sera utile à tous.

La POO devrait être expliquée sans aucun code et toute cette nomenclature absconse comme les classes, les objets, les pointeurs, etc. etc.

Comment fonctionne un cours de programmation classique ? Au début, un étudiant essaie péniblement de passer de la pensée humaine aux bases de la programmation (boucles, fonctions, variables et autres choses de ce genre qui constituent un "bagage de connaissances" nécessaire). Puis, lorsque le désordre des fonctions, des variables et des "si" forme une structure plus ou moins ordonnée, on dit à l'étudiant : "Regardez : la POO existe. Oubliez ce qu'on vous a enseigné auparavant, et recommencez à penser comme un humain". Il s'ensuit une rupture des modèles, le "bagage de connaissances" tout juste obtenu avec tant de difficultés est jeté à la poubelle, et la personne se retrouve quelque part entre le ciel et la terre. Naturellement, on se souvient ensuite de cet "OLP" pendant plusieurs années comme d'un mauvais rêve accompagné de frissons et de douleurs dans les parties restantes du cerveau (les autres ont été brûlées par la nouvelle connaissance).

Non, j'affirme catégoriquement qu'il ne faut pas apprendre la programmation. Au contraire, elle est nuisible et dangereuse. Au contraire, il est nécessaire d'enseigner la réflexion. Et avec cela, il y a un échec complet de la méthode classique d'apprentissage.

 
Vasiliy Sokolov:
À mon avis, vous ne pouvez en aucun cas faire une version étendue de l'aide à partir d'une vidéo de formation. La tâche est d'éduquer, pas d'éclairer les détails indignes.

Alexei a demandé l'avis des utilisateurs du forum, je lui ai écrit mon avis, et ce qu'il en sera, seul Alexei le sait :)

D'ailleurs, comment peut-on apprendre s'il n'y a aucune information à ce sujet nulle part ? Je le sais, puisque j'écris en C++, et ceux qui n'apprennent que MQL5, ne connaîtront pas ces détails, car la référence n'en dit pas un mot :)

 
Voulez-vous apprendre la POO de manière compétente ? - Apprendre UML
 

Vasiliy Sokolov:

Puis, lorsque le fouillis de fonctions, de variables et de "si" dans votre tête forme une structure plus ou moins ordonnée, on dit à l'étudiant : "Regardez : la POO existe. Oubliez ce qu'on vous a enseigné auparavant, et recommencez à penser comme un humain". Puis vient la rupture des gabarits, le "bagage de connaissances" tout juste obtenu au prix d'un si grand effort est jeté à la poubelle et la personne se retrouve quelque part entre la terre et le ciel.

Eh bien, vous êtes trop. Un homme a été initialement engagé uniquement dans l'OOP. Du moins, en préparant simplement une tasse de café. D'où viennent les motifs ? IMHO, l'absurdité des enseignants inintelligents, déplaçant leurs problèmes sur les étudiants.
 

N'effrayez pas les gens avec l'OOP.

Il n'est pas nécessaire de connaître la POO pour créer de bons EA ou autres dans MQL5. Vous n'avez même pas besoin de connaître le mot classe ou pointeur.

La POO est surtout utilisée pour créer de grandes tâches et des complexes, surtout lorsqu'il y a un travail d'équipe.

Et dans MQL5, vous pouvez vous passer de la POO.

Je dois ajouter que depuis plus de 10 ans, je suis impliqué dans la formation des programmeurs qui veulent travailler dans des entreprises étrangères, où la principale exigence est la connaissance de la POO.

Je dis cela pour que vous ne pensiez pas que je suis un adversaire de la POO. Il faut juste l'utiliser comme prévu et ne pas se compliquer la vie.

 

La compréhension de la POO vient d'elle-même lorsque les programmes deviennent plus complexes. Le programmeur commence à diviser la feuille de code en plusieurs fonctions, il est nécessaire de transférer les résultats des différentes fonctions entre elles, bientôt il commence à soupçonner que tout transférer via les arguments de fonction n'est pas la meilleure solution, très probablement il commencera à créer des variables globales, une personne est presque mûre pour la POO, la seule chose qui reste est d'isoler les fonctions logiquement liées et leurs données privées. Mon expérience : dans mcl4, j'ai commencé à créer quelque chose comme ça :

// file_1.mqh
int name1_counter = 0;
int name1_data = 0;
double name1_value = 0;
void name1_action() {name1_counter++; name1_data = ;}
int name1_get() {return }

// file_2.mqh
int name2_counter = 0;
int name2_data = 0;
double name2_value = 0;
void name2_action() {}
int name2_get() {}


Je ne connaissais même pas la POO, mais j'y étais presque (oui, seulement une instance, mais le squelette était prêt). Je guiderais les stagiaires à travers ces étapes. Commencez par une feuille d'int et de if et structurez progressivement le code. À la fin, une personne atteindra presque l'OOP par elle-même et l'essentiel est qu'elle comprenne comment elle y est arrivée.

Je me souviens avoir lu un livre sur cette "magie" OOP il y a longtemps. Le point culminant du livre était une démonstration de fonctions virtuelles, disant que c'est la puissance de la POO. Je devrais arracher les mains de ces auteurs. Je n'ai pas trouvé de livre décent jusqu'à présent.