Automatización con interceptación de botones y clics del ratón. - página 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;
      }
   }
}



Es un gran material. Gracias por compartirlo.

Pero eso no funciona para mí. Metatrader y Terminal Id están bien, pero no puede encontrar la ventana del probador. Supongo que tu solución es para MT4 mientras que yo uso MT5. O quizás sea un problema de idioma (mi MT5 está en portugués). ¿Hay alguna otra forma de descubrir el ID adecuado para la ventana del probador? Muchas gracias. Y siento mucho haber contestado en (mal) inglés.

 

Buenas tardes.

Chicos, por favor ayuden con el script de compra y venta cuando el comercio de 1click está activado. Simple, sin la molestia de cambiar el tamaño del lote... etc...

Ya se me rompió la cabeza - no se consigue nada.

Se lo agradezco de antemano. Vuelve a leer el hilo y no encuentras nada parecido.

 
axis:

Buenas tardes.

Chicos, por favor ayuden con el script de compra y venta cuando el comercio de 1click está activado. Simple, sin la molestia de cambiar el tamaño del lote... etc...

Ya se me rompió la cabeza - no se consigue nada.

Se lo agradezco de antemano. Vetku volvió a leer, no encontró nada de esto.


Difunde lo que no consigas aquí (código), o en un nuevo post, se te indicará lo que está mal. ¿Impedir el comercio con un clic impide el comercio con un script? ¿Tal vez el botón de comercio automático no está activado? O su empresa de corretaje no permite la negociación automática.

Al menos deberías intentar publicar los códigos de error de la revista, o mejor aún, el código fuente.

 

Pero aún así, ¿hay una manera razonable de establecer programáticamente las fechas para probar los EAs? Creo que el método descrito anteriormente porYuriy Zaytsev funciona, pero hay funciones que se dirigen a elementos como DateTimePicker, como esta:

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

Sólo que aún no puedo implementarlo. ¿Alguna opinión al respecto?