Automatisierung mit Abfangen von Tasten und Mausklicks. - Seite 4

 
HIDDEN >> :

Interesse an der Software-Steuerung des Strategieprüfers.

1. Öffnen Sie ihn über den Expert Advisor (Code gefunden)

2. Drücken Sie die Taste Start

usw. Im Allgemeinen wäre es wünschenswert, alle Codes aus diesem Fenster zu haben.

Sie wollen leicht davonkommen. :))

Es gibt hier eine Menge komplizierter Dinge:


1. Öffnen Sie das Fenster des Testers

2. Öffnen Sie die Liste der EAs, wählen Sie einen bestimmten EA aus der Liste anhand seines Namens aus (kann übersprungen werden, indem Sie vorher eine Position in der Liste lassen)

3. Öffnen Sie die Symbolliste, wählen Sie ein bestimmtes Symbol aus der Liste anhand seines Namens aus (Sie können diesen Schritt überspringen, indem Sie vorher eine Position in der Liste frei lassen)

4. Öffnen Sie die Liste der Methoden, wählen Sie eine bestimmte Methode aus der Liste nach Name oder Nummer aus.

5. Öffnen Sie die Periodenliste und wählen Sie die gewünschte Periode aus der Liste nach Name oder Nummer aus.

6. Markieren Sie das Kästchen "Datum verwenden", markieren Sie es

7. Aktivieren Sie das Kontrollkästchen "Optimieren", aktivieren Sie das Kontrollkästchen. 10.

8. Markieren Sie das Kästchen "Visualisierung", deaktivieren Sie es (optional).

9. Geben Sie im Fenster "Von" das gewünschte Datum ein (wenn möglich).

10. Geben Sie im Fenster "Bis" das eingestellte Datum ein (wenn möglich)

11. Drücken Sie die Taste "Start".

12. Empfang eines Signals für das Ende der Optimierung, d.h. Rückgabe des Textes "Start" an die Schaltfläche (es kann ein Timer verwendet werden)

13. Schließen Sie das Fenster des Testers


Das heißt, wenn ich noch nichts verpasst habe.

 
granit77 >> :

Sie wollen leicht davonkommen. :))

Es gibt hier eine Menge komplizierter Dinge:


1. Öffnen Sie das Fenster des Testers

2. Öffnen Sie die Liste der Expert Advisors, wählen Sie einen bestimmten Expert Advisor aus der Liste nach Namen aus (kann übersprungen werden, indem Sie vorher eine Position in der Liste lassen)

3. Öffnen Sie die Symbolliste, wählen Sie ein bestimmtes Symbol aus der Liste anhand seines Namens aus (Sie können es überspringen, indem Sie vorher eine Position in der Liste verlassen)

4. Öffnen Sie die Liste der Methoden, wählen Sie eine bestimmte Methode aus der Liste anhand ihres Namens oder ihrer Nummer aus.

5. Öffnen Sie die Periodenliste und wählen Sie die gewünschte Periode aus der Liste nach Name oder Nummer aus.

6. Markieren Sie das Kästchen "Datum verwenden", markieren Sie es

7. Aktivieren Sie das Kontrollkästchen "Optimieren", aktivieren Sie das Kontrollkästchen. 10.

8. Markieren Sie das Kästchen "Visualisierung", deaktivieren Sie es (optional).

9. Geben Sie das angegebene Datum in das Fenster "Von" ein (falls möglich).

10. Geben Sie im Fenster "Bis" das eingestellte Datum ein (wenn möglich)

11. Drücken Sie die Taste "Start".

12. Empfang eines Signals für das Ende der Optimierung, d.h. Rückgabe des Textes "Start" an die Schaltfläche (es kann ein Timer verwendet werden)

13. Schließen Sie das Fenster des Testers


Wenn ich noch nichts verpasst habe

Es gibt eine lastparameters.ini-Datei im Tester-Ordner, was verhindert, dass sie im Expert Advisor vorbereitet, geschrieben und im Tester geöffnet und der Start-Button gedrückt wird. Es stellt sich heraus, dass die Hälfte der Gegenstände bereits fehlt.

 

Stimmt, das hatte ich vergessen.

Wenn Sie damit gearbeitet haben und die Liste durchgegangen sind, brauchen Sie vielleicht nur noch auf "Start" zu drücken?

 
granit77 >> :

Richtig, das hatte ich vergessen.

Wenn Sie damit gearbeitet haben, gehen Sie die Liste durch, vielleicht brauchen Sie wirklich nur "Start" zu drücken?

Optimierung=0 //Optimierung an und aus
genetic=1 //genetics
fitnes=0
method=0 //Prüfmethode
use_date=0 //nach Datum
from=1226620800 // Startdatum in Sekunden seit 1970
to=1226620800 // Enddatum


das gleiche für EA, nach dem Testen und Optimieren ist es einmal manuell die Parameter gespeichert werden und ändern, wie Sie möchten. Ich muss noch den Startknopf drücken, so sehr brauche ich....


Wenn die Optimierung für den Expert Advisor, der auf einem Chart handelt, im Gange ist, kann der F6-Code gedrückt werden und dementsprechend werden der Expert Advisor und das Währungspaar automatisch ausgewählt, d.h. es werden noch einige Punkte übersehen.

 
HIDDEN >> :

Ich muss noch den Startknopf drücken, so sehr brauche ich....

Ich fühle mich nicht besonders geschmeichelt. Ein manueller Durchlauf mit periodischen Optimierungen hat noch kein eindeutig positives Ergebnis gebracht.

Außerdem stellt sich die Frage nach der Wahl des besten Parametersatzes, und jeder denkt sich etwas Neues aus.

Mathemat hat einen Artikel versprochen, vielleicht wird er ein wenig Klarheit bringen.

Aber mit diesem Werkzeug werden sich die Möglichkeiten um eine Größenordnung erweitern; es wird ein Durchbruch sein.

 

In einem benachbarten Thread schlägt Erics vor.


Tastencodes werden in Spy++ nachgeschlagen (Control ID)

Und sie werden verwendet, um den Button-Deskriptor zu erhalten:

hButtonStart = GetDlgItem(hTester, 0x40A);



Ich werde aufwachen und herausfinden, wie ich sie anbringen kann.

 

Bevor Sie irgendwelche Aktionen im Strategy Tester-Fenster durchführen, sollten Sie erstens verstehen, wie ein Fensterbaum in MetaTrader angeordnet ist, und zweitens seinen Systemdeskriptor
bestimmen. Dann können Sie mit der Funktion GetDlgItem(int hDlg,int nIDDlgItem) die IDs der erforderlichen Steuerelemente abrufen.


Das Bild unten zeigt einen Teil des MetaTrader-Fensterbaums in Spy++. Dierote Markierung zeigt die Wurzel an. Die gelbe Markierung zeigt die Position des Fensters "Terminal" in der Baumstruktur an usw.
Um die Systemkennung der Schaltfläche "Start" (im Bild blau markiert) zu erhalten, müssen Sie also nacheinander alle höheren Ebenen
durchlaufen. Zur Veranschaulichung ist jede Ebene mit einer Farbe gekennzeichnet.




Hier ist ein Beispielcode in MQL, um den Deskriptor der Schaltfläche "Start" zu erhalten.

#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);  //дескриптор кнопки "Старт"
}

Um den Deskriptor zu bestimmen, muss der zweite Parameter der Funktion GetDlgItem() die Control-ID an die Fensterkomponente übergeben. Sie kann durch Aufruf des
Menüpunktes "Eigenschaften..." per Rechtsklick definiert werden. In der folgenden Abbildung ist beispielsweise die Steuer-ID des Fensters "Terminal"(0xE81E) rot markiert.


 
Ilnur >> :

Bevor Sie irgendwelche Aktionen im Strategy Tester-Fenster durchführen, müssen Sie erstens verstehen, wie der Fensterbaum im MetaTrader aufgebaut ist, und zweitens bestimmen


Vielen Dank für die Anleitung. Die Schaltfläche "Start" ist sicher gedrückt, ebenso wie die anderen notwendigen Schaltflächen auf dem Bedienfeld namens MetaTrader 4.

 

Eh.... fällt es mir ein.


Die Amerikaner schickten einen Touristen zu einem sowjetischen U-Boot. Am ersten Tag betrank er sich, und als er morgens aufwachte, sah er den Kapitän mit einem Schlagstock hinter den Matrosen herlaufen und schreien: "Wer hat den roten Knopf gedrückt? Wer hat den roten Knopf gedrückt?" Der Amerikaner tadelt ihn:
- Wissen Sie, Sir, in Amerika gibt es keine Kapitäne, die sich so verhalten!
- Es gibt kein Amerika mehr! Wer hat den roten Knopf gedrückt?!

 
HIDDEN писал(а) >>

Eh.... Ich werde daran erinnert.

Die Amerikaner schickten einen Touristen auf ein sowjetisches U-Boot. Er hat sich am ersten Tag betrunken. Am Morgen wachte er auf und sah, wie der Kapitän mit einem Schlagstock auf die Matrosen losging und schrie: "Wer hat den roten Knopf gedrückt? Wer hat den roten Knopf gedrückt?" Der Amerikaner tadelt ihn:
- Wissen Sie, Sir, in Amerika gibt es keine Kapitäne, die sich so verhalten!
- Es gibt kein Amerika mehr! Wer hat den roten Knopf gedrückt?!

Es war ein gutes Terminal : -)))

Grund der Beschwerde: