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
A l'avenir, selon le plan d'autoformation, la tâche consiste à modifier le script étape par étape, à savoir :
Bien sûr, vous n'auriez pas dû suivre les conseils du tutoriel. Vous avez peut-être acquis les connaissances nécessaires pour définir des lignes, des ordres, etc., mais vous ne serez pas en mesure de développer la stratégie de toute façon, car vous n'avez pas de base théorique. Toutes ces lignes et tous ces scripts ne vous aideront pas à comprendre les notions de base de la programmation, et vous ne pourrez pas aller loin sans cela. J'ai passé les 4 premiers mois à apprendre, sans même essayer d'écrire quoi que ce soit. Bien sûr, j'aurais pu faire preuve d'effronterie, comme vous, mais la qualité de ces connaissances est médiocre. Il y a toujours des lacunes dans les bases, qui devront être comblées à l'avenir...
Bonjour, Peter ! J'étudie le manuel au besoin, c'est-à-dire lorsque je constate une lacune dans mes connaissances. Maintenant, je sens que je vais devoir faire une petite pause et étudier le manuel de plus près. Toutes les recommandations des participants au forum sont prises en compte et j'essaie de m'y tenir. Et maintenant, je suis étonné d'avoir réussi à écrire quelque chose en utilisant uniquement le livre de référence MQL5 pendant si peu de temps.
Salutations, Vladimir.
Bonsoir à tous et bonne humeur !
Je colle un nouveau script New6.mq5 qui vous aide à placer un ordre en attente SellStop et un BuyStop avec une taille de lot fixe à une certaine distance du prix actuel sur le graphique actuel. Dans ce script, j'ai essayé de tout décrire comme je l'ai promis plus tôt, sous une forme claire et compréhensible pour un programmeur de 1ère année.
J'ai utilisé les informations tirées de la Référence MQL5 uniquement lors de l'écriture du script !
Meilleures salutations, Vladimir.
C'est un bon exemple. Je vous suggère de l'utiliser comme point de départ. Les bases.
À l'avenir, conformément au plan d'auto-apprentissage, la tâche consistera à modifier le script étape par étape, à savoir
Non, non. Ne connectez pas encore la nouvelle fonctionnalité. Améliorez maintenant la logique existante. Dans le même temps, éliminez les problèmes de mise en œuvre du script (ils sont déjà visibles). Si tu veux savoir ce qu'il faut réécrire, je vais te le dire.
L'exemple est bon. Je vous suggère de l'utiliser comme point de départ. Ligne de base.
Non, non. Ne branchez pas encore de nouvelles fonctionnalités. Améliorez maintenant la logique existante. En même temps, il faut éliminer les problèmes de mise en œuvre des scripts (ils sont déjà visibles). Ce que tu dois réécrire exactement, si ça t'intéresse, je te le dirai.
Bonjour Vasily ! Bien sûr, dites-moi ce que vous devez réécrire, cela m'intéresserait !
Salutations, Vladimir.
Bonjour Vasily ! Bien sûr, dites-moi ce que vous avez besoin de réécrire, je suis très intéressé !
Sincèrement, Vladimir.
Les programmeurs ont deux problèmes : les erreurs produites par le compilateur et les problèmes d'architecture. Lorsque vous êtes novice, vous vous concentrez sur la lutte avec le compilateur alors que votre objectif ultime est un programme qui fonctionne correctement. Cependant, le programme d'un débutant se transforme très vite en un code dit "spaghetti", que l'auteur lui-même n'arrive pas à comprendre assez vite. C'est pourquoi je vous suggère de vous concentrer non pas sur le compilateur et l'exactitude du script final, mais sur les questions d'architecture. C'est comme apprendre à jouer du piano : il faut d'abord apprendre à tenir les doigts correctement et à s'asseoir correctement devant l'instrument, personne n'exige d'un débutant qu'il joue du Bach.
Vous disposez de deux groupes de paramètres qui déterminent le comportement de votre script : le premier est défini de manière statique, sous forme de macro. Le second est défini par l'utilisateur lors du chargement du script sur le graphique. Maintenant, l'utilisateur ne pourra pas sélectionner le type de commande à passer sans recompiler ce script. Ce n'est pas bon. Par conséquent, il serait préférable d'abandonner ces macros au profit du paramètre supplémentaire :
En conséquence, nous avons défini une nouvelle énumération, que nous avons implémentée comme paramètre de sélection pour l'utilisateur.
Les programmeurs sont confrontés à deux problèmes : les erreurs de compilation et les problèmes d'architecture. Lorsque vous êtes débutant, vous vous concentrez sur la lutte contre le compilateur, et votre objectif ultime est un programme qui fonctionne correctement. Cependant, le programme d'un débutant se transforme très vite en un code dit "spaghetti", que l'auteur lui-même n'arrive pas à comprendre assez vite. C'est pourquoi je vous suggère de vous concentrer non pas sur le compilateur et l'exactitude du script final, mais sur les questions d'architecture. C'est comme apprendre à jouer du piano : il faut d'abord apprendre à tenir les doigts correctement et à s'asseoir correctement devant l'instrument, personne n'exige d'un débutant qu'il joue du Bach.
Vous disposez de deux groupes de paramètres qui déterminent le comportement de votre script : le premier est défini de manière statique, sous forme de macro. Le second est défini par l'utilisateur lors du chargement du script sur le graphique. Maintenant, l'utilisateur ne pourra pas sélectionner le type de commande à passer sans recompiler ce script. Ce n'est pas bon. Par conséquent, il serait préférable d'abandonner ces macros au profit du paramètre supplémentaire :
En conséquence, nous avons défini une nouvelle énumération, que nous avons implémentée comme paramètre de sélection pour l'utilisateur.
Super, en fait, vous m'avez incité à faire ce qui est écrit dans l'étape 4 de la modification pas à pas du script, à savoir élargir la sélection des ordres en attente.
Merci !
Salutations, Vladimir.
Le problème suivant avec votre code est qu'il s'étale en une longue feuille procédurale. Tous les débutants écrivent de cette façon. Et c'est un problème qui reste avec eux pendant des années. Apprenez à décomposer votre algorithme en plusieurs parties, en commençant par les bases, comme ce script. Il y a deux façons de le faire : par le biais de fonctions et de classes. Le concept de classes est trop difficile à appréhender au début, je vous suggère donc de vous concentrer sur le travail avec les fonctions. Réfléchissez à l'importance des fonctions :
Le problème suivant avec votre code est qu'il s'étale en une longue feuille procédurale. Tous les débutants écrivent de cette façon. Et c'est un problème qui reste avec eux pendant des années. Apprenez à décomposer votre algorithme en plusieurs parties, en commençant par les bases, comme ce script. Il y a deux façons de le faire : par le biais de fonctions et de classes. Le concept de classes est trop difficile à appréhender au début, je vous suggère donc de vous concentrer sur le travail avec les fonctions. Réfléchissez à l'importance des fonctions :
Merci, Vasily, pour ces conseils si complets. Je vais certainement en tenir compte et essayer de faire de mon mieux.
Salutations, Vladimir.
Le problème suivant avec votre code est qu'il s'étale en une longue feuille procédurale. Tous les débutants écrivent de cette façon. Et c'est un problème qui reste avec eux pendant des années. Apprenez à décomposer votre algorithme en plusieurs parties, en commençant par les bases, comme ce script. Il y a deux façons de le faire : par le biais de fonctions et de classes. Le concept de classes est trop difficile à appréhender au début, je vous suggère donc de vous concentrer sur le travail avec les fonctions. Réfléchissez à l'importance des fonctions :
Vasily, l'homme n'a même pas encore maîtrisé les tableaux. Il est trop tôt pour qu'il écoute de telles conférences).
Peter, tous les conseils constructifs sont importants pour moi, y compris les tiens !
Salutations, Vladimir.