#property show_inputs
#include <WinUser32.mqh>
 
extern int Amount = 3; // ?????????? ?????? ? ???????? ????????? ???? ?????????
extern int Pause = 10; // ????? ????? ?????????????? ???????? ??????
 
#import "user32.dll"
  int GetParent( int hWnd );
  int GetDlgItem( int hDlg, int nIDDlgItem );
  int GetLastActivePopup( int hWnd );
#import
 
#define VK_HOME 0x24
#define VK_DOWN 0x28
#define VK_ENTER 0x0D
 
#define PAUSE 1000
 
// ???????????? ? ?????, ?????????????? ? ??????? ????? Num ? ???????? ????????? ???? ?????????
void Connect( int Num )
{
   int hwnd = WindowHandle(Symbol(), Period());
   int hwnd_parent = 0;
 
   while (!IsStopped())
   {
      hwnd = GetParent(hwnd);
      
      if (hwnd == 0)
        break;
        
      hwnd_parent = hwnd;
   }
   
   if (hwnd_parent != 0)  // ????? ??????? ????
   {
     hwnd = GetDlgItem(hwnd_parent, 0xE81C); // ????? ????????? ???? ?????????
     hwnd = GetDlgItem(hwnd, 0x52);
     hwnd = GetDlgItem(hwnd, 0x8A70);
     
     PostMessageA(hwnd, WM_KEYDOWN, VK_HOME,0); // ??????? ??????? ???????? ????????? ???? ?????????
     
     while (Num > 1)  
     {
       PostMessageA(hwnd, WM_KEYDOWN,VK_DOWN, 0); // ?????????? ?? ?????? ???????
       Num--;
     }
 
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);  // ?????
     Sleep(PAUSE);                                  // ???????
     
     hwnd = GetLastActivePopup(hwnd_parent);  // ????? ????? ??????
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // ????????????
   }
 
  return;
}
 
// ????????? ????????????????/??????? (Detailed = TRUE/FALSE) ????? ? ???????? ??????? ?????
void SaveStatement( bool Detailed, string FileName )
{
   int hwnd = WindowHandle(Symbol(), Period());
   int hwnd_parent = 0;
 
   while (!IsStopped())
   {
      hwnd = GetParent(hwnd);
      
      if (hwnd == 0)
        break;
        
      hwnd_parent = hwnd;
   }
   
   if (hwnd_parent != 0)  // ????? ??????? ????
   {
     if (Detailed)
       PostMessageA(hwnd_parent, WM_COMMAND, 35502,0);  // ???????????????? ?????
     else
       PostMessageA(hwnd_parent, WM_COMMAND, 33064,0);  // ??????? ?????
 
     Sleep(PAUSE);
 
     hwnd = GetLastActivePopup(hwnd_parent);  // ????? ????? ?????????? ?????
     SetWindowTextA(GetDlgItem(hwnd, 0x480), FileName);  // ????? ??? ?????
 
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);  // ??????????? ??????????
     Sleep(PAUSE);
 
     hwnd = GetLastActivePopup(hwnd_parent);  // ????? ?????????????? ? ?????????? ?????
     PostMessageA(hwnd, WM_KEYDOWN, VK_DOWN, 0);  // ??????????? ??????????
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);
   }
 
  return;  
}
 
void start()
{
  int i;
  
  Pause *= 1000;
 
  for (i = 1; i <= Amount; i++)
  {
    Connect(i);
    
    Sleep(Pause);
    
    SaveStatement(TRUE, AccountNumber());
  } 
 
  return;
}