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

 
MrBrooklin:

Faut-il utiliser la fonction Alert(), ou est-ce seulement à titre d'information ?

Pas nécessairement, c'est juste pour la commodité

 
VVT:

Pas nécessairement, c'est pour la commodité

Je vois.

Respectueusement, Vladimir.

 
MrBrooklin:

Bonjour Valery ! Merci pour vos conseils. Je me suis déjà fait des amis avec l'opérateur if-else, et je dois maintenant maîtriser également l'opérateur switch. Dois-je utiliser la fonction Alert() ou est-elle juste là pour plus d'informations ?

Salutations, Vladimir.

A la lumière de mon expérience d'ingénieur en électronique. Quand il y a un incendie, une sirène, quand le sol n'est pas nettoyé, une note au nettoyeur. Commentaire écrit sur le graphique, impression dans le journal, écriture dans le fichier, alerte sonore, et il y a aussi une boîte de message, également sonore, mais elle n'est pas native.

 
Valeriy Yastremskiy:

Compte tenu de l'expérience de l'électricien. Sur la sirène d'incendie, sur les sols non nettoyés, remarque au nettoyeur. Le commentaire s'écrit sur le graphique, l'impression sur le journal, l'écriture sur le fichier, l'alerte bipe et la boîte de messagerie bipe également, mais ce n'est pas natif.

Merci, vous l'avez très bien expliqué !

Salutations, Vladimir.

 
Valeriy Yastremskiy:

Si les positions avec notre Magik et sur notre symbole sont nulles, nous vérifions l'heure et ouvrons une position, si elle est de 1, nous n'ouvrons pas de position, nous vérifions l'heure de clôture et chalutons, si elle est supérieure à 1, nous alertons et ne travaillons pas. Nous pouvons utiliser le piggyback ou si nous voulons le vérifier avec if.

Bonjour Valery ! Merci beaucoup, votre version "... si les positions avec notre magik et à notre symbole sont égales à zéro, nous vérifions le temps et ouvrons une position..." s'est avérée être la plus simple et la plus efficace. Je l'ai ajouté à la condition de vérification du temps && PositionTotal()==0 et une seule position avec le montant nécessaire est ouverte !

   if(time_current.hour==time_open.hour && time_current.min==time_open.min && PositionsTotal()==0)
      OpenBUY();

Sincèrement, Vladimir.


 
Voici un article intéressant
https://www.mql5.com/ru/articles/35

Exp et indicateur.
 
Aleksey Masterov:
Voici un article intéressant
https://www.mql5.com/ru/articles/35

Exp et indicateur.

Bonjour Alexey, merci pour le lien vers l'article. Oui, il y a beaucoup de choses intéressantes dedans.

Salutations, Vladimir.

 
MrBrooklin:
if(time_current.hour==time_open.hour && time_current.min==time_open.min


ce n'est pas la meilleure façon de comparer le temps d'attente pour ouvrir une position

dans le testeur tout fonctionnera toujours sans problème, sur un compte réel des erreurs peuvent se produire - le conseiller expert travaille sur l'arrivée d'un tick, si pour une raison quelconque le tick n'arrive pas exactement à la minute où vous l'attendez, votre algorithme ne fonctionnera pas correctement, et il sera alors très difficile de trouver cette erreur logique.


essayer de reformuler ce problème pour s'éloigner de la comparaison d'égalité stricte ( == ) et passer à la condition plus ou égale ( >= ) ....( et/ou condition moins qu'égale)

 
Igor Makanu:

ce n'est pas la meilleure façon de comparer le temps d'attente pour ouvrir une position

dans le testeur tout fonctionnera toujours sans problème, sur un compte réel des erreurs peuvent se produire - le conseiller expert travaille sur l'arrivée d'un tick, si pour une raison quelconque le tick n'arrive pas exactement à la minute où vous l'attendez, votre algorithme ne fonctionnera pas correctement, et il sera alors très difficile de trouver cette erreur logique.

essayez de reformuler le problème pour passer de la comparaison d'égalité stricte ( == ) à une condition supérieure ou égale à ( >= ) ....( et/ou condition inférieure à égale)

Salut Igor, merci pour le conseil. Je suis tout à fait d'accord avec votre raisonnement, car les situations de tique peuvent effectivement être différentes. Je vais faire une correction dans le code.

Salutations, Vladimir.

 

J'ai corrigé le code, comme recommandé par Igor. Très bon conseil et opportun ! Il a permis d'éliminer un problème dans le fonctionnement de l'EA, que je n'avais pas remarqué auparavant. Merci encore Igor !

Sincèrement vôtre, Vladimir.