Discussion de l'article "Le MQL5 Cookbook : Commandes de la sous-fenêtre d'indicateur - Boutons" - page 5

 
tol64:

Êtes-vous d'accord maintenant ? )

Pour être honnête, je ne comprends pas pourquoi l'indicateur devrait arrêter de suivre le mouvement de la souris après avoir désactivé l'Expert Advisor ? Où est la connexion entre l'indicateur et l'Expert Advisor ?
 
C-4:
Pour être honnête, je ne comprends pas pourquoi l'indicateur devrait arrêter de suivre le mouvement de la souris après avoir désactivé l'Expert Advisor ? Où est le lien entre l'indicateur et l'Expert Advisor ?

Dans ce cas, si l'indicateur n'a pas besoin de suivre le mouvement de la souris, pourquoi bloquer le flux de la file d'attente des événements ?

Vous ne pouvez pas le faire bien sûr, ce n'est pas nécessaire. Mais si nous parlons d'optimisation, je pense que c'est nécessaire.

 
tol64:

Dans ce cas, si l'indicateur n'a pas besoin de suivre le mouvement de la souris, pourquoi bloquer le flux de la file d'attente des événements ?

Vous ne pouvez pas le faire bien sûr, ce n'est pas nécessaire. Mais si nous parlons d'optimisation, je pense que c'est nécessaire.

Vasiliy dit que le programme ne doit pas activer/désactiver le suivi sans réfléchir, mais qu'il doit l'activer seulement s'il est désactivé :

  • l'activer uniquement s'il est désactivé (ce n'est pas critique)
  • Une fois le travail terminé, revenir à l'état dans lequel il (le suivi) se trouvait.

En d'autres termes, la désactivation ne devrait se produire que si le suivi était désactivé au moment où le programme a été lancé.

Ensuite, toute combinaison de démarrage/arrêt de programmes avec/sans suivi des événements de la souris fonctionnera correctement.

 
tol64:

Dans ce cas, si l'indicateur n'a pas besoin de suivre le mouvement de la souris, pourquoi bloquer le flux de la file d'attente des événements ?

Vous ne pouvez pas le faire bien sûr, ce n'est pas nécessaire. Mais si nous parlons d'optimisation, je pense que c'est nécessaire.

Aha, c'est-à-dire que dans votre exemple, l'Expert Advisor a décidé que l'indicateur n'avait plus besoin de recevoir l'événement EVENT_MOVE_MOUSE et l'a désactivé avant sa sortie. Alors, sur quelle base le conseiller expert décide-t-il ce dont les autres indicateurs ont besoin et ce dont ils n'ont pas besoin ? Ne prend-il pas trop sur lui ?
 
komposter:

Vasily soulève un point important : le programme ne devrait pas activer/désactiver le suivi sans réfléchir, mais.. :

  • ne l'activer que s'il est désactivé (ce n'est pas critique)
  • Une fois le travail terminé, revenir à l'état dans lequel il (le suivi) se trouvait.
En d'autres termes, la désactivation ne doit être effectuée que si le suivi a été désactivé au début du programme.

Je procède donc de la manière suivante.

Le programme, dans lequel le suivi est activé au démarrage, le désactive au déchargement. Et le programme qui reste sur la carte et qui a besoin du suivi vérifie s'il est activé, et s'il est désactivé, il l'active.

Il est souhaitable de donner votre variante sur les exemples de code d'Expert Advisor et d'indicateur de mon post sur la page précédente afin d' exclure toute ambiguïté dans les déclarations.

 
C-4:
Aha, c'est-à-dire que dans votre exemple, l'Expert Advisor a décidé que l'indicateur n'avait plus besoin de recevoir l'événement EVENT_MOVE_MOUSE et l'a désactivé avant sa sortie. Sur quelle base le conseiller expert décide-t-il ce dont les autres indicateurs ont besoin et ce dont ils n'ont pas besoin ? Ne prend-il pas trop de responsabilités ?

L'expert décide pour lui-même. Mais je préfère en fait votre variante. En effet, elle est plus correcte. Je n'ai pas écrit sur la façon de mieux faire, mais sur la nécessité de le faire. Il n'est pas nécessaire de l'inverser. Point final.

 
tol64:
L'expert décide lui-même. Mais en fait, je préfère votre option. Je ne parlais pas de la meilleure façon de procéder, mais de la nécessité de le faire. Vous n'avez pas besoin de le retourner. C'est un point c'est tout.
Ainsi, si personne ne désactive cet événement, il n'est pas nécessaire de vérifier s'il est activé à chaque seconde. Dans un Expert Advisor, vous désactivez spécifiquement l'événement, et dans un autre, vous surveillez sa propriété toutes les secondes, alors qu'il est plus facile et plus sûr de ne rien écrire du tout.
 
C-4:
Aha, c'est-à-dire que dans votre exemple, l'Expert Advisor a décidé que l'indicateur n'avait plus besoin de recevoir l'événement EVENT_MOVE_MOUSE et l'a désactivé avant sa sortie. Sur quelle base l'Expert Advisor décide-t-il ce dont les autres indicateurs ont besoin et ce dont ils n'ont pas besoin ? Ne prend-il pas trop sur lui ?

On suppose probablement que tous les autres programmes sont organisés selon le même principe et qu'ils l'activeront eux-mêmes si nécessaire.

Mais est-il si important de l'éteindre ? Ce commutateur marche/arrêt ne s'applique qu'à un seul graphique. Je pense qu'il n'est pas très important de l'activer et de ne pas le désactiver.

Peu de gens s'en préoccuperaient. Donc, pour éviter les problèmes, il suffit de l'allumer et de ne pas l'éteindre. Mais quelqu'un finira par l'éteindre. Vous pouvez donc le surveiller à l'aide d'une minuterie et l'allumer si nécessaire, mais ne pas l'éteindre.

 
C-4:
Donc si personne ne va éteindre cet événement...
Il n'y a aucun moyen de le savoir.
 
C-4:
Ainsi, si personne ne désactive cet événement, il n'est pas nécessaire de vérifier à chaque seconde s'il est activé. Dans un Expert Advisor, vous désactivez spécifiquement l'événement, et dans un autre, vous surveillez sa propriété toutes les secondes, alors qu'il est plus facile et plus sûr de ne rien écrire du tout.

Pas nécessairement toutes les secondes, il y a une alternative sur un autre événement (déjà discuté). Donnez un meilleur exemple, s'il vous plaît, de la façon dont j'ai procédé ici. ) A condition que l'Expert Advisor ait besoin de cet événement, mais pas l'indicateur. Ce sera plus clair ainsi.

P.S. Correction. J'ai fait une erreur. )) Votre variante n'est pas plus correcte. Elle ne convient pas du tout. Il vaudrait mieux donner un exemple basé sur la condition ci-dessus.