как найти ArrayMaximum () и минимальная (), не абсолютные значения? - страница 2

 
Reaper:
Здравствуйте.
Кто-то может помочь мне решить эту "проблему".

ArrayMinimum () и ArrayMaximum () просто возвращают соответственно индекс самым минимальным (маленьких) и самый максимум (самый большой) значение в массив, переданные ему.

Так что дать абсолютной Минимальные и максимальные значения, из массива.

Но что, если один поиск относительного минимума и максимума?Второй минимум, третий и т.д.?

Я имею в виду не маленьких или большая ценность, а второй маленький и второй больше (то есть, если большая ценность составляет 5, второй крупнее 3 и т.д.).

Как это сделать с помощью всего ArrayMaximum () / Минимальная () функции, или просто, как немногие строки кода, не поворачивая с ума 50 строк кода?


Спасибо!

PS: я не вижу никаких других *Простое* решение, чем:
- Использовать такую ​​функцию, чтобы найти абсолютное макс (или минут).
- Как только локализованные он, удаленные из массива
- Reperform поиска: потому что во-первых, макс элемент, удалены, естественно новых макс старый второй

Справочник MQL5 / Стандартная библиотека / Классы для организации данных

  • Sort

    Сортирует массив по указанному вариант

  • Search

    Ищет элемент равный образцу в сортированном массив

  • SearchGreat

    Ищет элемент больше образца в сортированном массив

  • SearchLess

    Ищет элемент меньше образца в сортированном массиве

Копируете данные в массив сортируете в нужном направлении, берёте максимум, ищете элемент меньше, так пять раз, у вас есть пятый элемент :о)

Ищете в оригинальном массиве элемент равный пятому.

 
Yedelkin:

Разве речь шла о таймсериях? (Может, я что-то и пропустил).

И ничего он не "портит". Сначала запоминает tt=massiv[i], затем возвращает massiv[i]=tt. 

Согласитесь, как то это не очень хорошо: тебя попросили найти кошку в комнате, можно было заглянуть и сказать: "вон она!", а ты зашел, наследил, потом протер за собой.

 

 
gdtt:

Согласитесь, как то это не очень хорошо: тебя попросили найти кошку в комнате, можно было заглянуть и сказать: "вон она!", а ты зашел, наследил, потом протер за собой.

Не соглашусь. Потому что логику Вашу не понял. Ну, увидел кошку в комнате; ну, зашёл, наследил, прибил найденную кошку к стене, вытер остатки экзекуции, даже протёр за собой свои следы. И что? Цель-то достигнута. Или Вас беспокоит, что код Карлсона оказался в три раза короче Вашего? - Так это мелочи, сразу бы так и написали.
 

Я местами не догнал товарищи...Какую кошку,кто затер,что затер...

Вопрос был как найти второй максимум.Предложил свое решение...Причем тут еще и честность... 

 
Karlson:

Приветы! У меня так получилось найти второй(к уменьшению) максимум.

 

Казалось бы, хорошая идея.



Работает ли это?

 
Urain:

Справочник MQL5 / Стандартная библиотека / Классы для организации данных

  • Sort

    Сортирует массив по указанному вариант

  • Search

    Ищет элемент равный образцу в сортированном массив

  • SearchGreat

    Ищет элемент больше образца в сортированном массив

  • SearchLess

    Ищет элемент меньше образца в сортированном массиве

Копируете данные в массив сортируете в нужном направлении, берёте максимум, ищете элемент меньше, так пять раз, у вас есть пятый элемент :о)

Ищете в оригинальном массиве элемент равный пятому.




это тоже хорошая идея.

Теперь мы должны установить, что это самый удобный и чистый код и лучший способ для этого возможность.
 

gdtt:
так нечестно. Вы портите содержимое массива - вдруг это таймсерия?.

and

Yedelkin 2011.10.22 11:16 #
gdtt:
Вы портите содержимое массива - вдруг это таймсерия?.

Разве речь шла о таймсериях? (Может, я что-то и пропустил).

И ничего он не "портит". Сначала запоминает tt=massiv[i], затем возвращает massiv[i]=tt.  

Нет, это не timeseries являются, это переменная "long" (using CopyTickVolume), потому что я хочу работать с Volumes.

 
Reaper:

Казалось бы, хорошая идея.



Работает ли это?

Работает.Тут все просто.

Вопрос будет ли применимо у Вас.. 

 
Karlson:

Работает.Тут все просто.

Вопрос будет ли применимо у Вас.. 

Да, конечно, я все еще пытаюсь интегрировать и проверить результат :D

Я спрашивал, если он работает для вас (кажется, из обсуждения, что некоторые пользователи сказал, что это не является допустимым методом? Или перевод плох?)
 

Кажется, что некоторые "разумные" результаты достигаются при Максимальная версия (разумное, я имею в виду

Кажется, что значения choerent, но мне нужно проверить значения и аналогичные тесты).





Для версии Минимальные ()?

это как?

 

 

 

 int j = ArrayMinimum(minim,0,WHOLE_ARRAY); // search index with a maximum
 double zz = minim[j]; // save it in an intermediate variable value
 minim[j] =- 1 * DBL_MIN; // assigns the minimum value
 j=ArrayMinimum(minim,0,WHOLE_ARRAY); // define a new high (second use)
 Print("min: ", minim[j]);
 minim[j] = zz; // return the array index value on a modified, if necessary 

 

или

 int j = ArrayMinimum(minim,0,WHOLE_ARRAY); // search index with a maximum
 double zz = minim[j]; // save it in an intermediate variable value
 minim[j] =- 1 * DBL_MAX; // assigns the minimum value
 j=ArrayMinimum(minim,0,WHOLE_ARRAY); // define a new high (second use)
 Print("min: ", minim[j]);
 minim[j] = zz; // return the array index value on a modified, if necessary   

или

 int j = ArrayMinimum(minim,0,WHOLE_ARRAY); // search index with a maximum
 double zz = minim[j]; // save it in an intermediate variable value
 minim[j] =+ 1 * DBL_MIN; // assigns the minimum value
 j=ArrayMinimum(minim,0,WHOLE_ARRAY); // define a new high (second use)
 Print("min: ", minim[j]);
 minim[j] = zz; // return the array index value on a modified, if necessary   

 

? :D 

 

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