Тогда сделайте следующие конверторы:
1) Максимум/Минимум за(int Период) с программируемым периодом
Например, если расстояние до последнего максимума больше константы1 то период изменить на заданный шаг . Если период меньше константы2 то установить его значение в исходное состояние.