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

 
MrBrooklin:

Je continue à apprendre le langage de programmation MQL5. Précédemment j'ai publié le code de la boucle qui démarre l'énumération des postes ouverts. Maintenant, une fois que la boucle a été lancée, nous commençons à travailler avec le symbole sur le graphique actuel :

Je posterai périodiquement le code écrit avec mes propres commentaires pour fournir un retour rapide. Je demande aux participants de ce sujet de me corriger, s'il y a des inexactitudes dans mes codes et commentaires.

Sincèrement, Vladimir.

Print("Выбираем позицию на символе ", PositionGetSymbol(i), "Тикет", i);

Les commentaires contenant des données sont plus pratiques.

 
Valeriy Yastremskiy:

Les commentaires contenant des données sont plus pratiques.

Merci, Valery ! Votre version du message est plus informative. Je vais changer le code immédiatement.

Salutations, Vladimir.

 

Chers experts en programmation !

Veuillez expliquer deux questions :

  1. Première question sur le Magic Number - est-il créé dans les paramètres d'entrée seulement pour les ordres en attente et les positions ouvertes (ou seulement pour les positions ouvertes ?), ou peut-il être créé aussi pour l'EA lui-même ? Si la réponse est "oui", dans quel but cela doit-il être fait ? Cette question me laisse vraiment perplexe et je n'ai pas de bonne réponse.
  2. La deuxième question sur le numéro magique - s'il y a plus d'une position ouverte dans le graphique actuel, il est possible d'appliquer un tel paramètre d'entrée pour déterminer chaque position :
input int Magic_Number=-1;

Peut-être ai-je une mauvaise compréhension de l'application du nombre magique dans la programmation tout court.

Salutations, Vladimir.

 

Il y a bien une explication dans l'article d'Artem Trishkin https://www.mql5.com/ru/articles/7394#node02, mais je ne la comprends toujours pas, car il la rend trop compliquée.

Sincèrement, Vladimir.

 
MrBrooklin:

Chers experts en programmation !

Veuillez expliquer deux questions :

  1. Première question sur le Magic Number - est-il créé dans les paramètres d'entrée seulement pour les ordres en attente et les positions ouvertes (ou seulement pour les positions ouvertes ?), ou peut-il être créé aussi pour l'EA lui-même ? Si la réponse est "oui", dans quel but cela doit-il être fait ? Cette question me laisse vraiment perplexe et je n'ai pas de bonne réponse.
  2. La deuxième question sur le numéro magique - s'il y a plus d'une position ouverte dans le graphique actuel, il est possible d'appliquer un tel paramètre d'entrée pour déterminer chaque position :

Peut-être ai-je une mauvaise compréhension de l'application du nombre magique dans la programmation tout court.

Sincèrement, Vladimir.

Pourquoi avez-vous besoin du numéro magique maintenant ? Vraiment, quel est l'intérêt de s'en préoccuper maintenant ? Le stop suiveur sera évidemment utilisé comme un élément du trading semi-automatique : quelqu'un a passé un ordre, et l'EA commence à le parcourir. Qui se soucie de savoir qui a passé la commande ? Si un autre robot l'a placé, et que vous ouvrez un chalut, votre conseiller expert fera de même avec son ordre. Si vous ne déclenchez pas un chalut, il ne le fera pas. C'est exactement le cas lorsque vous n'avez pas besoin d'un magik. Si vous en avez soudainement besoin plus tard, vous pouvez l'écrire plus tard.

 
MrBrooklin:

Il y a bien une explication dans l'article d'Artem Trishkin https://www.mql5.com/ru/articles/7394#node02, mais je ne la comprends toujours pas, car il la rend trop compliquée.

Sincèrement, Vladimir.

Tu n'as vraiment pas besoin de lire ça.

 
MrBrooklin:

Poursuite de l'apprentissage du langage de programmation MQL5. Précédemment j'ai publié le code de la boucle, qui démarre l'énumération des postes ouverts. Maintenant, une fois que la boucle a été lancée, nous commençons à travailler avec le symbole sur le graphique actuel :

Je posterai périodiquement le code écrit avec mes propres commentaires pour fournir un retour rapide. Je demande aux participants de ce sujet de me corriger, s'il y a des inexactitudes dans mon code ou mes commentaires.

Sincèrement, Vladimir.

Encore une fois, vous partez d'une idée fausse et le code contient une erreur. Commencez par les fonctions. Écrivez un cadre de l'algorithme en utilisant uniquement vos propres fonctions. Nous réfléchirons ensuite à la manière de les mettre en œuvre. Commencez par le modèle standard qui est ouvert lors de la création d'une nouvelle EA dans le metaeditor.

Il est préférable que le stop suiveur soit effectué pour le compte net au départ. De cette façon, il sera plus facile de travailler avec la position, car il n'y aura qu'une seule position pour un symbole. Dans la deuxième version, il sera possible de le transformer en hybride.

 
Vasiliy Sokolov:

Pourquoi avez-vous besoin de Magic maintenant ? Vraiment, quel est l'intérêt de s'en préoccuper maintenant ? Le stop suiveur sera évidemment utilisé comme un élément du trading semi-automatique : quelqu'un passe un ordre, et l'EA commence à le parcourir. Qui se soucie de savoir qui a passé la commande ? Si un autre robot l'a placé, et que vous ouvrez un chalut, votre conseiller expert fera de même avec son ordre. Si vous ne déclenchez pas un chalut, il ne le fera pas. C'est exactement le cas lorsque vous n'avez pas besoin d'un magik. Si vous en avez soudainement besoin, s'il vous plaît, écrivez-le plus tard.

Bonjour Vasily ! Je comprends tout à propos du nombre magique, mais le problème est qu'il a été fortement recommandé par Andrey Novichkov ici.

Salutations, Vladimir.

 
Vasiliy Sokolov:

Vous n'avez certainement pas besoin de lire celui-ci.

Je vois.

Respectueusement, Vladimir.

 
Vasiliy Sokolov:

Vous partez à nouveau du mauvais endroit, et le code contient une erreur. Commencez par les fonctions. Écrivez le cadre de l'algorithme en utilisant uniquement vos propres fonctions. Nous réfléchirons ensuite à la manière de les mettre en œuvre. Commencez par le modèle standard qui est ouvert lors de la création d'une nouvelle EA dans le metaeditor.

Il est préférable que le stop suiveur soit effectué pour le compte net au départ. De cette façon, il sera plus facile de travailler avec la position, car il n'y aura qu'une seule position pour un symbole. Dans la deuxième version, il sera possible de la transformer en hybride.

Le modèle standard a été créé. J'ai commencé à y écrire le code et je posterai ici les fragments qui ont déjà été écrits. Je n'avais pas pensé au cadre algorithmique avec mes propres fonctions, merci pour l'astuce ! Merci également pour l'astuce concernant le compte de compensation !

Si ce n'est pas un secret, quelle est l'erreur dans le code ?

Si c'est ici :

 for(i; i>=0; i--)

Je l'ai déjà corrigé pour :

 for(i; i>0; i--)

Sincèrement, Vladimir.