Автоматизация с перехватом нажатия кнопок и мыши. - страница 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;
      }
   }
}



That's great stuff. Thank you for sharing it.

But that's not working for me. Metatrader and Terminal Id are ok, but it can't find the tester window. I'm guessing your soluction is for MT4 while I'm using MT5. Or maybe it's a language issue (my MT5 is in portuguese). Any other way to discovery the proper ID for the tester window? Thank you so much. And I'm really sorry for answering in (poor) english.

 

Доброго времени суток.

Ребята, помогите пожалуйста скриптиком бай и селл при включенной торговле в 1клик. Простыми, без заморочек изменения размера лота... и тд...

Уже всю голову сломал- не получатся ничего.

За раннее очень очень благодарен. Ветку перечитал, не нашёл ничего подобного.

 
axis:

Доброго времени суток.

Ребята, помогите пожалуйста скриптиком бай и селл при включенной торговле в 1клик. Простыми, без заморочек изменения размера лота... и тд...

Уже всю голову сломал- не получатся ничего.

За раннее очень очень благодарен. Ветку перечитал, не нашёл ничего подобного.


Выкладывайте что не получается сюда (код), или в новом посте, вам подскажут что не так. Неужели торговля в один клик мешает скрипту торговать? Может просто кнопка автоторговли не активирована? Или ДЦ не разрешает автоторговлю, тоже бывает.

В общем хотя бы коды ошибок исполнения из журнала потрудитесь опубликовать, а лучше ещё и исходники.

 
 

И всё таки, есть ли вменяемый способ программно задать даты тестирования советника ? Способ, описанный ранее автором Yuriy Zaytsev полагаю рабочий, но ведь есть функции обращения к элементам типа DateTimePicker, типа этой:

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

Только пока не получается реализовать. Есть мысли по этому поводу? 

Причина обращения: