Операции с массивами. - страница 2

 
sergant:
Хорошо с 0. Но ведь допустим что значение стоящее под индексом 0 далеко не минимальное, а минимальное значение допустим находится под индексом 4. А на печать выходит 0, а должно 4.

Результат и скрипт


//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//|                                Copyright © 2010, Victor Nicolaev |
//|                                                    vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, Victor Nicolaev"
#property link      "vinin.ucoz.ru"


int start() {
   double MA[100];
   double max, min;
   int imax, imin;
   for (int i=0;i<100;i++) MA[i]=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,i);
   imax=ArrayMaximum(MA);
   imin=ArrayMinimum(MA);
   max=MA[imax];
   min=MA[imin];
   
   Alert("Номер максимального элемента =", imax);
   Alert("Максимальный элемент =", DoubleToStr(max, Digits));
   Alert("Номер минимального элемента =", imin);
   Alert("Минимальный элемент =", DoubleToStr(min, Digits));

   return(0);
}



 
Vinin:

Результат и скрипт


Осилит ли вопрошающий сей цикл? ;)
 
drknn:

Осилит ли вопрошающий сей цикл? ;)


А кто ж его знает. Судя по вопросам - не осилит.

Топикстартеру пока лень заглянуть в докуменацию.

 

Я вот ни когда не делал провокационных поисков. Например, может так случиться, что при проходе по диапазону цен закрытия свеч, две цены будут минимальными и при этом равны друг другу, что тогда вернёт функция ArrayMinimum()? В справке метаэдитора ни чего по этому поводу не говорится. Пробуем:

//+------------------------------------------------------------------+
//|                 Старт работы скрипта                             |
//+------------------------------------------------------------------+
int start(){
  double PR[5];
        int IndexMax=-1,IndexMin=-1;
        PR[0]=1;
        PR[1]=0.5;
        PR[2]=0.5;
        PR[3]=3;
        PR[4]=7;
        IndexMin=ArrayMinimum(PR,WHOLE_ARRAY,0);
        Alert("--------------------------------------------");
  Alert("Позиция минимального значения в массиве = ",IndexMin);
  Alert("--------------------------------------------");
        return(0);
}

Результат выдачи скрипта: "Позиция минимального значения в массиве = 1". Видать перебор значений идёт от начала к концу массива. Ну, хоть знать будем...

Но вот что интересно, как же функция  ArrayMinimum() выбирает, какой же из найденных индексов вернуть вызывающей программе, ведь найденных значений может быть куда более двух?

 
drknn:

Я вот ни когда не делал провокационных поисков. Например, может так случиться, что при проходе по диапазону цен закрытия свеч, две цены будут минимальными и при этом равны друг другу, что тогда вернёт функция ArrayMinimum()? В справке метаэдитора ни чего по этому поводу не говорится. Пробуем:


Никогда не считал такой поиск провокационным. При двух и более равных значениях функция должна возвращать значение с минимальным индексом.
 
drknn:

Я вот ни когда не делал провокационных поисков. Например, может так случиться, что при проходе по диапазону цен закрытия свеч, две цены будут минимальными и при этом равны друг другу, что тогда вернёт функция ArrayMinimum()? В справке метаэдитора ни чего по этому поводу не говорится. Пробуем:

Результат выдачи скрипта: "Позиция минимального значения в массиве = 1"


Ваш скрипт в моих расчетах выдает 0, а никак не 3 допустимое минимальное значение в моем расчетном массиве.
 
sergant:

Ваш скрипт в моих расчетах выдает 0, а никак не 3 допустимое минимальное значение в моем расчетном массиве.

Код в студию!!! ВЕСЬ КОД!!!
 
Vinin:

Результат и скрипт



По этому скрипту Вы расчитываете значения одного мувинга. А мне надо в один массив поместить несколько мувингов с разными периодами и из них выбрать max и min. Такой скрипт можете выдать?
 
sergant:

По этому скрипту Вы расчитываете значения одного мувинга. А мне надо в один массив поместить несколько мувингов с разными периодами и из них выбрать max и min. Такой скрипт можете выдать?

Так и хочется сказать гадость. Ну зачем вы провоцируете людей? Поконфликтовать не с кем, или считаете нас всех тут телепатами?
 
sergant:

По этому скрипту Вы расчитываете значения одного мувинга. А мне надо в один массив поместить несколько мувингов с разными периодами и из них выбрать max и min. Такой скрипт можете выдать?

Может конечно, только переделать его надо будет
Причина обращения: