// Закачать все котировки.mq4
// Скрипт
#property copyright "mandorr@gmail.com"
#include <WinUser32.mqh>
#include <stdlib.mqh>

void start()
{
   string title="Скрипт";
   string msg="Закачать все котировки?    ";
   if (MessageBox(msg,title,MB_YESNO|MB_ICONQUESTION)!=IDYES) return;
   double x;
   string list[]={"EURUSD", 
                  "USDJPY", 
                  "EURGBP", 
                  "EURJPY", 
                  "GBPUSD", 
                  "USDCHF", 
                  "AUDUSD", 
                  "USDCAD", 
                  "EURCHF", 
                  "EURCAD", 
                  "EURAUD", 
                  "GBPCHF", 
                  "GBPJPY", 
                  "CHFJPY", 
                  "NZDUSD", 
                  "USDDKK", 
                  "USDNOK", 
                  "USDSEK", 
                  "USDSGD", 
                  "USDZAR"};
                  
   int period[] = { PERIOD_M1 , 
                    PERIOD_M5 , 
                    PERIOD_M15,
                    PERIOD_M30,
                    PERIOD_H1 ,
                    PERIOD_H4 ,
                    PERIOD_D1 ,
                    PERIOD_W1 ,
                    PERIOD_MN1};
                    
   string str_per[] = { "PERIOD_M1" , 
                        "PERIOD_M5" , 
                        "PERIOD_M15",
                        "PERIOD_M30",
                        "PERIOD_H1" ,
                        "PERIOD_H4" ,
                        "PERIOD_D1" ,
                        "PERIOD_W1" ,
                        "PERIOD_MN1"};

   double close[];

   for (int i = 0; i < ArraySize(list); i++)
   {
      Print("Закачивание котировок инструмента "+list[i]);
      for (int j = 0; j < ArraySize(period); j++)
      {
         Comment("Завершено: " + (((i+1)*ArraySize(period) - ArraySize(period) + j + 1) * 100) / (ArraySize(list) * ArraySize(period))+ "%");

         x = iClose(list[i], period[j], 0);
         Print(list[i] + " Период: "+str_per[j]);

         while (true)
         {
            ArrayCopySeries(close, MODE_CLOSE, list[i], period[j]);
            int error = GetLastError();
            if (error == 0) break;
            if (IsStopped() == true) return(0);

            Sleep(10000);
         }
         Sleep(1000);
      }
   }
   msg="Котировки закачены    ";
   MessageBox(msg,title,MB_OK|MB_ICONINFORMATION);
}
// End