Discussion de l'article "MQL5 - Vous aussi, vous pouvez devenir un maître de ce langage" - page 2

 

Je suis moi-même en train de vivre cette expérience, c'est pourquoi je donne ci-dessous quelques brèves notes sur le sujet de l'article du point de vue d'un trader qui veut négocier les marchés financiers avec Metatrader en utilisant ses propres algos. Gardez à l'esprit que l'objectif principal du trader est le trading, alors que celui de l'ingénieur logiciel est la programmation.

1. Le plus grand obstacle sera de patauger dans la boue de l'insignifiance qui, de nos jours, a transformé l'apprentissage sur Internet en un véritable marécage. Trouver de bonnes sources demandera plus de temps et d'efforts que d'apprendre des bonnes sources une fois que vous les aurez trouvées.

2. Il n'y a pas, à ma connaissance, de bonne source à bas prix pour apprendre MQL. Les cours Udemy ne sont pas très bons (d'après mon expérience) et ne valent la peine d'être achetés que lorsqu'ils font l'objet d'une réduction importante (10 euros ou moins). Vidéos sur Youtube : il y a quelques chaînes qui sont assez bonnes - si vous cherchez des choses spécifiques. Quelques-unes ne vous donnent que les bases. Aucune ne propose un cours systématique qui vous enseigne tout ce que vous devez savoir, pas gratuitement. La plupart des bonnes vidéos gratuites sont généralement un entonnoir de marketing pour les cours payants. Il n'y a rien de mal à cela, mais il faut en être conscient. Jene peux pas faire de commentaires sur les cours payants, je n'en ai jamais fait.

3. Dans le domaine du génie logiciel en général, le MQL n'existe tout simplement pas. Il existe un ou deux livres qui enseignent le langage dans son intégralité. Ils sont écrits pour des programmeurs, pas pour des traders. Par conséquent, apprendre tout cela vous prendra plusieurs mois, voire plusieurs années, même si vous avez la patience et le temps. Un temps que vous pourriez consacrer à la négociation. Le sous-ensemble de connaissances nécessaires pour créer vos propres EA et indicateurs qui sont suffisamment sophistiqués pour être fiables sur vos propres comptes réels est considérablement plus petit. Beaucoup de choses ne sont tout simplement pas nécessaires pour les codes d'utilisation personnelle. Si vous voulez travailler en freelance ou vendre des codes MQL préemballés, vous devez maîtriser une plus grande partie du langage, bien sûr. Une note en marge :même si vous êtes un trader, il peut être utile de consacrer du temps et des efforts à l'apprentissage de l'ingénierie logicielle générale (dans l'un des grands langages comme C++ ou C#, mais pas MQL) à côté. Si vous faites sauter votre compte, gagner de l'argent en tant que codeur peut vous permettre d'éviter la famine et de vous constituer lentement un capital pour vous lancer à nouveau dans le jeu.

4. MQL L'ensemble des pages de référence de ce site web est une référence et non un manuel. Il est inestimable de connaître l'intérieur et l'extérieur des éléments spécifiques du langage MQL. C'est un cauchemar à étudier (je sais, j'ai essayé).

5. Le mieux, à mon avis, est d'apprendre les bases avec C++. C# ou Java (PAS JavaScript, JS c'est comme Python mais en pire !) conviennent également, même si c'est un peu plus éloigné . De plus, à mon avis, il n'est pas utile d'apprendre le C. En 2023, le C est un langage de niche pour la programmation de systèmes (OS, pilotes, etc.). Le C++ incorpore tout le C classique dont vous avez besoin.

6. La fonctionnalité de base de MQL est pratiquement du C++. Au langage de base s'ajoute tout un ensemble d'énumérations, de fonctions intégrées et de classes spécifiques au trading sur la plateforme MT. Ces éléments spécifiques au trading n'existent pas en C++, bien entendu. Une fois que vous savez comment les variables, les constantes, les types de données, les fonctions et les objets se comportent en général en C++, il est très facile d'obtenir ces éléments spécifiques supplémentaires de MQL. Vous devez apprendre la POO suffisamment pour savoir ce qu'elle est, ce qu'elle fait et comment utiliser les objets des classes de la bibliothèque MT intégrée dans vos codes procéduraux, parallèlement aux fonctions. Il est beaucoup plus facile d'utiliser les classes disponibles que de programmer ses propres classes, de créer des bibliothèques, de gérer des dizaines ou des centaines de fichiers d'en-tête (.mqh), etc. Programmer sa propre POO, c'est comme construire une multinationale de l'automobile juste pour construire une seule voiture, pour que vous puissiez aller de chez vous à votre travail tous les jours.

7. Oubliez Python. Je pourrais écrire des pages à ce sujet, mais croyez-moi sur parole. Python simplifie certaines choses et en complique d'autres. Le vrai problème de Python est qu'il a trop de liberté. La syntaxe rigide du C++, les types statiques et surtout le compilateur Sergeant à la fin donnent des codes très univoques et fiables. La liberté de Python est souvent la liberté de se jeter à l'eau et de se noyer. Les "difficultés" de l'apprentissage du C++ sont plus un mythe qu'une réalité. Considérez ceci : les {} et les ; de C++ sont remplacés en Python par des : et une indentation obligatoire, au final l'effort est à peu près le même. Vous n'avez pas besoin d'apprendre tout le C++ pour maîtriser MQL5 de toute façon. J'ai appris Python jusqu'à l'OOP, puis j'ai réalisé après 16 mois que j'étais toujours au point 0 de mon voyage en tant que programmeur d'algo, puis j'ai réappris le C++ (j'ai oublié environ 99% du cours de C++ que j'ai suivi en tant qu'étudiant de premier cycle en STEM il y a presque 30 ans). Par la suite, j'ai été capable d'écrire des EA et des indicateurs MQL5 utilisables.

6. A bien des égards, MQL5 est plus proche de C++ que MQL4. Il en résulte que beaucoup de choses sont plus difficiles en MQL5 qu'en MQL4. Pourtant, en 2023, il n'est pas recommandé aux personnes qui débutent d'apprendre MQL4. MQL4 est maintenu en vie par sa base d'utilisateurs installée à l'époque où il était en vigueur. Même si les deux langues étaient égales, MT5 est livré avec un backtester supérieur et la possibilité de télécharger une plateforme MT autonome avec un compte de démonstration non affilié à un courtier et n'expirant jamais, pour jouer à votre guise. Si vous en avez besoin, il est facile de convertir vos EA MQL5 en MQL4 une fois que vous maîtrisez MQL5. Les indicateurs demandent un peu plus d'efforts, mais c'est tout à fait faisable.

7. Voici donc le parcours d'apprentissage qui a fonctionné pour moi :

- Apprendre les bases de la programmation avec un langage de programmation général, le plus facile étant le C++ car il est le plus proche de MQL. Tous les cours de programmation enseignent les bases avec des programmes de console simples. MetaEditor n'a pas de console. Imprimer "Helllo World !" dans le journal du terminal est une expérience bien moins intéressante que d'afficher directement sur une console "cout >>". Vous ne pouvez interagir avec un code MQL qu'indirectement, par le biais des paramètres d'entrée, et non en temps réel avec "cin >>".

- Une fois que vous avez maîtrisé les bases de la programmation, allez sur youtube et trouvez des vidéos qui vont pas à pas dans la construction d'un EA ou d'un indicateur qui fonctionne (il y en a beaucoup au moment où j'écris ces lignes). Tout d'abord, regardez la vidéo en entier, le plus efficacement possible en désactivant le son, en activant les sous-titres et en accélérant à 1,5x ou 2x pour saisir le contenu. Ensuite, regardez à nouveau et tapez le code en même temps, en mettant la vidéo en pause et en revenant en arrière si nécessaire, avec le son activé.

- Malheureusement, MQL n'offre pas de fonction de test unitaire (indispensable pour une bonne ingénierie logicielle), mais avec un peu de créativité, vous pouvez développer vos propres façons d'utiliser le backtester à cette fin. Regardez d'autres vidéos sur sur des sujets spécifiques lorsque vous en avez besoin. Les articles/posts sur ce site web peuvent également être utiles. Appuyez sur F1 dans MetaEditor aussi souvent que nécessaire. Appuyez sur la touche F1 même si vous n'en avez pas besoin, juste pour apprendre quelque chose de nouveau ou pour peaufiner ce que vous avez déjà appris tous les jours.

 
Eric A. Kantchev contenu de démonstration qui n'a jamais expiré et qui n'est pas affilié à un correcteur, afin d'effectuer les opérations souhaitées. Si vous le souhaitez, il est facile de convertir vos EA MQL5 de volta en MQL4 après avoir dominé le MQL5. Les indicateurs demandent un peu plus d'effort, mais ils sont très factuels.

7. Voici le parcours d'apprentissage qui a fonctionné pour moi :

- Apprendre les bases de la programmation avec un langage de programmation général, plus facile avec C++ qui est le plus proche de MQL. Tous les cours de programmation enseignent les notions de base à l'aide de programmes de console simples. Le MetaEditor ne possède pas de console. Imprimant "Olá, Mundo !" sur le Terminal Journal est une expérience bien inférieure à celle d'utiliser directement une console avec "cout >>". Vous ne pouvez interagir avec un code MQL que de manière indirecte, par le biais des paramètres d'entrée, et non en temps réel, par le biais de "cin >>".

- Après avoir maîtrisé les principes de base de la programmation, accédez à YouTube et trouvez des vidéos qui expliquent pas à pas la construction d'un EA ou d'un indicateur fonctionnel complet (il y en a beaucoup au moment où je vous parle). Tout d'abord, il faut assister à l'enregistrement de la vidéo, de manière plus efficace en détachant l'image, en lisant les légendes et en accélérant de 1,5x ou 2x afin d'améliorer la qualité du contenu. Par la suite, assister à nouveau et numériser le code en même temps, en interrompant la vidéo et en la rebobinant si nécessaire, avec l'image.

- Il n'y a plus de cours de programmation - il suffit de codifier le code du code, d'effectuer des tests en arrière-plan et de faire des tests en arrière-plan. Malheureusement, MQL n'offre pas de facilité de test d'unité (indispensable à la conception d'un logiciel adéquat), mais avec un peu d'imagination, vous pouvez développer vos propres méthodes d'utilisation du backtester à cette fin. Assistez à d'autres vidéos sur lorsque vous avez besoin d'informations spécifiques. Les articles/posters de ce site peuvent également être supprimés. Appuyez sur la touche F4 dans le MetaEditor chaque fois que vous le souhaitez. Vous pouvez aussi l'utiliser pour apprendre quelque chose de nouveau ou pour améliorer ce que vous apprenez tous les jours.

Merci pour les preuves. C'est plus ou moins ce que je voulais écrire dans cet article. Parce que beaucoup de gens qui commencent ne savent pas dans quelle direction aller et finissent par abandonner les études ou l'apprentissage, s'imaginant que c'est quelque chose de très difficile ou d'irréalisable.

 
Bon article.
 
Très utile.
 
MetaQuotes:

Le nouvel article MQL5 - Vous aussi, vous pouvez devenir un maître de la langue a été publié :

Par Daniel Jose

Je veux moi aussi devenir un maître

 
Un article précieux et des commentaires encore meilleurs !
 
C'est très utile. Merci d'avoir partagé cette information.
 
Excellent conseil. Je pensais qu'il serait facile de créer des EA avec l'IA, mais je me suis trompé. Il est préférable d'apprendre le C, le C++ à partir du chat GPT. Je suis nouveau dans le trading Algo et je ne connais aucun langage de code, mais c'est quand même très intéressant comme un jeu. Je suis très reconnaissant pour ces conseils et j'aime jouer.
 

Très bon article. Il m'a fait remonter le temps jusqu'à l'enfance, lorsque je dessinais des graphiques primitifs avec la syntaxe DOS sur un Apple IIe.

D'après mon expérience ultérieure, MQL4 était facile à apprendre car il s'agissait essentiellement d'une version squelettique de C. J'aimais l'appeler "C-" (C moins). Des années plus tard, j'ai lu les 50 premières pages d'un livre de programmation MQL5 EA (aujourd'hui épuisé), puis je suis passé à la programmation MQl5. Des années plus tard, ce livre est toujours sur une étagère avec un signet à la page 50. Tout ceci témoigne de la suggestion de l'auteur de l'article d'apprendre par la pratique.

Bien que j'aie tâté de l'Easylanguage et du Python, et plus encore de MS Excel, je m'en tiens à MQL5 parce que le code natif est toujours plus rapide qu'un tuyau ou un pont extérieur à MT5. De plus, les éléments "optionnels" de programmation orientée objet (OOP) de MQL5 sont une nécessité pour l'auto-trading dans la bourse des contrats à terme sur laquelle je travaille actuellement. Si vous souhaitez apprendre MQL5, je vous recommande de lire d'abord une introduction générale à la programmation orientée objet.

Pire que la peur d'apprendre un nouveau langage de programmation, il y a la perspective d'être laissé pour compte.

 
Sergey Pavlov #:
Un article élogieux me présentant comme un génie : quelque chose comme, je vais vous apprendre à devenir un gourou de la programmation à partir de zéro, mais il s'avère que pour cela, vous devez connaître le C++ et avoir l'expérience de son utilisation pendant 23 ans. Et ce qui est surprenant, c'est qu'avec un tel bagage (C/C++), il a fallu 2 ans pour apprendre à programmer en MQL5. Au final, bla-bla-bla, je suis un génie et vous serez capable de le faire en 25 ans. C'est dommage que de tels articles soient publiés....

Et alors, un Brésilien a passé 23 ans à écrire "Hello World !" en C++, tout le monde n'a pas cette patience. Ce n'est certainement pas mon cas. Peut-être qu'ils ont coulé un monument en bronze dans son pays d'origine ! Nous l'envions donc en silence.

Je voudrais préciser que la valeur false est en réalité zéro lors de la conversion implicite des types int en bool, mais que true est toute valeur différente de zéro. Lors de la conversion bool->int, tout est limité à 0 et 1.

    bool b1 = 0, b2 = -5, b3 = 5;
    Print(b1,", ", b2,", ", b3);
    Print((int)true,", ", (int)false);

2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        false, true, true
2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        1, 0