Auto-apprentissage du langage MQL5 à partir de zéro - page 75
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Bonne journée et bonne humeur à tous !
Je continue à étudier le langage de programmation MQL5. J'ai apporté une petite modification au code de Vasiliy Sokolov pour n' ouvrir qu'une seule position par jour, comme prévu initialement dans l'algorithme de l'Expert Advisor. La modification est mise en évidence en jaune.
Meilleures salutations, Vladimir.
Le bloc OnInit est également trop réfléchi et n'est toujours pas écrit correctement. Tout d'abord, vous devez essayer d'écrire des identifiants, et non des chiffres. Retourne INIT_SUCCEEDED au lieu de -1. Deuxièmement, l'interrupteur est excessif ici. Ce code doit contenir un if ou un switch. Il faut d'abord écrire l'un et ensuite l'autre - juste de l'huile.
Troisièmement, nous devons surveiller tous les types de comptes. Nous avons Demo et puis nous avons Real. Et puis il y a le concours. Mais même s'il n'y avait pas de troisième compte, il devrait y avoir un talon qui permettrait d'attraper toutes les autres variantes:
Il serait probablement plus raisonnable d'expliquer le fonctionnement des exceptions, sinon on ne comprendra pas pourquoi il devrait y avoir un quelconque contrôle sur quelque chose que l'on ne connaît pas.
Dans le sens le plus exagéré, il devrait être le suivant :
1. lancer un programme à exécuter
2. travailler dans l'algorithme et en sortir dans deux directions :
a) Vrai - l'algorithme a fonctionné correctement
b) Faux - l'algorithme n'a pas fonctionné
En même temps, travailler sur a) signifie qu'ici sont remplies toutes les options que le programmeur veut mettre en œuvre, et sur b) tout le reste, et cela n'a pas d'importance, si c'est nécessaire ou non. Autrement dit, le programmeur ne met en œuvre que la fonctionnalité qu'il souhaite et tout le reste doit être exclu.
Il est probablement plus logique d'expliquer le travail avec les exceptions, sinon on ne comprend pas pourquoi il est nécessaire de contrôler quelque chose que l'on ne connaît pas en premier lieu.
Dans sa forme la plus exagérée, elle devrait être la suivante :
1. lancer un programme à exécuter
2. travailler dans l'algorithme et en sortir dans deux directions :
a) Vrai - l'algorithme a fonctionné correctement
b) Faux - l'algorithme n'a pas fonctionné
En même temps, travailler sur a) signifie qu'ici sont remplies toutes les options que le programmeur veut mettre en œuvre, et sur b) tout le reste, et cela n'a pas d'importance, si c'est nécessaire ou non. En d'autres termes, le programmeur ne met en œuvre que la fonctionnalité qu'il ou elle insère, et tout le reste doit être rejeté comme une exception.
Bonjour Konstantin, merci pour votre clarification.
Chers participants à ce fil de discussion ! Une fois de plus, je tiens à vous remercier tous pour vos suggestions et conseils constructifs qui m'ont aidé à apprendre le langage de programmation MQL5.
Pour l'instant, j'ai fait une pause car mon travail principal ne me permet pas de consacrer beaucoup de temps et d'attention à l'auto-apprentissage, mais pour l'instant le résultat principal est atteint - je comprends les bases de la programmation, je lis les codes des tiers et j'écris mes propres fonctions.
Je publierai la version de Trailing_Stop (v.1).mq5 Expert Advisor avec des commentaires détaillés sur chaque ligne de code, sous une forme accessible à un élève de 1ère année d'une école de programmation, comme je l'ai promis plus tôt, mais un peu plus tard.
Salutations, Vladimir.
Bonne journée et bonne humeur à tous !
Je continue à étudier le langage de programmation MQL5. J'ai enfin assez de temps pour écrire une version de l'Expert Advisor avec des commentaires détaillés sur chaque ligne de code, sous une forme accessible aux étudiants de 1ère année d'une école de programmation. Comme le code du conseiller expert est assez volumineux, je le publie dans un fichier appelé Trailing_Stop_gv.22.mq5.
Avant de publier le code, nous avons vérifié le conseiller expert dans le testeur de stratégie. Aucun problème n'a été trouvé. Le système de compensation de la comptabilité des positions est utilisé dans l'Expert Advisor. Ce système de comptabilité signifie qu'à un moment donné sur le compte, il ne peut y avoir qu'une seule position ouverte pour un seul et même symbole (titre).
À l'heure actuelle, le conseiller expert a mis en œuvre la capacité de :
Cette version du conseiller expert met en œuvre la majorité des conseils, précédemment suggérés par Vasily Sokolov.
AVERTISSEMENT !!!
Cet Expert Advisor a été développé selon le plan d'auto-apprentissage pour les comptes de démonstration, et il est destiné à des fins de formation uniquement ! Il n'est pas destiné à négocier sur un compte réel et à réaliser des bénéfices !
Sincèrement, Vladimir.
Bonne journée et bonne humeur à tous !
Je continue à étudier le langage de programmation MQL5. J'ai enfin assez de temps pour écrire une version de l'Expert Advisor avec des commentaires détaillés sur chaque ligne de code, sous une forme accessible aux étudiants de 1ère année d'une école de programmation. Comme le code de l'Expert Advisor est assez lourd, je le publie sous la forme d'un fichier appelé Trailing_Stop (v.2).mq5.
Avant de publier le code, nous avons vérifié le conseiller expert dans le testeur de stratégie. Aucun problème n'a été trouvé. Le système de compensation de la comptabilité des positions est utilisé dans l'Expert Advisor. Ce système de comptabilité signifie qu'à un moment donné sur le compte, il ne peut y avoir qu'une seule position ouverte pour le même symbole (instrument financier).
À l'heure actuelle, le conseiller expert a mis en œuvre la capacité de :
Cette version du conseiller expert met en œuvre la majorité des conseils, précédemment suggérés par Vasily Sokolov.
AVERTISSEMENT !!!
Cet Expert Advisor a été développé selon le plan d'auto-apprentissage pour les comptes de démonstration, et il est destiné à des fins de formation uniquement ! Il n'est pas destiné à négocier sur un compte réel et à réaliser des bénéfices !
Sincèrement, Vladimir.
Bonjour, il ne compile pas.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
J'ai compris - nom sans parenthèses pour créer Trailing_Stop (v.2) Expert Advisor
Bonjour - il ne compile pas.
Bonjour, je viens de télécharger le fichier depuis le site web et j'ai vérifié dans mon MetaEditor, tout se compile bien.
Salutations, Vladimir.
Bonjour, je viens de télécharger le fichier depuis le site web et de vérifier dans mon MetaEditor, tout se compile bien.
Salutations, Vladimir.
Merci ! pour ce travail. Je n'ai pas entré le nom correctement lors de la création de l'Expert Advisor. tout fonctionne.
Merci ! pour le travail. Je n'ai pas entré le nom correctement lors de la création de l'expert. tout fonctionne.
Tout le plaisir est pour moi !
Salutations, Vladimir.
Chers participants à ce fil de discussion !
Une fois encore, je tiens à vous remercier tous pour vos suggestions constructives, vos astuces et vos conseils, qui m'ont aidé à apprendre les bases du langage de programmation MQL5. Un grand merci à Vasily Sokolov! Que Dieu vous bénisse tous !
Avec tout le respect dû à chacun, Vladimir.
Bonne journée et bonne humeur à tous !
Je continue à étudier le langage de programmation MQL5. Je suis en train d'écrire le code d'un nouvel EA. J'ai été confronté à un point que je ne comprends pas bien comment résoudre. La tâche semble simple - je veux que mon conseiller expert travaille sur le graphique de la paire de devises, qui est définie dans les paramètres d'entrée de l'EA. Si une tentative est faite (par exemple, par erreur) pour l'installer sur le graphique d'une autre paire de devises, le conseiller expert devrait émettre un avertissement sur l'impossibilité de poursuivre le travail.
Voici le schéma du code du programme :
Le compilateur ne montre aucune erreur. Le code qui ne fonctionne pas est surligné en jaune. C'est peut-être parce que je ne comprends pas bien la signification de l'identifiant SYMBOL_DESCRIPTION - description en chaîne du caractère. J'ai essayé d'utiliser d'autres identifiants mais le résultat est le même. Peut-être que la fonction SymbolInfoString() n'est pas du tout nécessaire ici ? J'ai écrit le nom de la paire de devises GBPUSDrfd uniquement parce que je prévois d'utiliser le conseiller expert sur Alpha-Forex, alors que tous les symboles de ce courtier ont la terminaison rfd.
Cher conseiller expert, veuillez me conseiller sur la direction à prendre !
Salutations, Vladimir.