Как искать экстремумы произвольного индикатора на n барах?

 

Тоже этот вопрос вставал неоднократно. Но всё руки не доходили спросить. 

Теперь, надеюсь прояснится вопрос.

Благодарю, Zhunko, за ссыли!

 

... Но при этом не забываем про EMPTY_VALUE, которое много больше нуля и любого вразумительного значения индикатора.

 
EMPTY_VALUE = 0x7FFFFFFF = 2147483647
 

Добрый день всем !

У меня линия индикатора задается в отдельном окне вот так:

int limit=Bars - IndicatorCounted();  
   int k;    for(k = 0; k < limit; k++)   { 
 
 Symbol1[k]= K1*
  (iMA(Symbol_1,Period(),per2,0,ma_method,Price,iBarShift(Symbol_1,0,Time[k],false))-
  iMA(Symbol_1,Period(),per1,0,ma_method,Price,iBarShift(Symbol_1,0,Time[k],false)))  ; 
                                          }
Мне необходимо найти максимум этой линии в окне. По ссылкам выше, я применила функцию
 


int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Поиск элемента с максимальным значением. Функция возвращает позицию максимального элемента в массиве.
Параметры:array[] - Числовой массив, в котором производится поиск.
count - Количество элементов для поиска.
start - Начальный индекс для поиска.

//-------------------------------

Вот так: 

// ищем номер бара с макс. величиной индикаторной линии
int    maxSymbol_1 =ArrayMaximum(Symbol1[k],Bars,1);
    Comment (maxSymbol_1) ;   
     

Однако вместо номера бара - функция возвращает в комменте "-1", - хотя максимальное значение индикаторной линии (ярко-зелен. в нижнем окне)  - примерно на 26-30-м баре - см. рис.

Подскажите, в чем у меня ошибка ?

 

 

))) А сами не догадались? Или это типа проверка?

Зачем [] - квадр. скобки? Ну, вот зачем?)))

 
// ищем номер бара с макс. величиной индикаторной линии
int    maxSymbol_1 =ArrayMaximum(Symbol1[k],Bars,1);
    Comment (maxSymbol_1) ;   
ошибку красным выделил
 
Можете посмотреть, как это сделано в стохастике.
 

Почему здесь ошибка?

Квадратные скобки здесь потому, что -  

//------------------------------------------------

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
Параметры:array[] - Числовой массив, в котором производится поиск.

//---------------------------------------------------------------------

Сейчас уберу скобки.
 

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