L'avis des professionnels : Comment obtenir les valeurs de défilement de la souris dans MQL ? [repost du cinquième forum]. - page 8

 

Merci, un peu tard, mais quand même.

 
Ihor Herasko:

Tout d'abord, il serait bon de décider sous quelle forme l'information sur la survenance de l'événement doit être reçue : directement ou indirectement ?

En supposant que l'écriture de votre propre DLL ne soit pas une option, pourquoi ne pas supprimer également l'API ? Si la méthode indirecte convient :

Nous devrions boucler un script qui vérifie l'indice de la première barre visible dans une fenêtre - WindowFirstVisibleBar (vous pouvez le faire en même temps que le nombre de barres dans la fenêtre - WindowBarsPerChart). Si elles diffèrent de la valeur précédente, la carte a été vérifiée. Il est vrai que dans ce cas, la roue de la souris n'est pas la seule cause (zoom dans le temps - "+", "-", cliquer sur Home ou End, saut direct à la date souhaitée).

Dans tous les cas, il n'y a pas encore assez d'informations pour savoir ce qu'il faut faire exactement pour détecter un événement de rotation de la molette de la souris. Vous pouvez ensuite proposer des méthodes.

P.S. Et si vous avez besoin d'accéder à la fonction de gestion des fenêtres, c'est SetWindowLongPtr (voir msdn). Mais vous ne pouvez pas vous passer de DLL, car vous ne pouvez pas attribuer une nouvelle procédure de traitement des messages, située dans le code MQL.


Remarque, ce post contient pratiquement la solution. C'était un peu trop cuit pour une raison quelconque. L'auteur a d'abord saisi une idée simple et correcte, puis l'a perdue, étant parti à la recherche d'une solution globale avec les autres. Quel dommage...


P.S. J'ai été heureux d'aider).

 
Реter Konow:

Remarque, ce post contient pratiquement la solution. C'est un peu décevant pour une raison quelconque. L'auteur a d'abord saisi une idée simple et correcte, puis l'a perdue, partant à la recherche d'une solution globale avec le reste d'entre nous. Quel dommage...


P.S. J'ai été heureux d'aider).


C'était l'époque, un langage ancien, des possibilités limitées... ... j'ai donc dû jongler... L'auteur, c'est-à-dire moi, a résolu ce problème avec succès, puis s'est désintéressé ;)))

 
Реter Konow:

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é.

Bien sûr, la prise de conscience 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.

J'ai compris que la mise en œuvre se ferait avec un calendrier rebondissant. Je suis d'accord pour dire que la meilleure solution est de se jeter aux pieds des développeurs et de leur demander d'ajouter un événement de défilement et de clic de la molette, ainsi que la possibilité de désactiver temporairement le défilement du graphique avec la molette de la souris. Après tout, ce n'est pas si difficile pour eux - juste quelques lignes de code. Je ne comprends pas pourquoi ils ont soudainement décidé que personne n'aura besoin de la molette de la souris... Mais si nous en avons vraiment besoin, alors la solution du graphique rebondissant, comme option, pourrait être de désactiver le graphique lui-même ( ChartSetInteger(0,CHART_SHOW,false) ; ) et de créer son double via CCanvas, mais c'est bien sûr tout tambourin, en marchant vers un voisin de l'autre côté du Pôle Nord.

Mais quand même - crédit et toi, Peter - cool et un bon programmeur. J'ai toujours dit ça, mais j'ai aussi dit que vous gaspillez votre créativité à "faire pousser des tomates en Turquie", où personne n'en a besoin, bordel.

 
Nikolai Semko:

...mais aussi que vous gaspillez votre créativité à "faire pousser des tomates en Turquie", où personne n'en veut.

Je vais faire valoir mon point de vue.

Actuellement, la plateforme MT5 a beaucoup de potentiel. Nombreuses possibilités et bibliothèques. Mais en même temps, le développement des programmes MQL est dans l'impasse.

L'obstacle à la poursuite du développement est le manque d'opportunités pour développer des programmes au sein de la plateforme.

Les utilisateurs ne peuvent pas étendre davantage les fonctionnalités de leur logiciel sans la possibilité d'amener les modules de contrôle à une interface graphique.

L'absence d'interface graphique dans les programmes MQL est un obstacle global à leur développement ultérieur. Renat a déclaré que la période des programmes "puérils" d'une page devait prendre fin. Je suis tout à fait d'accord avec lui. Mais comment en finir si les traders n'ont aucune possibilité physique de sortir du "pantalon court" ?

Énumérons les conséquences de l'absence d'interface graphique dans les programmes MQL :

  • Impossibilité de combiner davantage de blocs de programmes qui donneraient plus de pouvoir à l'utilisateur.
  • Il a réduit au maximum la portée de l'interaction de l'utilisateur avec son programme.
  • Absence de commerce semi-automatique sérieux en tant que tel. Beaucoup préfèrent les échanges semi-automatiques aux échanges entièrement automatiques.
  • Les inconvénients des études de marché, qui ne permettent pas aux professionnels de tourner à plein régime.
  • Pas de gestion propre des statistiques.
  • Nécessité de travailler avec des applications tierces à l'aide de béquilles, dont la principale est l'absence d'interface graphique. Après tout, si elle était disponible, la recherche peut être effectuée dans des programmes MQL.

Toutes les informations utiles de MT5 sont en quelque sorte "enfermées" à l'intérieur et ne sont pas vraiment accessibles.

Dès que l'interface graphique apparaîtra, les béquilles disparaîtront et les possibilités seront ouvertes dans MT5. Il y aura également de nombreuses nouvelles fonctionnalités.

//-----------------------------------------------------------------------------------------------------------

Mon axiome : LES PROGRAMMES OPÉRATIONNELS NE PEUVENT PAS ÊTRE COMPLETS S'ILS NE COMPORTENT PAS D'INTERFACE GRAPHIQUE COMME LOGICIEL D'INTERACTION AVEC L'UTILISATEUR. Il sera détaché et enfermé à l'intérieur de la machine. C'est toujours inconfortable de travailler avec. S'il est primitif et simple au départ, l'interface graphique n'est pas nécessaire, mais dans un domaine tel que le trading, le programme doit évoluer en permanence et interagir avec l'utilisateur. Sans cela, toute la branche de l'algotradition atteindra un plafond et ne se développera pas.

 
Реter Konow:

Je vais exposer mon point de vue.

La plateforme MT5 a désormais un énorme potentiel. Beaucoup de possibilités et de bibliothèques. Mais dans le même temps, le développement des programmes MQL est dans l'impasse.

Le manque de possibilités de développer des programmes au sein de la plateforme est un obstacle au développement futur.

Les utilisateurs ne peuvent pas étendre davantage les fonctionnalités de leur logiciel sans pouvoir placer des modules pour le contrôler dans une interface graphique.

L'absence d'interface graphique dans les programmes MQL est un obstacle global à leur développement ultérieur. Renat a déclaré que la période des programmes "enfantins" d'une page devait être révolue. Je suis tout à fait d'accord avec lui. Mais comment en finir si les traders n'ont aucune possibilité physique de sortir du "pantalon court" ?

Énumérons les conséquences de l'absence d'interface graphique dans les programmes MQL :

  • L'impossibilité de combiner davantage de blocs de programmes qui amélioreraient l'expérience de l'utilisateur.
  • La portée réduite de l'interaction de l'utilisateur avec son programme.
  • Absence de commerce semi-automatique sérieux en tant que tel. Beaucoup préfèrent les échanges semi-automatiques aux échanges entièrement automatiques.
  • Les inconvénients des études de marché, qui ne permettent pas aux professionnels de tourner à plein régime.
  • Pas de tenue de statistiques en interne.
  • Nécessité de travailler avec des applications tierces à l'aide de béquilles, dont la principale est l'absence d'interface graphique. Après tout, s'il en existe une, la recherche peut être effectuée dans des programmes MQL.

Tout le matériel utile de MT5 est en quelque sorte "enfermé" à l'intérieur et non disponible.

Dès que l'interface graphique apparaîtra, les béquilles disparaîtront et les possibilités dans MT5 seront ouvertes. De nombreuses nouvelles fonctionnalités feront également leur apparition.

//-----------------------------------------------------------------------------------------------------------

Mon axiome : un programme complexe ne peut être complet s'il n'a pas d'interface graphique comme action pour l'utilisateur. Il sera détaché et enfermé à l'intérieur de la machine. C'est toujours inconfortable de travailler avec. S'il est primitif et simple au départ, alors l'interface graphique n'est pas nécessaire, mais dans un domaine tel que le trading, le programme doit être en constante évolution et interagir avec l'utilisateur. Sans cela, toute la branche de l'algotradition atteindra un plafond et ne se développera pas.


Je comprends ce que Renat voulait dire, j'ai créé plus d'une centaine d'indicateurs et des dizaines de robots et à la fin j'ai réalisé que ce n'était rien, mais j'ai acquis de l'expérience et de la compréhension. Cela fait maintenant plusieurs années que je travaille sur un robot, où l'interface est la dernière chose et où l'intelligence artificielle est tout. Renat ne voulait pas dire qu'il fallait une interface à plusieurs pages, je parlais du nombre de pages de code, ou plutôt de la quantité d'efforts et de pensée créative qui y sont consacrés, alors que sur Market, la grande majorité des produits sont des babioles enfantines et inutiles. Qu'est-ce que cela a à voir avec les interfaces graphiques ? Les interfaces graphiques ne peuvent que dérouter l'acheteur potentiel, lui mettre la poussière dans les yeux ou l'effrayer par leur complexité. Tout ce sur quoi vous travaillez actuellement - et Anatoly aussi, d'ailleurs, pardonnez-moi - est à la Windows 95. Les gens d'aujourd'hui sont habitués et gâtés par un paradigme d'interface complètement différent. Regardez l'interface de votre téléphone androïde ou de votre iPhone. Simplicité, minimalisme, intuitivité. C'est ce à quoi il faut s'efforcer.

Peter, prenez Google.com, par exemple. Quel type d'interface y voyez-vous ? Et cette entreprise est capitalisée à un demi-billion de dollars US. Au contraire, ils ont tendance à minimiser l'interface, parce que leur interface il y a 15 ans était plus sophistiquée et, je pense, que dans quelques années, leur interface sera encore plus modeste. Et ils sont les principaux créateurs de tendances dans la mode des interfaces graphiques. Toutes vos énumérations de la nécessité d'une interface graphique sont déclaratives et exagérées, ou plutôt l'interface graphique n'a rien à voir avec cela (enfin, vous ne pouvez la laisser que pour les échanges semi-automatiques). Regardez la dernière technologie de Google - TensorFlow. Il s'agit d'une technologie d'apprentissage automatique, d'IA et de reconnaissance des formes, dont la maîtrise serait très utile aux programmeurs de trading automatisé, mais cette technologie n'a pas besoin d'interface graphique. Vraiment - de quoi je parle, si pour vous la technologie OOP est un outil inutile !

 
Nikolai Semko:

Je comprends parfaitement ce que Renat voulait dire, car j'ai moi-même créé plus d'une centaine d'indicateurs et des dizaines de robots, mais j'ai fini par me rendre compte que tout cela n'était rien, mais j'ai acquis une certaine expérience et une certaine compréhension. Cela fait maintenant plusieurs années que je travaille sur un robot, où l'interface est la dernière chose et où l'intelligence artificielle est tout. Renat ne voulait pas dire qu'il fallait une interface à plusieurs pages, je parlais du nombre de pages de code, ou plutôt de la quantité d'efforts et de pensée créative qui y sont consacrés, alors que sur Market, la grande majorité des produits sont des babioles enfantines et inutiles. Qu'est-ce que cela a à voir avec les interfaces graphiques ? Les interfaces graphiques ne peuvent que dérouter l'acheteur potentiel, lui mettre la poussière dans les yeux ou l'effrayer par leur complexité. Tout ce sur quoi vous travaillez actuellement - et Anatoly aussi, d'ailleurs, pardonnez-moi - est à l'image de Windows 95. Les gens d'aujourd'hui sont habitués et gâtés par un paradigme d'interface complètement différent. Regardez l'interface de votre téléphone androïde ou de votre iPhone. Simplicité, minimalisme, intuitivité. C'est ce à quoi il faut s'efforcer.

Peter, prenez Google.com, par exemple. Quel type d'interface y voyez-vous ? Et cette entreprise est capitalisée à un demi-billion de dollars US. Au contraire, ils ont tendance à minimiser l'interface, parce que leur interface il y a 15 ans était plus sophistiquée et, je pense, que dans quelques années, leur interface sera encore plus modeste. Et ils sont les principaux créateurs de tendances dans la mode des interfaces graphiques. Toutes vos énumérations de la nécessité d'une interface graphique sont déclaratives et exagérées, ou plutôt l'interface graphique n'a rien à voir avec cela (enfin, vous ne pouvez la laisser que pour les échanges semi-automatiques). Regardez la dernière technologie de Google - TensorFlow. Il s'agit d'une technologie d'apprentissage automatique, d'IA et de reconnaissance des formes, dont la maîtrise serait très utile aux programmeurs de trading automatisé, mais cette technologie ne nécessite pas d'interface graphique. Vraiment - de quoi je parle, si pour vous la technologie OOP est un outil inutile !

Nikolay, nous ne nous comprenons pas).

La POO est vraiment inutile pour moi personnellement mais je ne nie pas son utilité pour les autres. Laissez-les l'utiliser pour leur santé.

L'interface graphique est une nécessité pratique. L'interface graphique permettra de rendre les programmes plus complexes. Il enrichira l'environnement actuellement peu propice à la mise en œuvre d'idées créatives. Cela donnera aux programmes un visage qui leur est propre.

Le MO (machine learning), au contraire, conduira l'algotrading dans une impasse sans issue. Un jeu de devinettes automatisé dépourvu de toute compréhension des processus du marché. Une boîte noire recyclant la bouillie statistique. Il ampute le désir des traders de comprendre le marché et de créer leurs propres stratégies. La formation à l'analyse technique et les articles sur ce sujet ne seront pas pertinents. Le temps de la mort de la pensée du commerçant va arriver. La boîte noire l'effacera.

Nikolaï, notre écosystème doit être un environnement diversifié et riche. Nous devons nous développer. Les algotraders ont besoin de nouvelles possibilités de logiciels. Je veux juste leur en ouvrir un autre).


D'ailleurs, vous aussi, vous devriez enfin vous lancer dans un projet de grande envergure et commencer à prendre conscience de vos capacités. J'ai l'impression que tu le veux toi-même, mais il n'y a pas moyen. C'est dommage car vous avez un énorme potentiel créatif. J'attends donc la démonstration de vos créations. J'espère que je les verrai sûrement).

 

Реter Konow:

...Il enrichira l'environnement actuellement peu propice à la mise en œuvre d'idées créatives. Cela donnera aux programmes un visage qui leur est propre.

Je devrais préciser ce que j'entends par "environnement rare pour l'expression créative". J'ai peur d'être mal compris. MT5 est potentiellement un environnement très riche pour les idées créatives en matière de trading algorithmique. Mais son potentiel est actuellement utilisé par les traders, je pense, par 20 à 30%.

C'est l'espace actuel du domaine de l'utilisation pratique que j'appelle "environnement maigre", et non l'espace potentiel. Je ne me suis peut-être pas exprimé correctement.

Il y a une expression : "L'existence détermine la conscience".

Notre genèse actuelle est constituée de programmes sans interface graphique, créés face à des barrières intellectuelles élevées. Cette genèse a défini notre conscience et nous ne voulons pas d'interfaces graphiques ni de transactions semi-automatisées. Nous croyons au sens de l'ajustement des paramètres à l'histoire comme moyen d'optimiser les stratégies. Autrement dit, nous n'essayons pas d'améliorer la stratégie en approfondissant notre compréhension du marché, mais en nous adaptant à l'histoire. En d'autres termes, l'auto-illusion. C'est ainsi que notre conscience a été définie pendant des années. Et pour une raison quelconque, personne ne considère l'optimisation comme une poussière flagrante dans l'œil. Mais ce n'est que grâce à elle que l'on obtient des grails de test.

Toutes les barrières sont utiles pour la gymnastique mentale, mais pour la créativité libre, il y a trop de barrières maintenant. Certaines entités nous aident dans la réalisation d'une idée, d'autres nous en empêchent. Remarque : il ne m'a fallu qu'une fraction des capacités d'un langage de programmation pour construire ma propre "machine" graphique, avec un langage de balisage. Et il ne s'agit pas du tout de talent de programmation, mais simplement de la capacité à distinguer les choses par leur essence. Si une personne ne possède pas cette capacité, elle s'embrouillera désespérément avec diverses choses et ne réalisera pas son potentiel. Le prisme dans lequel nous regardons les choses détermine l'efficacité de notre travail et l'ampleur de la mise en œuvre pratique du talent.

Je veux simplement aider les autres à s'épanouir, et conduire MT5 à une percée mondiale. Comment faire autrement ? En général, si des personnes talentueuses comme vous, Nikolay ou Anatoly m'aident, nous déplacerons sûrement des montagnes).

 
Реter Konow:

...si des personnes talentueuses comme vous, Nikolaï, ou Anatoly m'aident, nous déplacerons certainement des montagnes !)

Non, je suis désolé, Pyotr, mais tu déplaces tes propres montagnes. Et je déplacerai mes propres montagnes. ))
 
Nikolai Semko:
Non, Peter, je suis désolé, mais tu déplaces tes propres montagnes. Et je déplacerai mes montagnes. ))

J'ai dit"comme vous", pas vous.) Je n'allais pas vous imposer ma "montagne").