проблема с циклом - страница 3

 
Sergey Savinkin:

Он весь не нужен. Начало и конец. Или просто

Print(buff_MACD_main[0]);

Print(buff_MACD_main[ArraySize(buff_MACD_main)-1]);

Смотрим, что в начале и что в конце. Сравниваем с графиком. Индексация становится понятна.

В случае печати всего массива можно было еще и увидеть соседние значения, если знать значение i
   if(ArrayIsSeries(buff_MACD_main)==false) ArraySetAsSeries(buff_MACD_main,true);
   if(ArrayIsSeries(buff_MACD_signal)==false) ArraySetAsSeries(buff_MACD_signal,true); 

Сделал так, ничего не изменилось.

Наоборот тоже.

Посмотрел так. Таймсерия.

Print(buff_MACD_main[0]);

Print(buff_MACD_main[1])
 

 Проблему можно сказать решил, на мой взгляд извращенным способом.

В цикле следующей функции увеличиваю инициализацию на 1 по сравнению с предыдущей.

Всем спасибо.

 
Vitaly Stepanov:

 Проблему можно сказать решил, на мой взгляд извращенным способом.

В цикле следующей функции увеличиваю инициализацию на 1 по сравнению с предыдущей.

Всем спасибо.

И попал... 

 
Алексей Тарабанов:

И попал... 

Чудом!

 
Vitaly Stepanov:

Чудом!

Ну, да. Другой вариант: 

 if( LastBottomBar < 1 ) LastBottomTime=0;       // Время последних фракталов

   else LastBottomTime=Time[LastBottomBar];

   if( LastTopBar < 1 )    LastTopTime   =0;

   else LastTopTime   =Time[LastTopBar];

   if( LastUpBar < 1 )     LastUpTime    =0;       // Время последних откатов

   else LastUpTime    =Time[LastUpBar];

   if( LastDownBar < 1 )   LastDownTime  =0;

   else LastDownTime  =Time[LastDownBar];

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