L'avis des professionnels : Comment obtenir les valeurs de défilement de la souris dans MQL ? [repost du cinquième forum]. - page 7
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
Qu'est-ce qui va l'aider ? Votre éloge funèbre ? Vous n'avez pas montré de solution. Tu t'es montré. Ce qui est très, très attendu.
C'est ça ?
Vous avez la mauvaise tendance. Vous commencez par me crier des choses (comme "votre code est merdique", "nécroposteur"), puis vous demandez et discutez de la solution au problème. Alors, pensez par vous-même.
Ou attendez que j'aide ceux qui le méritent.
Qu'est-ce qui va l'aider ? Votre éloge funèbre ? Vous n'avez pas montré de solution. Tu t'es montré. Ce qui est très, très attendu.
Vous êtes remarquablement inattentif.
Regardez, au bas du message auquel j'ai répondu, l'homme demande des "conseils". Il ne demande pas de solution. Alors j'ai essayé de le pousser. Vous voyez maintenant à quel point votre interférence est inappropriée et ridicule ? Il ne s'agit que de déchets inutiles. Vous feriez mieux de communiquer sur le fond. Vous feriez plus de bien à vous-même et aux autres.
Vous avez la mauvaise tendance. Vous commencez par me crier des choses (comme "votre code est merdique", "nécroposteur"), puis vous demandez et discutez de la solution au problème. Alors, pensez par vous-même.
Ou attendez que j'aide ceux qui le méritent.
Je ne demandais pas, je constatais un fait.
Je ne demandais pas, je constatais un fait.
Ici, beaucoup de gens ne voient pas le contenu derrière le formulaire. Ils ne peuvent pas comprendre que s'il n'y a pas d'idée et pas de capacité à la réaliser, leur insistance sur la forme ne produira pas de contenu de qualité.
L'essence peut avoir de nombreuses formes d'incarnation et seule une personne incompétente peut la juger par la langue de son expression.
Je ne demandais pas, je constatais un fait.
Moi aussi, je vais énoncer un fait.
vos "produits" sont un effort sans talent et ridicule.
C'est la plus grosse bêtise que j'ai vue depuis longtemps !
Ne prenez pas à cœur les critiques sincères. :)
Pourquoi ? Un peu de réflexion et chacun trouvera une solution. Je vous ai donné un indice où le chercher. Dans quelle direction enquêter. Il n'est pas intéressant de tout avoir sur un plateau d'argent. )) Si vous avez besoin, je peux aider l'homme et le conduire à une solution. Mais on dirait que vous voulez juste vous disputer avec moi).
Bonjour, Peter !
Ne voulez-vous pas me dire que vous avez une solution pratique, comment faire défiler la roue de la souris au moyen de MQL ? Et pas avec les flèches du clavier ou les boutons de la souris - ce n'est pas si difficile à comprendre. Bien sûr, nous pouvons utiliser l'événement CHARTEVENT_CHART_CHANGE pour déterminer si le graphique défile avec la roue, si aucune touche n'est pressée, mais seulement de manière probabiliste, car cet événement peut se produire juste avec l'arrivée d'une nouvelle barre ou une forte variation de prix, entraînant un changement d'échelle verticale. En outre, avec cette méthode, il est impossible de toujours obtenir l'événement de défilement de la roue, par exemple lorsque le graphique a atteint la position extrême gauche ou droite, et comment y parvenir sans faire défiler le graphique. Vous voulez peut-être utiliser la fonction ChartNavigate pour reculer le graphique, mais ce serait une mise en œuvre très tordue et il est peu probable qu'elle filtre correctement toutes les autres raisons de changement de graphique, autres que le défilement de la roue de la souris. À mon avis, cela ne peut être fait qu'en piratant MT ou en connaissant certaines commandes et/ou événements non documentés. Quoi qu'il en soit, je ne pense pas que vous ayez un exemple d'une telle mise en œuvre.
Et vous avez une étrange allusion, cependant. Presque à la question "Comment obtenir un événement de défilement via la molette de la souris ?", vous donnez la réponse"Utiliser l'événement de défilement et une fonction qui déplace le graphique".
Peut-être que je me trompe, et que vous avez un exemple. Tu es un mec cool alors ! )) Alors, laissez au moins tomber le fichier ex4 (ex5), pas le code.
Bonjour Peter !
N'avez-vous pas envie de dire que vous avez une solution pratique pour faire défiler les pages avec la molette de la souris dans MQL ? Et pas avec les flèches du clavier ou les boutons de la souris - ce n'est pas si difficile à comprendre. Bien sûr, nous pouvons utiliser l'événement CHARTEVENT_CHART_CHANGE pour déterminer si le graphique défile avec la roue, si aucune touche n'est pressée, mais seulement de manière probabiliste, car cet événement peut se produire juste avec l'arrivée d'une nouvelle barre ou une forte variation de prix, entraînant un changement d'échelle verticale. De plus, avec cette méthode, il n'est pas possible de toujours obtenir les événements de défilement de la roue, par exemple lorsque le graphique a atteint la position extrême gauche ou droite, et comment y parvenir sans faire défiler le graphique. Vous voulez peut-être utiliser la fonction ChartNavigate pour faire reculer le graphique, mais ce serait une mise en œuvre très tordue et il ne serait guère possible de filtrer correctement toutes les autres raisons des changements de graphique, autres que le défilement de la molette de la souris. À mon avis, cela ne peut être fait qu'en piratant MT ou en connaissant certaines commandes et (ou) événements non documentés. Quoi qu'il en soit, je ne pense pas que vous ayez un exemple d'une telle mise en œuvre.
Et vous avez une étrange allusion, cependant. A la question "Comment obtenir un événement de défilement via la molette de la souris ?", vous donnez la réponse"Utiliser l'événement de défilement et une fonction qui déplace le graphique".
Peut-être que je me trompe, et que vous avez un exemple. Tu es un mec cool alors ! )) Alors, laissez au moins tomber le fichier ex4 (ex5), pas le code.
Salut Nikolay !
Croyez-le ou non, la solution est très simple. Il faut 15 à 20 lignes de code. Il y a cependant un point subtil : les spécificités de la mise en œuvre du mécanisme de défilement. Mon implémentation diffère un peu de l'implémentation standard. Il fait défiler la toile, pas les objets. Il existe une implémentation similaire dans la bibliothèque d'Anatoly.
Je fais défiler les pages avec la molette de défilement et en m'accrochant au mouvement du graphique, j'obtiens un effet énergisant. Bien sûr, le graphique vacille mais revient toujours à sa position initiale. C'est à cela que sert la fonction de décalage des cartes. La direction du déplacement de la carte est également obtenue à partir de la fonction mql. Ainsi, je n'ai pas besoin de pirater quoi que ce soit). MQ s'est efforcé d'offrir la fonctionnalité la plus large possible pour réaliser presque toutes les tâches. C'est même surprenant. Peut-être ne connaissaient-ils pas eux-mêmes toutes les fonctionnalités qu'ils ouvrent aux développeurs).
Quoi qu'il en soit, je ne pense pas que vous ayez un exemple d'une telle mise en œuvre.
Et vous avez une étrange allusion, cependant. En pratique, à la question "Comment obtenir un événement de défilement via la molette de la souris ?", vous répondez "Utiliser l'événement de défilement et la fonction qui déplace le graphique".
Peut-être que je me trompe, et que vous avez un exemple. Tu es un mec cool alors ! )) Au moins, laissez tomber le fichier ex4 (ex5), pas le code.
Voici la situation. La personne à qui j'ai répondu m'a demandé de lui donner une idée sur la façon d'implémenter un mécanisme de défilement avec une roue. Je lui ai donné un indice. Immédiatement, les mauvaises langues locales ont commencé à m'accuser de me vanter et de dire d'autres bêtises.
De leur point de vue, si je donne une solution, alors je fais de la publicité pour mes produits, ou je me vante simplement, et si je ne le fais pas, alors je triche et je n'ai rien.
Je peux vous donner le code, mais premièrement, il sera détaché de l'implémentation du mécanisme de défilement, et deuxièmement, il sera en russe. Mais peut-être pouvez-vous l'adapter à votre mécanisme de défilement. Je ne peux pas mettre eh4, car je ne peux pas "arracher" un seul mécanisme de l'environnement graphique dans lequel il fonctionne.
La meilleure option, serait de vous donner la solution en termes généraux, mais pas dans le but de prouver quoi que ce soit, mais sur la base de l'amitié.
Et donc :
L'événement CHARTEVENT_CHART_CHANGE est généré, entre autres, sur l'événement de déplacement de la molette de la souris si le curseur se trouve sur le graphique. L'option de décalage de la carte doit être activée. Ainsi, à partir du décalage du graphique, nous pouvons savoir exactement quand nous faisons tourner la roue. Nous pouvons générer un événement personnalisé. Par exemple, "SCROLLER_EVENT".
Ensuite, notre tâche consiste à déterminer la direction du décalage. Nous utilisons ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR) ; à chaque événement "SCROLLER_EVENT" nous obtenons le numéro de la première barre visible et déterminons s'il est supérieur ou inférieur au numéro de la barre précédente que nous avons enregistrée. Si elle est supérieure, elle se déplace dans une direction ; si elle est inférieure, elle se déplace dans la direction opposée. Dans le même temps, notre graphique défilera également et pourra atteindre la toute fin. Pour éviter cela, nous corrigeons sa position à l'aide de la fonction ChartNavigate et plaçons le graphique à sa position initiale. Cet appel génère également l'événement CHARTEVENT_CHART_CHANGE et désactive notre défilement. Ainsi, au moment de la correction de la position du graphique, nous devons ignorer l'événement CHARTEVENT_CHART_CHANGE et ne pas y réagir. Cela nécessite l'utilisation d'un système de drapeaux.
Voici à quoi ressemble mon code :
Ajouté :
Quant aux autres causes de déplacement des cartes, elles peuvent bien sûr introduire des erreurs dans notre système. Cependant, ces erreurs sont si insignifiantes que nous ne devrions pas y prêter beaucoup d'attention. Donc si la nouvelle barre déplace notre toile de quelques pixels... Ce n'est pas un gros problème. Et ce, uniquement si le curseur se trouve sur la barre de défilement à ce moment-là.
Bien sûr, la mise en œuvre est une tentative de trouver une issue à une situation désespérée. Avec l'absence totale de défilement avec la molette, c'est la solution la plus simple et la plus "native". Pour une solution complète, j'ai déjà contacté servicedesk. Que ce soit le cas ou non, cela dépend des développeurs.