Как найти максимум и минимум значения осцилятора ?

 
 = array [ ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0) ];
 
ask >>:
За определенный промежуток, если есть функция-поделитесь плиз, или подскажите как сделать. Не соображу что-то никак :(
double max=Osc[ArrayMaximum(Osc,period.i)];
double min=Osc[ArrayMinimum(Osc,period.i)];

где

Osc[] - массив значений осциллятора;

period - кол-во баров для поиска экстремумов осциллятора;

i - индекс бара в цикле пересчета. Для применения в эксперте =0. Тогда будут найдены экстремумы с 0-го по period-1 бара.

 
Svinozavr >>:

где

period - кол-во баров для поиска экстремумов осциллятора;

count ?

 

Спасибо большое всем !

Придется все же возиться с массивами блин :(

А через циклы никак нельзя такое сделать? Чтоб с массивами не мучаться?

 
ask >>:

А через циклы никак нельзя такое сделать? Чтоб с массивами не мучаться?

че, сильно больно?

 
kombat >>:

count ?

ask писал(а) >>
За определенный промежуток...

этот определенный промежуток - period. Ну давайте назовем по-другому: Distance там, или Window. Так понятнее? )))

 
sab1uk >>:

че, сильно больно?

угу, очень...

 
Svinozavr >>:

где

Osc[] - массив значений осциллятора;

period - кол-во баров для поиска экстремумов осциллятора;

i - индекс бара в цикле пересчета. Для применения в эксперте =0. Тогда будут найдены экстремумы с 0-го по period-1 бара.

А все догнался я как сделать... точно, так и сделаю. Спасибо, задам массив как буфер и буду искать.

 

Например, Вильямс%Р можно написать таким образом (цикл пересчета в start()):

for(int i=limit; i>=0; i--) {
   double max=High[ArrayMaximum(High,WRperiod.i)];
   double min=Low[ArrayMinimum(Low,WRperiod.i)]; 
   double delta=MathMax(max-min,Point/1000); // исключение zero divide
   buffWR[i]=100*(Close[i]-min)/delta-100; // вывод рез-та в инд.буфер
  }
 
ask >>:

А все догнался я как сделать... точно, так и сделаю. Спасибо, задам массив как буфер и буду искать.

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

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