Помогите с локальными минимумами

 
В качестве учебного задания решил найти локальные минимумы за 24-х часовой период. Получается:

for LocalMin=1 to 24 Begin
if l[LocalMin+1]<l[LocalMin] and l[LocalMin+2]>l[LocalMin+1] then
{
z[LocalMin]=l[LocalMin+1]; //Записываем минимумы в массив Z
};
end;

При такой постановке вопроса получается наслоение от других периодов из-за тикового характера работы программы. После установки перед этим циклом цикла, обнуляющего массив получается нормально - в ненулевых значениях - минимумы.

for LoicalMin=1 to 24 Begin

z[LocalMin]=0; //Обнуляем данные массива
end;

for LocalMin=1 to 24 Begin
if l[LocalMin+1]<l[LocalMin] and l[LocalMin+2]>l[LocalMin+1] then
{
z[LocalMin]=l[LocalMin+1]; //Записываем минимумы в массив Z
};
end;

Но это как-то нерационально. Подскажите пожалуйста, какие есть еще способы. Как вообще такие задачи решают профессионалы. Заранее спасибо.
 
Функцию Lowest не пробовал?
"Returns the shift of the least value over a specific number of periods depending on type."

Разработчикам,
Пример в хелпе Lowest неверный?
double val;
  val = Lowest(NULL,0,MODE_LOW,10,10);


Меню по правой кнопке мыши так и работает некорректно.
(писал раньше)

 
Функцию Lowest не пробовал?
"Returns the shift of the least value over a specific number of periods depending on type."

Разработчикам,
Пример в хелпе Lowest неверный?
double val;
  val = Lowest(NULL,0,MODE_LOW,10,10);


Меню по правой кнопке мыши так и работает некорректно.
(писал раньше)



До нее пока еще не добрался. Попробую сегодня. Спасибо.