Automatisierung mit Abfangen von Tasten und Mausklicks. - Seite 12

 
Ilnur Iksanov:
#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); // Return zero here
   hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A);  //дескриптор кнопки "Старт"
        
   PostMessageA(GetDlgItem(hTester,0x81BF),WM_COMMAND,0x40A,hButtonStart); //нажимаем кнопку старт
   
   Print("Запуск тестера стратегий");
   string sButtonStartName = "";
   while(!IsStopped()) 
   {
      Sleep(3000);
      GetWindowTextA(hButtonStart,sButtonStartName,6); //считываем текст кнопки запуска тестера
      if(sButtonStartName=="Старт")                    
      {
         Print("Работа тестера завершена");
         break;
      }
   }
}



Das ist eine tolle Sache. Vielen Dank, dass Sie es mit uns teilen.

Aber das funktioniert bei mir nicht. Metatrader und Terminal Id sind in Ordnung, aber das Tester-Fenster kann nicht gefunden werden. Ich vermute, Ihre Lösung ist für MT4, während ich MT5 verwende. Oder vielleicht ist es ein Sprachproblem (mein MT5 ist auf Portugiesisch). Gibt es eine andere Möglichkeit, die richtige ID für das Prüffenster zu ermitteln? Ich danke Ihnen vielmals. Und es tut mir wirklich leid, dass ich in (schlechtem) Englisch geantwortet habe.

 

Guten Tag.

Leute, bitte helft mir mit dem Kauf- und Verkaufsskript, wenn der 1-Klick-Handel eingeschaltet ist. Einfach, ohne die Mühe, die Losgröße zu ändern... usw...

Habe mir schon den Kopf zerbrochen - bekomme nichts.

Ich bin Ihnen im Voraus sehr dankbar. Ich habe den Thread erneut gelesen und nichts dergleichen gefunden.

 
axis:

Guten Tag.

Leute, bitte helft mir mit dem Kauf- und Verkaufsskript, wenn der 1-Klick-Handel eingeschaltet ist. Einfach, ohne die Mühe, die Losgröße zu ändern... usw...

Habe mir schon den Kopf zerbrochen - bekomme nichts.

Ich bin Ihnen im Voraus sehr dankbar. Vetku hat nachgelesen und nichts dergleichen gefunden.


Verbreiten Sie, was Sie nicht bekommen können hier (Code), oder in einem neuen Beitrag, werden Sie darauf hingewiesen werden, was falsch ist. Verhindert der Ein-Klick-Handel den Skript-Handel? Vielleicht ist nur die Schaltfläche für den automatischen Handel nicht aktiviert? Oder Ihr Maklerunternehmen erlaubt keinen automatischen Handel.

Sie sollten zumindest versuchen, die Fehlercodes aus der Zeitschrift zu veröffentlichen, oder noch besser, den Quellcode.

 

Aber gibt es dennoch eine vernünftige Möglichkeit, programmatisch Termine für das Testen von EAs festzulegen? Ich denke, die Methode, die zuvor vonYuriy Zaytsev beschrieben wurde, funktioniert, aber es gibt Funktionen, die Elemente wie DateTimePicker ansprechen, wie diese:

DateTime_SetSystemtime(GetDlgItem(hwndDlg, IDD_Date1), GDT_VALID, &SysTime);

Ich kann es nur noch nicht umsetzen. Haben Sie dazu eine Meinung?