Программная перезагрузка expertа. - страница 2

 
Rizer >>:
Но тут на форуме, уже не помню где, был выложен вариант переициализации индикаторов

https://www.mql5.com/ru/code/8370            -      script  переициализации индикаторов

А вообще если растут объёмы вычислений нужно смотреть условия выхода из циклов "while".

                                                                                                               Кстати всем привет.

 
kharko писал(а) >>

В том то и дело, что не решается... Та же подгрузка истории... при первом запуске индикатора выдает ошибку деление на нуль, хотя везде стоят проверки, на этот случай... при повторной инициализации все ок.... работает как часики...

Оригинально. Значит нет проверок на этот случай.

 
Извиняюсь, а кто-нибудь может подсказать где находится более полная, чем в документации, расшифровка файла WinUser32.mqh? И если возможно код окна (либо всех окон и функций MetaTradera), которое выcвечивается при установке эксперта на график. Либо, как его (их) определить.
 
Rizer писал(а) >>
Извиняюсь, а кто-нибудь может подсказать где находится более полная, чем в документации, расшифровка файла WinUser32.mqh? И если возможно код окна (либо всех окон и функций MetaTradera), которое выcвечивается при установке эксперта на график. Либо, как его (их) определить.

В справочнике по Win32API.

Указатель на окно - функция WindowHandle()

 
Integer писал(а) >>

...

а что вот это за функция ?

fTimeFrameName(aTimeFrame)

 
Prival писал(а) >>

а что вот это за функция ?

fTimeFrameName(aTimeFrame)

Это так... макияж

string fTimeFrameName(int arg){
   int v;
      if(arg==0){
         v=Period();
      }
      else{
         v=arg;
      }
      switch(v){
         case 0:
            return("0");
         case 1:
            return("M1");
         case 5:
            return("M5");                  
         case 15:
            return("M15");
         case 30:
            return("M30");             
         case 60:
            return("H1");
         case 240:
            return("H4");                  
         case 1440:
            return("D1");
         case 10080:
            return("W1");          
         case 43200:
            return("MN1");
         default:
            return("M"+arg);          
      }
}
 
Всем спасибо, проблему решил очень просто - через смену периодов:
PostMessageA(hDlgWnd,WM_COMMAND,33138,0);// - таймфрейм М5
PostMessageA(hDlgWnd,WM_COMMAND,33139,0);// - таймфрейм М15
 
//+---------------------------------------------------------------------------------------------+
//| Функция отслеживаеn подгузку истории (изменение истории) по различным валютным парам        |
//| автор: Integer -> https://forum.mql4.com/ru/20982                                            |
//+---------------------------------------------------------------------------------------------+

bool fCheckDataUpdate(string aSymbol,int aTimeFrame){
   datetime daytimes[];
   int   res;
      if(iClose(aSymbol,aTimeFrame,0)==0){
         Print("Нет данных "+aSymbol+" "+fTimeFrameName(aTimeFrame)+" (символа нет в обзоре рынка или первое обращение к символу)");
         return(false);
      }
   res=ArrayCopySeries(daytimes,MODE_TIME,aSymbol,aTimeFrame);
      if(GetLastError()==4066){
         Print("Данные "+aSymbol+" "+fTimeFrameName(aTimeFrame)+" в процессе обновления");
         return(false);
      }
      Print("Загружено по символу ", aSymbol," период ",fTimeFrameName(aTimeFrame)," данных ",res);
   return(true);      
}

а вот я не решил

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35359

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 8

История 8 минуток и все ((

И как с этим работать ((

 
Prival писал(а) >>

а вот я не решил

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 8

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35359

2009.04.06 12:48:36 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 8

История 8 минуток и все ((

И как с этим работать ((

Сделайте еще проверку:

if(res<Какого-то значения){

Print("Пока загружено недостаточное количество баров");
return(false);

}

Действительно на графиках по 8 баров? Может быть сначала лучше iBars() проверить.

 

станно както загружаються только то что собрал он лайн

2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 212
2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURNZD период M1 данных 212
2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURJPY период M1 данных 212
2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCHF период M1 данных 212
2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURAUD период M1 данных 35563
2009.04.06 16:12:15 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURGBP период M1 данных 212

Что то никак не получается подгрузить необходимые данные. не открывая график этой пары ((

iBar() тоже дает только то что собрал он лайн.

2009.04.06 16:19:20 Sp_mylti_EUR EURUSD,M1: Вызов iBars() по символуEURCAD период M1 = 219
2009.04.06 16:19:20 Sp_mylti_EUR EURUSD,M1: Загружено по символу EURCAD период M1 данных 219

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