Automatisation avec interception des boutons et des clics de souris. - page 4

 
HIDDEN >> :

intéressé par le contrôle logiciel du testeur de stratégie.

1. l'ouvrir à partir de l'Expert Advisor (code trouvé)

2. appuyez sur le bouton Start

etc. En général, il serait souhaitable de disposer de tous les codes de cette fenêtre. boutons, etc.

Tu veux t'en sortir facilement. :))

Il y a beaucoup de choses compliquées ici :


1. ouvrez la fenêtre du testeur

2. ouvrir la liste des EAs, sélectionner un EA donné dans la liste par son nom (peut être sauté, en laissant une position dans la liste au préalable)

3. ouvrir la liste des symboles, sélectionner un symbole donné dans la liste par son nom (vous pouvez sauter cette étape en laissant une position dans la liste au préalable)

4. Ouvrez la liste des méthodes, sélectionnez une méthode donnée dans la liste par son nom ou son numéro.

5. Ouvrez la liste des périodes, sélectionnez une période donnée dans la liste par son nom ou son numéro.

6. Cochez la case "Utiliser la date", cochez-la

7. Cochez la case "Optimiser", cochez la case. 10.

8. Cochez la case "Visualisation", décochez-la (facultatif)

9. Entrez la date donnée dans la fenêtre "De" (si possible).

10. Entrez la date fixée dans la fenêtre "À" (si possible).

11. Appuyez sur le bouton "Start".

12. Recevoir un signal de la fin de l'optimisation, c'est-à-dire le texte "Start" renvoyé sur le bouton (une minuterie peut être utilisée).

13. Fermer la fenêtre du testeur


Enfin, si je n'ai encore rien manqué.

 
granit77 >> :

Tu veux t'en sortir facilement. :))

Il y a beaucoup de choses compliquées ici :


1. ouvrez la fenêtre du testeur

2. ouvrir la liste des conseillers-experts, sélectionner un conseiller-expert donné dans la liste par son nom (il est possible de le sauter, en laissant au préalable une position dans la liste)

3. ouvrir la liste des symboles, sélectionner un symbole donné dans la liste par son nom (vous pouvez le sauter en laissant une position dans la liste au préalable)

4. ouvrez la liste des méthodes, sélectionnez une méthode donnée dans la liste par son nom ou son numéro.

5. Ouvrez la liste des périodes, sélectionnez une période donnée dans la liste par son nom ou son numéro.

6. Cochez la case "Utiliser la date", cochez-la

7. Cochez la case "Optimiser", cochez la case. 10.

8. Cochez la case "Visualisation", décochez-la (facultatif)

9. Entrez la date donnée dans la fenêtre "From" ( si c'est possible)

10. Entrez la date fixée dans la fenêtre "À" (si possible).

11. Appuyez sur le bouton "Start".

12. Recevoir un signal de la fin de l'optimisation, c'est-à-dire le texte "Start" renvoyé sur le bouton (une minuterie peut être utilisée).

13. Fermer la fenêtre du testeur


Si je n'ai encore rien manqué

Il y a un fichier lastparameters.ini dans le dossier du testeur, ce qui l'empêche d'être préparé dans le conseiller expert, écrit et ouvert dans le testeur et le bouton de démarrage appuyé. Il s'avère que la moitié des articles sont déjà manquants.

 

C'est vrai, j'avais oublié.

Si vous avez travaillé avec, parcouru la liste, peut-être que tout ce que vous avez à faire est d'appuyer sur "Start" ?

 
granit77 >> :

C'est vrai, j'avais oublié.

Si vous avez travaillé avec, parcouru la liste, peut-être n'avez-vous vraiment besoin que d'appuyer sur "Start" ?

optimisation=0 //optimisation activée et désactivée
genetic=1 //génétique
fitnes=0
method=0 //méthode de test
use_date=0 //par date
from=1226620800 // date de début en secondes depuis 1970
to=1226620800 // date de fin d'activité


la même chose pour EA, après avoir testé et optimisé il est fait une fois manuellement les paramètres sont sauvegardés et changer comme vous voulez. J'ai encore besoin d'appuyer sur le bouton Start, oh combien j'en ai besoin.....


Si l'optimisation est en cours pour le Conseiller Expert qui négocie sur un graphique, le code F6 peut être pressé et, en conséquence, le Conseiller Expert et la paire de devises sont automatiquement sélectionnés. c'est-à-dire que quelques points supplémentaires sont manqués.

 
HIDDEN >> :

Je dois encore appuyer sur le bouton de démarrage, oh combien j'en ai besoin....

Je ne suis pas particulièrement flatté. Une exécution manuelle avec des optimisations périodiques n'a pas encore donné un résultat positif sans ambiguïté.

En outre, la question du choix du meilleur ensemble de paramètres est également en suspens, chacun y trouve son compte.

Mathemat a promis un article, peut-être cela éclaircira-t-il un peu les choses.

Mais avec cet outil, les possibilités vont augmenter d'un ordre de grandeur ; ce sera une percée.

 

Dans un fil de discussion voisin, Erics suggère.


Les codes des boutons sont recherchés dans Spy++ (Control ID).

Et ils sont utilisés pour obtenir le descripteur du bouton :

hButtonStart = GetDlgItem(hTester, 0x40A) ;



Je vais me réveiller et trouver comment l'attacher.

 

Avant d'effectuer toute action dans la fenêtre Strategy Tester, vous devez d'abord comprendre comment est organisée l'arborescence d'une fenêtre dans MetaTrader, et ensuite, déterminer
son descripteur système. Ensuite, vous pouvez utiliser la fonction GetDlgItem(int hDlg,int nIDDlgItem) pour obtenir les ID des contrôles nécessaires.


L'image ci-dessous montre une partie de l'arbre de la fenêtre MetaTrader dans Spy++. Le marqueurrouge indique sa racine. Le marqueur jaune indique l'emplacement de la fenêtre "Terminal" dans l'arbre, etc.
Ainsi, pour obtenir l'identifiant système du bouton "Start" (marqué d'un repère bleu dans l'image), vous devez passer successivement par tous les niveaux supérieurs
. À titre d'illustration, chaque niveau est marqué d'une couleur.




Voici un exemple de code en MQL pour obtenir le descripteur du bouton "Start".

#include <WinUser32.mqh>

#import "user32.dll"
   int GetAncestor(int hWnd, int gaFlags);
   int GetDlgItem(int hDlg, int nIDDlgItem);
#import

void start()
{
   int hMetaTrader, hTerminal, hTester, hButtonStart;
   
   hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала
	
   hTerminal = GetDlgItem(hMetaTrader,0xE81E);
   hTester = GetDlgItem(hTerminal,0x53);
   hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A);  //дескриптор кнопки "Старт"
}

Pour déterminer le descripteur, le deuxième paramètre de la fonction GetDlgItem() doit transmettre l'ID du contrôle au composant de la fenêtre. Il peut être défini en appelant l'élément de menu
"Propriétés..." par un clic droit. Par exemple, dans la figure ci-dessous, l'ID de contrôle de la fenêtre "Terminal"(0xE81E) est marqué en rouge .


 
Ilnur >> :

Avant d'effectuer toute action dans la fenêtre Strategy Tester, vous devez d'abord comprendre comment l'arborescence des fenêtres de MetaTrader est structurée, et deuxièmement, déterminer


Merci pour le tutoriel. Le bouton Start est bien enfoncé, tout comme les autres boutons nécessaires du panneau de contrôle appelé MetaTrader 4.

 

Eh.... ça me vient à l'esprit.


Les Américains ont envoyé un touriste dans un sous-marin soviétique. Il s'est saoulé le premier jour. Au matin, il s'est réveillé et a vu le capitaine avec une matraque courir après les marins en criant : "Qui a appuyé sur le bouton rouge ? Qui a appuyé sur le bouton rouge ?" L'Américain le réprimande :
- Vous savez, monsieur, nous n'avons pas de capitaines en Amérique qui se comportent comme ça !
- Il n'y a plus d'Amérique ! Qui a appuyé sur le bouton rouge ? !

 
HIDDEN писал(а) >>

Eh.... Je m'en souviens.

Les Américains ont envoyé un touriste sur un sous-marin soviétique. Il s'est saoulé le premier jour. Il s'est réveillé le matin et a vu le capitaine avec une matraque poursuivant les marins et criant : "Qui a appuyé sur le bouton rouge ? Qui a appuyé sur le bouton rouge ?" L'Américain le réprimande :
- Vous savez, monsieur, nous n'avons pas de capitaines en Amérique qui se comportent comme ça !
- Il n'y a plus d'Amérique ! Qui a appuyé sur le bouton rouge ? !

C'était un bon terminal : -))))