Помогите, пожалуйста, разобраться.

 
Доброго всем времени суток.
У меня возникла проблемка.
Хотел написать советник, так, чтобы при инициализации заполнял массивы ближайшими минимальным и максимальным значением цены за период на впадине и горбе мувинга.
Со впадиной всё нормально, а на горбе считать не хочет.
Подскажите, пожалуйста, где я накосячил. Вот код:


//---- input parameters
extern int F=5;

int a=1;
int cntN, cntX;
int ArrayNT[3], ArrayXT[3];
double ArrayNP[3], ArrayXP[3];
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- ВПАДИНА
    for ( ; a<Bars-F; a++)
         {
         if (iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+2)>iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1)<iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a))
             {
             ArrayNP[cntN]=iLow(Symbol(), 0, iLowest(Symbol(), 0, MODE_LOW, 2, a)) ;
             ArrayNT[cntN]=iTime (Symbol(), 0, iLowest(Symbol(), 0, MODE_LOW, 2, a)) ;
             cntN++;
             a=1;
             break;
             }
         }
//---- ГОРБ
    for ( ; a<Bars-F; a++) 
         {
         if (iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+2)<iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1)>iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a))
             {
             ArrayXP[cntX]=iHigh(Symbol(), 0, iHighest(Symbol(), 0, MODE_HIGH, 2, a)) ;
             ArrayXT[cntX]=iTime(Symbol(), 0, iHighest(Symbol(), 0, MODE_HIGH, 2, a)) ;
             cntX++;
             a=1;
             break;
             }
         }
     Comment(ArrayNP[cntN-1],"---",ArrayXP[cntX-1]); /* коммент. для проверки*/
//----
   return(0);
  }
 

Попробуйте заменить условия проверки:

в первом случае

if (iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+2)>iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1) &&

iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1)<iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a))

и во втором

if (iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+2)<iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1) &&

iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a+1) >iMA(NULL,0,F,0,MODE_EMA,PRICE_CLOSE,a))

 
Mislaid:

Попробуйте заменить условия проверки:

   


Спасибо. Точно эта ошибка.
Причина обращения: