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

 
Vasiliy Sokolov:

Il s'agit d'un cheval sphérique dans le vide, et non de l'organigramme d'une EA qui fonctionne. Certains blocs peuvent ne pas exister du tout. Les blocs peuvent être réorganisés. Tout programme MCL est un gestionnaire d'événements. C'est le principal postulat qui ne figure pas dans le schéma, ce qui signifie qu'il induit les lecteurs en erreur. Mon conseil : ne lisez pas ces vieux trucs. Le manuel de Kovalev est dépassé. Un grand nombre des informations qu'il contient ne sont pas correctes, notamment en ce qui concerne le système d'ordres de MT5. Kovalev propose essentiellement de mémoriser ce schéma ridicule, puis de mémoriser des séries d'événements, et enfin de tirer le hibou sur le globe : où ce schéma est censé être mis en œuvre dans le programme Expert Advisor. Il n'y a pas de régime en MKL. Il existe des modèles typiques d'utilisation de l'environnement de négociation. Mais il n'existe pas de schéma universel, qu'il faut comprendre et retenir. Tous les "schémas" sont composés à l'aide de fonctions et de réactions de ces fonctions aux événements. De plus, il y a des données qui sont demandées... à nouveau par des fonctions.

Avec tout le respect que je vous dois. Il n'y a rien de tel. Il faut juste que les étudiants comprennent qu'il s'agit d'un conseiller expert éducatif et qu'il n'est pas permis de faire du commerce en l'utilisant. Et pour faire du commerce, vous devez apprendre des stratégies de commerce... Mais c'est après avoir appris la langue. D'ailleurs, l'explication est bonne et claire. Ce qui nous échappe souvent ici, notamment dans les commentaires de la kodobase. Parfois, il est difficile de comprendre ce qui est écrit)))). Je suis d'accord, il n'y a pas de bon code).

 
MrBrooklin:

J'ai trouvé ce que je cherchais dans le manuel MQL4 de Sergei Kovalev. Voici un extrait du livre :"Structure d'un conseiller expert simple . Vous trouverez ci-dessous la structure de base d'un Expert Advisor simple basé sur plusieurs blocs fonctionnels, chaque bloc effectuant une certaine partie indépendante des calculs".


À cet égard, j'ai besoin de l'avis d'un expert. Ce schéma structuré est-il applicable à l'écriture d'un conseiller expert dans MQL5, ou dois-je ajouter d'autres blocs ?

Meilleures salutations, Vladimir.

Oui, ce régime vous conviendra. Il est simple et ordonné. Une fois que vous aurez maîtrisé la langue, vous pourrez compliquer/changer/ajouter des blocs comme bon vous semble, mais vous pouvez commencer par celui-ci. Le bon régime.
 
Vasiliy Sokolov:

Il s'agit d'un cheval sphérique dans le vide, et non de l'organigramme d'une EA qui fonctionne. Certains blocs peuvent ne pas exister du tout. Les blocs peuvent être réorganisés. Tout programme MCL est un gestionnaire d'événements. C'est le principal postulat qui ne figure pas dans le schéma, ce qui signifie qu'il induit les lecteurs en erreur. Mon conseil : ne lisez pas ces vieux trucs. Le manuel de Kovalev est dépassé. Un grand nombre des informations qu'il contient ne sont pas correctes, notamment en ce qui concerne le système d'ordres de MT5. Kovalev propose essentiellement de mémoriser ce schéma ridicule, puis de mémoriser des séries d'événements, et enfin de tirer le hibou sur le globe : où ce schéma est censé être mis en œuvre dans le programme Expert Advisor. Il n'y a pas de régime en MKL. Il existe des modèles typiques d'utilisation de l'environnement de négociation. Mais il n'existe pas de schéma universel, qui doit être compris et mémorisé. Tous les "schémas" sont composés à l'aide de fonctions et de réactions de ces fonctions aux événements. De plus, il y a des données qui sont demandées... à nouveau par des fonctions.

Je ne comprends pas votre critique. Le schéma est logique, toutes les actions sont ordonnées de manière séquentielle. Donne une idée de la structure correcte de l'EA. Bien sûr, vous pouvez mélanger les choses, supprimer certains éléments et en ajouter d'autres, mais la stabilité d'un tel programme en serait considérablement affectée. D'une manière générale, je ne vois pas ce qu'il y a à redire sur le dispositif.
 
Реter Konow:
Je ne comprends pas votre critique. Le schéma est logique, toutes les actions sont ordonnées de manière séquentielle. Donne une idée de la structure correcte d'une EA. Bien sûr, nous pouvons mélanger les choses et en jeter certaines, mais la stabilité de ce programme va changer de façon spectaculaire. D'une manière générale, je ne vois pas ce qu'il y a à redire sur le dispositif.

OK, d'accord. Je vais essayer d'expliquer.

1) Voici un schéma. Certains blocs sont donnés (ce qu'est un bloc, tel qu'appliqué au programme mql, n'est pas expliqué. Il s'agit peut-être d'une fonction, peut-être d'un ensemble de procédures, peut-être d'autre chose, mais bon, comprenons intuitivement ce qu'est un bloc au même niveau que l'auteur).

2) Les blocs forment une chaîne du début du programme à sa fin. Dans certains blocs, la chaîne d'exécution du programme est divisée en deux (mais pourquoi, d'ailleurs, seulement deux ? Les trois ne peuvent-ils pas être divisés en quatre ? Et si quatre sont nécessaires, comment le montrer dans un diagramme ? Devons-nous passer au format A1 ?). Apparemment, c'est une façon de montrer le branchement.

3) Il y a des blocs très étranges, comme "messages". Quel genre de bloc est-ce ? Il s'agit probablement d'une sorte de notification du programme indiquant qu'il n'y a pas de conditions adéquates : à chaque tic, un message apparaîtra : "Trop cher pour acheter, trop cher pour acheter, trop...". - cool bien sûr, mais ce ne sont que des suppositions.

4) Le bloc le plus étrange est celui de la "gestion des erreurs". Tu peux y entrer, mais tu ne peux pas en sortir. Le programme a attrapé une erreur et reste dans ce bloc (il se bloque probablement jusqu'à un redémarrage complet, mieux encore, il faut faire en sorte que le terminal se bloque en permanence, ce qui éviterait d'autres erreurs - c'est l'idée !)

5) Si nous démarrons le programme pour la première fois, ou s'il n'y a pas de positions ouvertes sur le compte, alors le bloc de fermeture des ordres fait quoi ? Rien. Mais ce schéma logique devrait tout de même nous permettre d'atteindre le bloc de clôture de la commande. Nous en arrivons là parce que le système est strictement et hiérarchiquement structuré. Tous les blocs doivent être traités un par un, même s'il s'agit du traitement inutile et impitoyable d'une liste vide de positions.

6) Le bloc de calcul de la valeur de l'ordre est placé en dessous du bloc de clôture de l'ordre. Comment est-ce possible ? Peut-être que nous fermons un ordre en fonction de sa "valeur". Ce n'est pas clair ce qui se passe ici.

Et je regarde ce schéma et ne comprends pas vraiment comment nous pouvons recommander cette "chose" à étudier ? Comment peut-on le considérer comme bon, génial et éducatif ?

 
Vasiliy Sokolov:

OK, d'accord. Je vais essayer d'expliquer.

1) Voici un schéma. Certains blocs sont donnés (ce qu'est un bloc, tel qu'appliqué au programme mql, n'est pas expliqué. Il s'agit peut-être d'une fonction, peut-être d'un ensemble de procédures, peut-être d'autre chose, mais bon, comprenons intuitivement ce qu'est un bloc au même niveau que l'auteur).

2) Les blocs forment une chaîne du début du programme à sa fin. Dans certains blocs, la chaîne d'exécution du programme est divisée en deux (mais pourquoi, d'ailleurs, seulement deux ? Les trois ne peuvent-ils pas être divisés en quatre ? Et si quatre sont nécessaires, comment le montrer dans un diagramme ? Devons-nous passer au format A1 ?). Apparemment, c'est une façon de montrer le branchement.

3) Il y a des blocs très étranges, comme "messages". Quel genre de bloc est-ce ? Il s'agit probablement d'une sorte de notification du programme indiquant qu'il n'y a pas de conditions adéquates : à chaque tic, un message apparaîtra : "Trop cher pour acheter, trop cher pour acheter, trop...". - cool bien sûr, mais ce ne sont que des suppositions.

4) Le bloc le plus étrange est celui de la "gestion des erreurs". Tu peux y entrer, mais tu ne peux pas en sortir. Le programme a attrapé une erreur et reste dans ce bloc (il se bloque probablement jusqu'à un redémarrage complet, mieux encore, il faut faire en sorte que le terminal se bloque en permanence, ce qui éviterait d'autres erreurs - c'est l'idée !)

5) Si nous démarrons le programme pour la première fois, ou s'il n'y a pas de positions ouvertes sur le compte, alors le bloc de fermeture des ordres fait quoi ? Rien. Mais ce schéma logique devrait tout de même nous permettre d'atteindre le bloc de clôture de la commande. Nous en arrivons là parce que le système est strictement et hiérarchiquement structuré. Tous les blocs doivent être traités un par un, même s'il s'agit du traitement inutile et impitoyable d'une liste vide de positions.

6) Le bloc de calcul de la valeur de l'ordre est placé en dessous du bloc de clôture de l'ordre. Comment est-ce possible ? Peut-être que nous fermons un ordre en fonction de sa "valeur". Ce n'est pas clair ce qui se passe ici.

Et je regarde ce schéma et ne comprends pas vraiment comment nous pouvons recommander cette "chose" à étudier ? Comment peut-on le considérer comme bon, merveilleux et éducatif ?

OK. Maintenant, la critique est plus claire. Eh bien, à bien des égards, vous pouvez être d'accord si vous le regardez "à la loupe", mais cela ne sert à rien. Un débutant devrait avoir une idée rapide, généralisée et simplifiée de la composition la plus courante et la plus correcte (au sens global) de l'EA.

Un bloc est un ensemble logiquement isolé de conditions, de contrôles, de fonctions et de programmes.

La conception des blocs de programme met en œuvre l'exécution correcte du programme.

La ramification et la hiérarchie profonde des liens du bloc ne sont pas montrées dans le diagramme afin de ne pas embrouiller l'étudiant. Tout est volontairement simplifié et c'est correct du point de vue pédagogique. Si Kovalev avait décrit une "galerie" de hiérarchies de structures possibles pendant 20 pages, cela aurait-il été mieux ? Probablement pas après tout...) Mais, oui, tout est en fait plus compliqué et plus varié dans la vie que sur le schéma. Mais vous devez commencer par un simple.
 
Реter Konow:
Un débutant doit avoir une idée de base, généralisée et simplifiée, de la composition la plus courante et la plus correcte (au sens global) de l'EA.

Aha, bien, c'est-à-dire globalement Kovalev a raison, alors qu'en est-il des erreurs dans le schéma - un débutant comprendra où sont ces erreurs et où il est dessiné correctement. Il est un débutant pour cela pour obtenir l'essence de la représentation généralisée du dispositif du conseiller. Et qu'est-ce qu'un bloc, qu'est-ce que des flèches, et pourquoi dois-je figer après avoir traité les erreurs- un débutant y réfléchira avec son esprit surpuissant.

 
Реter Konow:
Ok. Maintenant, la critique est plus claire. Eh bien, à bien des égards, vous pouvez être d'accord si vous regardez la situation "à la loupe", mais cela ne sert à rien. Un débutant devrait avoir une idée rapide, généralisée et simplifiée de la composition de l'EA la plus répandue et la plus correcte (au sens global).

Un bloc est un ensemble logiquement isolé de conditions, de contrôles, de fonctions et de programmes.

La structure des blocs met en œuvre l'exécution correcte du programme.

Les ramifications et les liens hiérarchiques des blocs ne sont pas représentés dans le diagramme afin de ne pas perturber l'étudiant. Tout est volontairement simplifié et c'est correct du point de vue pédagogique. Si Kovalev avait décrit une "galerie" de structures hiérarchiques possibles pendant 20 pages, cela aurait-il été mieux ? Probablement pas après tout...) Mais, oui, tout est en fait plus compliqué et plus varié dans la vie que sur le schéma. Mais vous devez commencer par un simple.

Bonjour Peter ! Je résume les informations de tous les messages. Dans le langage de programmation MQL5, il n'existe pas d'algorithme de BASE clairement défini pour la création et l'exécution d'un programme (script, Expert Advisor). Tous les algorithmes sont uniques à leur manière et ne peuvent avoir un "noyau", qui peut ensuite être étendu. Il s'avère ensuite que mon programme d'auto-apprentissage est dans une impasse ? Si quelqu'un l'a remarqué, tous mes scripts écrits précédemment suivent un schéma de complication, c'est-à-dire du simple au complexe. En fait, j'ai besoin de briser la notion même d'organisation des pensées dans ma tête. Est-ce que ça marche comme ça ?

Respectueusement, Vladimir.

 
MrBrooklin:

Bonjour Peter ! Je vais résumer les informations de tous les messages. Dans le langage de programmation MQL5, il n'existe pas d'algorithme de BASE clairement défini pour créer et exécuter un programme (script, Expert Advisor). Tous les algorithmes sont uniques à leur manière et ne peuvent avoir un " noyau", qui peut ensuite être étendu. Il s'avère ensuite que mon programme d'auto-apprentissage est dans une impasse ? Si quelqu'un l'a remarqué, tous mes scripts écrits précédemment suivent un schéma de complication, c'est-à-dire du simple au complexe. En fait, j'ai besoin de briser la notion même d'organisation des pensées dans ma tête. Est-ce que ça marche comme ça ?

Respectueusement, Vladimir.

Non. Pas du tout. La critique de Vassily n'a en rien diminué la justesse logique du schéma de l'EA. Oui, vous pouvez trouver quelques défauts et les "comprendre", mais en général, c'est correct, et c'est le plus important. Ce schéma vous aidera à commencer à écrire vos propres EA lorsque vous y arriverez. Dans l'ensemble, il n'y a pas de différence entre mql4 et mql5. Les détails sont différents, mais ils sont faciles à comprendre. Continuez à apprendre comme avant.
 
Vasiliy Sokolov:

Aha, bien, c'est-à-dire globalement Kovalev a raison, alors qu'en est-il des erreurs dans le schéma - un débutant comprendra où sont ces erreurs et où il est dessiné correctement. Il est un débutant pour cela pour obtenir l'essence de la représentation généralisée du dispositif du conseiller. Qu'est-ce qu'un bloc, que sont les flèches, et pourquoi faut-il figer après avoir traité les erreurs - un débutant y réfléchira avec son esprit puissant.

Nous n'avons pas de meilleur manuel de toute façon, alors.....

Les petites erreurs ne sont pas une excuse pour s'arrêter et "recoller" le code d'autres personnes, comme le font beaucoup de gens. En outre, vous ne tenez pas compte de l'exactitude fondamentale de la présentation du matériel, qui est très abondant.
 
MrBrooklin:

Bonjour Peter ! Je vais résumer les informations de tous les messages. Dans le langage de programmation MQL5, il n'existe pas d'algorithme de BASE clairement défini pour créer et exécuter un programme (script, Expert Advisor). Tous les algorithmes sont uniques à leur manière et ne peuvent avoir un " noyau", qui peut ensuite être étendu. Il s'avère ensuite que mon programme d'auto-apprentissage est dans une impasse ? Si quelqu'un l'a remarqué, tous mes scripts écrits précédemment suivent un schéma de complication, c'est-à-dire du simple au complexe. En fait, j'ai besoin de briser la notion même d'organisation des pensées dans ma tête. Est-ce que ça marche comme ça ?

Respectueusement, Vladimir.

C'est ça ! Tout le monde essaie d'apprendre la programmation, en utilisant des conceptions incorrectes du programme, basées sur l'expérience de la vie. Par exemple, qu'un programme est comme un texte dans un livre avec une table des matières, une introduction, une table des matières et une conclusion. C'est-à-dire que le programme est une sorte de schéma séquentiel du début à la fin. Au début, cette idée fonctionne, mais ensuite, au fur et à mesure que le programme devient plus complexe, des difficultés apparaissent, et il n'est pas possible d'écrire un programme qui fonctionne de manière fiable. Kovalev est très doué pour rendre des services baissiers : il tente d'expliquer au lecteur, à l'aide de son appareil conceptuel accessible, que le programme est le même livre avec tel ou tel schéma. Mais il n'y a pas de combines ! Le script a un "schéma" fondamentalement différent de celui du conseiller expert, et le conseiller expert a un schéma différent de celui de l'indicateur.

Raison: