버튼 및 마우스 클릭을 가로채는 자동화. - 페이지 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 ;
      }
   }
}



대단한 일이네요. 공유해 주셔서 감사합니다.

하지만 그것은 나를 위해 작동하지 않습니다. Metatrader와 Terminal Id는 정상인데 테스터 창을 찾을 수 없습니다. 나는 MT5를 사용하는 동안 귀하의 솔루션이 MT4에 대한 것이라고 생각합니다. 아니면 언어 문제일 수도 있습니다(제 MT5는 포르투갈어입니다). 테스터 창에 대한 적절한 ID를 찾는 다른 방법이 있습니까? 정말 감사합니다. 그리고 (나쁜) 영어로 대답해서 정말 죄송합니다.

 

안녕하세요.

여러분, 원클릭 거래가 활성화된 구매 및 판매 스크립트를 도와주세요. 로트 크기를 변경하는 번거로움 없이 간단하고... 등등...

나는 이미 머리 전체를 망가뜨렸습니다. 아무 일도 일어나지 않을 것입니다.

미리 감사드립니다. 나는 지점을 다시 읽었습니다. 나는 그런 것을 찾지 못했습니다.

 
axis :

안녕하세요.

여러분, 원클릭 거래가 활성화된 구매 및 판매 스크립트를 도와주세요. 로트 크기를 변경하는 번거로움 없이 간단하고... 등등...

나는 이미 머리 전체를 망가뜨렸습니다. 아무 일도 일어나지 않을 것입니다.

미리 감사드립니다. 나는 지점을 다시 읽었습니다. 나는 그런 것을 찾지 못했습니다.


여기에 작동하지 않는 것을 게시하거나(코드) 새 게시물에 무엇이 문제인지 알려줄 것입니다. 원 클릭 거래는 스크립트 거래를 방지합니까? 자동 거래 버튼만 활성화되어 있지 않습니까? 또는 DC가 자동 거래를 허용하지 않는 경우에도 발생합니다.

일반적으로 최소한 로그에서 실행 오류 코드 를 게시하는 데 수고를 들이고, 더 나은 방법은 소스 코드를 게시하는 것입니다.

 

그러나 어드바이저 테스트 날짜를 프로그래밍 방식으로 설정하는 올바른 방법이 있습니까? 저자 Yuriy Zaytsev 가 앞서 설명한 방법이 효과가 있다고 생각하지만 다음과 같이 DateTimePicker 유형의 요소에 액세스하기 위한 함수가 있습니다.

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

아직 구현되지 않았을 뿐입니다. 이에 대한 생각이 있습니까?

사유: