Automação com interceptação por botão e clique do mouse. - 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;
      }
   }
}



Isso é ótimo material. Obrigado por compartilhá-lo.

Mas isso não está funcionando para mim. Metatrader e Terminal Id estão bem, mas não consegue encontrar a janela de teste. Suponho que sua solução seja para o MT4 enquanto eu estiver usando o MT5. Ou talvez seja uma questão de idioma (meu MT5 está em português). Alguma outra maneira de descobrir a identificação adequada para a janela de teste? Muito obrigado. E lamento muito por responder em inglês (pobre).

 

Boa tarde.

Pessoal, por favor, ajudem com o roteiro de compra e venda quando o comércio de 1click estiver em andamento. Simples, sem o incômodo de mudar o tamanho do lote. etc....

Já quebrei a cabeça - não consigo nada.

Estou muito grato a vocês com antecedência. Leia novamente o fio, não encontrou nada parecido.

 
axis:

Boa tarde.

Pessoal, por favor, ajudem com o roteiro de compra e venda quando o comércio de 1click estiver em andamento. Simples, sem o incômodo de mudar o tamanho do lote. etc....

Já quebrei a cabeça - não consigo nada.

Estou muito grato a vocês com antecedência. Vetku relê, não encontrou nada parecido com isto.


Espalhe o que você não pode obter aqui (código), ou em um novo posto, você será avisado do que está errado. Um clique impede que o script seja negociado? Talvez apenas o botão de comércio automático não esteja ativado? Ou sua empresa de corretagem não permite o comércio automático.

Você deve pelo menos tentar publicar os códigos de erro da revista, ou melhor ainda, o código fonte.

 

Mas ainda assim, existe uma maneira razoável de programar datas para testar EAs? Acho que o método descrito anteriormente porYuriy Zaytsev funciona, mas há funções que abordam elementos como DateTimePicker, como esta:

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

Só não é possível implementá-lo ainda. Alguma idéia sobre isso?