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

 

Спсб. Применила эту функцию.

int    maxSymbol_1 =ArrayMaximum(Symbol1, WindowBarsPerChart(),1);

Номер экстремального бара (22)  коммент отобразил правильно:

 

 

Теперь в коммент зарядила числовое значение максимума индикатора на этом баре.

  int    maxSymbol_1 =ArrayMaximum(Symbol1, WindowBarsPerChart(),1);
  int    maxSymbol_2 =ArrayMaximum(Symbol2, WindowBarsPerChart(),1);
  
  double VOLmax = Symbol1[maxSymbol_1];  
  Comment (VOLmax ) ;   
 

И этот параметр тоже отображается  правильно - см. коммент на графике:  0.5457.

О каких  проблемах, sanyooooook,  вы говорите ? 

В чем некорректность моих действий?

 

 
Rita:

Теперь в коммент зарядила числовое значение максимума индикатора на этом баре.

И этот параметр тоже отображается правильно - см. коммент на графике: 0.5457.

О каких проблемах, sanyooooook, вы говорите ?

В чем некорректность моих действий?

Ну, если нет проблем то замечательно.
 

И ещё вопрос, не совсем в тему. Только сейчас обратила внимание, что на шкале индикатора отображаются граничные значения самой шкалы, мин и макс, - см. рис выше :  "0.5906 и -0.3985" соответственно !

Собственно,  они то мне и нужны были изначально! Может я зря "городила огород" с вычислением экстремумов линии индикатора?

Может быть в MQL уже предусмотрена функция, которая возвращает текущие граничные значения ("0.5906 и -0.3985") шкалы окна индикатора ?

 

может и зря

double WindowPriceMax( int index=0) 
Возвращает максимальное значение вертикальной шкалы указанного подокна текущего графика (0-главное окно графика, подокна индикаторов нумеруются с 1). 
Если индекс подокна не указан, то возвращается максимальное значение ценовой шкалы главного окна графика.
См. также WindowPriceMin(), WindowFirstVisibleBar(), WindowBarsPerChart() 
Параметры:
index   -   Индекс подокна текущего графика (0 - основной график цены). 

Пример:
double   top=WindowPriceMax();
double   bottom=WindowPriceMin();
datetime left=Time[WindowFirstVisibleBar()];
int      right_bound=WindowFirstVisibleBar()-WindowBarsPerChart();
if(right_bound<0) right_bound=0;
datetime right=Time[right_bound]+Period()*60;
//----
ObjectCreate("Padding_rect",OBJ_RECTANGLE,0,left,top,right,bottom);
ObjectSet("Padding_rect",OBJPROP_BACK,true);
ObjectSet("Padding_rect",OBJPROP_COLOR,Blue);
WindowRedraw();

 
 
Ок. Понятно. Благодарю всех, кто отвечал на мои вопросы.