функции CopyXXX

 

начинают работать криво при долговременной работе терминала.

 проверочный скрипт:

 

datetime Time[];      // массив время
int      acBars=200;        // кол-во бар для расчета сигналов
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(CopyTime(Symbol(),_Period, 0,acBars+1, Time)<acBars+1) {Print("ОШИБКА CopyTime()"); return;}
   Print(TimeToString(Time[0]));
   //
  }

картинка:

 

 

скрипт на печать:

2010.03.12 08:55:59     aProb (EURUSD,M5)       2010.03.11 15:15

 

после перегрузки все ОК.

 

они вообще как то криво работают. даже без долговременной работы.

через раз копируется требуемое число элементов. это относится ко всем CopyXXX

 
zigan писал(а)  :

начинают работать криво при долговременной работе терминала.

 проверочный скрипт:

 

картинка:

 

 

скрипт на печать:

 

после перегрузки все ОК.

 

 

 

Что бы Time[0] содержал время последнего бара, нужно использовать: 

ArraySetAsSeries(Time,true) ;

 

 
uncleVic:

Что бы Time[0] содержал время последнего бара, нужно использовать: 

ArraySetAsSeries(Time,true) ;

 

Да, с проверочным скриптом явная ошибка.

Но вопрос пока не снимается, я не знаю как проверить, но в эксперте  ArraySetAsSeries(Time,true)  присутствует, и до определенного момента Time[0] копируется в начало таймсерии. Но вдруг начинает сдвигаться в глубь таймсерии., причем одновременно работают два терминала с аналогичными экспертами: на одном(Альпари) - сдвигается, на другом(Метаквотс) - нормально копирует. И это происходит довольно редко, трудно отследить.