Проблема с кодом

 
Никак не могу выявить ошибку в логике. Хочу определить максимальное значение цены относительно ряда условий. Буду рад помощи. Спасибо! P.S. переменная cnt имеет значение 3.
  {
                     
   int index =   0;   // индекс экстремума 
 
   double Arr_Pharos [];

   double Level_200;       
//___________________________


   for(int i=1; i<Bars; i++)
   {    
        index=iLowest(NULL,PERIOD_MN1,MODE_LOW,cnt,i);
        
        if(Low[index]<Pharos)             
           {
               if(Low[index]==Low[i+1])
                  {
                    Level_200=Pharos+(Pharos-Low[index]);
                        
                        if(Level_200<iLow(NULL,PERIOD_D1,0))
                            {
                              ArrayResize(Arr_Pharos,i);
                              Arr_Pharos[i]=Level_200;
                              int N = ArrayMaximum(Arr_Pharos,WHOLE_ARRAY,0);
                              Comment(Arr_Pharos[N]); 
                                                                                                                                                                            
                            }
                  }
           }                      
   }   
    
  }
 
BROXIV:
Хочу определить максимальное значение цены относительно ряда условий.
Максимальное значение ищут функции iHighest(...), iHigh(...), Вы же используе iLowest(...),  iLow, т.е. ищите минимальное...
Что за переменная Pharos? 
 
Sergey Kolemanov:
Sergey Kolemanov:
Максимальное значение ищут функции iHighest(...), iHigh(...), Вы же используе iLowest(...),  iLow, т.е. ищите минимальное...
Что за переменная Pharos? 

Pharos -цена уровня, задаваемая пользователем. Для получения требуемых параметров мне нужны минимумы, которые ниже Pharos, чтобы использовать их в расчете. Следуя условиям, значения должны быть ниже Low дня. Из этих значений необходимо выбрать наиболее приближенный к минимуму дня. Отсюда и максимальное значение.


 
BROXIV:

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

Сразу глядя на кусок кода(который в данном виде кстати не воспроизвести) могу сказать:

  • возможно неправильно задаёте размер массива, ошибки при исполнении не будет, но будет много пустых значений
  • нет смысла использовать ArrayMaximum на каждой интеграции цикла, т.к. в промежуточных расчетах полученное значение не используется а через Comment Вы просто физически не успеете посмотреть все полученные значения и увидите только последнее полученное значение, или используйте вместо Comment Print , так хотя бы  можно посмотреть все рассчитанные значения в журнале. 
 
Sergey Kolemanov:

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

Сразу глядя на кусок кода(который в данном виде кстати не воспроизвести) могу сказать:

  • возможно неправильно задаёте размер массива, ошибки при исполнении не будет, но будет много пустых значений
  • нет смысла использовать ArrayMaximum на каждой интеграции цикла, т.к. в промежуточных расчетах полученное значение не используется а через Comment Вы просто физически не успеете посмотреть все полученные значения и увидите только последнее полученное значение, или используйте вместо Comment Print , так хотя бы  можно посмотреть все рассчитанные значения в журнале. 

Додумал наконец-то. Все работает. Спасибо за участие!

 
BROXIV:

Додумал наконец-то. Все работает...

А вставьте-ка в начало кода вашей программы #property strict, и ужаснитесь тому, как всё не работает :)

В показанном цикле выход за пределы массива точно есть.