Le problème :
Sans l'option "1 click" de PRT, on est obligé valider les ordres, modification de stop/target... C'est pénible et lent.
Solutions partielles trouvées sur ce forum :
Solution 1 : gardé un doigt sur la touche espace pour rapidement appuyer dessus lorsque la fenêtre de validation apparaît. Mais cela immobilise une main que je ne peux pas utilisé pour le Stream Deck.
Solution 2 : précharger l'action, c'est à dire cliquer sur achat par exemple, la fenêtre de validation apparaît, et frapper Espace pour valider seulement qu'en on souhaite réellement entrer en position. Idem pour sortir de positon. Ce qui engendre d'autres problème :
Par exemple, précharger une sortie de position bloque toutes modification de stop.
Autre problème, durant le préchargement, les graphiques se grise. Pas très sympas.
Ses solution n'étant pas satisfaisant, j'ai donc exploré d'autres pistes :
Première piste :
Utiliser le logiciel Actiona 3 (https://www.jmgr.net/) pour faire de la reconnaissance d'image, pour détecter la fenêtre de validation. Et une fois détecter, simuler l'appui sur la touche espace.
Cela fonctionne, mais c'est lent. trop lent. Et plus il y a de fenêtre de validation à détecter, plus c'est lent. J'ai donc jeter un œil dans le code du logiciel.
Le premier problème est que faire une capture d’écran, c'est lent. Et comme actiona est codé avec la librairie Qt, cela rajoute une couche d'abstraction qui n'arrange peut être pas les choses. Soit environ 100ms d'après mes testes perso en faisant un petit programme Qt.
Deuxième problème , la reconnaissance d'image est réaliser avec la librairie OpenCV. C'est certe puissant et très flexible, mais cela rajoute de la lenteur.
Troisième problème, il faut détecter plusieurs images dans la capture d'écran, or la fonctionnalité Trouvé Image du logiciel fait à chaque fois une nouvelle capture. donc x fois 100ms. Et malheureusement, ce n'est pas optimisable.
Deuxième piste :
Utiliser le logiciel Super Macro (https://www.supermacro.fr/) pour faire la même chose que actiona. Même si c'est une vieux logiciel (dernière mise à jour date de 2010), il à l'avantage d'être codé en pur API windows. Je ne sais pas si c'est pour cette raison et/ou il est mieux optimisé, en tous cas il est plus rapide.
Cela fonctionne et un peu plus rapide, mais peut mieux faire. Je vois encore les graphique qui se grise.
A ce stade, j'étais sur le point de faire mon propre logiciel automate, basé sur Qt comme Actiona mais qui ne fasse qu'une seule capture d'écran, dans une zone proche de la souris car la boite de dialogue apparaît à coté, avec un traitement d'image basique mais rapide donc sans OpenCV. Mais en lisant le code du logiciel Actiona 3, j'ai remarqué qu'il était capable de faire des captures d'écran dans une fenêtre bien précise. Il est donc capable de détecter une fenêtre déterminée. Et en plus, cette détection est accessible par l'utilisateur du logiciel.
La solution finale :
J'ai remarqué que le logiciel Actiona 3 (https://www.jmgr.net/) à la fonctionnalité qui s'appelle Condition de fenêtre. Grâce à cela, au lieu de rechercher une image, je recherche seulement l’existence d'une fenêtre (avec un nom précis) présent sur le système d'exploitation. Simple et rapide, surtout que ces fenêtres de confirmation portent quasiment toutes le même nom : Validation.
Et là c'est très rapide. Fini les graphiques qui se grisent. On a même plus le temps de voir la boite de dialogue.
Voici le script pour actiona 3 :
Je tombe sur "Sorry, you have been blocked" quand j'essai d'ajouter le fichier. Merci faire le nécessaire pour corriger cela.
Attention, je suis obligé de vous même en garde, la détection est basée exclusivement sur le nom de la fenêtre, donc il y a un risque de validation de fenêtre qui ne soit pas en rapport à l'opiton "Trading en 1 click". Par sécurité, je vous conseille donc de n'avoir aucun autre programme de lancé sur votre station par exemple, hormis PRT.
Voila, je crois que je vais faire des heureux.
-+