Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вся деятельность участников MQL5.community. Заходи в раздел Стена!
djalexv
22
djalexv 2012.12.03 09:31 

Ситуация :

есть  эксперт с таким кодом (кусок кода) 

datetime Symb9T(int i) {return (iTime(NULL,outputTimeframe,i));}

int start()
{
   SyntBarBuild();   // эта функция на основе  https://www.mql5.com/ru/articles/1353 пересчитывает и обновляет  значения файла истории  (NULL,outputTimeframe)                   
  
   if (Symb9T(0) == prevtime) 
         {
           return(0);  // здесь, понятное дело, определяем возникновение нового бара в файле истории (NULL,outputTimeframe)                                             
         }
         
   Print(iBars( NULL,outputTimeframe)); 
   prevtime = Symb9T(0); 
   return(0);

}

Т.е . эксперт обновляет файл истории на каждом тике , и при появлении нового бара пишет в лог кол-во баров в этом файле истории. В начале  эксперта  файл истории начинает писаться с сначала. 

Сам файл открыт в виде offline  графика и обновляется скриптом с интервалом (0,5-2 сек) .  Запускается тестирование на периоде M1, в режиме все тики.  

Так вот  кол-во баров этого файла ( iBars( NULL,outputTimeframe)  )  в какой-то монет перестаёт быть доступно для для эксперта . Точнее в лог начинает писаться одна и та же цифра.

При этом на offline графике обновление идет, новые бары формируются правильно.

 Мало того  если,  после того как количество баров  перестаёт изменяться, в окне,  в котором идёт тестирование,    периодически вручную выполнять скрипт следующего содержания :

start
{
 Alert(iBars(NULL,outputTimeframe));
}

то в окне "Alert" кол-во баров также будет расти.  Т.е. из потока скрипта  информация остаётся доступной . 

Количество  баров которые эксперт  видит остаётся постоянным   только если запускать эксперт на тестирование подряд без изменений.  

Изменение эксперта (просто добавление пустой строки),  закрытие - открытие терминала  (с удаление - не удалением истории для тестера ),  другой инструмент,  другой временной промежуток, перенос всего каталога MT на новый пустой диск (думал может просто с системного диска не успевает читать), и т.д.   все это приводит к изменению  кол-ва  доступных баров при новом тестировании, при чем изменения эксперта в виде добавления пустой строки в текст , увеличивает с каждым разом кол-во доступных баров.

 

Возможно кто-нибудь сталкивался с подобным поведением или существует  объяснение данной ситуации? 

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий