использование MathMin при нулевом значении переменной...

 
Помогите разрешить проблему: строится индикатор, рисующий, скажем,  зону сопротивления. Зона строится по, допустим 4 инструментам (A,B,C,D). Соответственно, нижняя граница определяется по MathMin (A,B,C,D). Но, проблема в том, что одна или несколько переменных могут для конкретного бара не иметь значений (не рассчитываться). В этом случае, MathMin воспримет значение такой переменной как 0 и, соответственно, построит границу по 0, что есть бессмысленно. Вопрос: можно ли как то хитро задать условие, что MathMin учитывает переменную, только если она не равна 0?
 

перед МатМином сделайте ряд условий:

if (A==0) A=9999;....

потом можно обратно в нули перегнать.

 

Решений может быть много и зависят от конкретных задач.

Напишите свою функцию сортировки, осуществляющую проверку на 0.

 
joo >>:

Решений может быть много и зависят от конкретных задач.

Напишите свою функцию сортировки, осуществляющую проверку на 0.


Это имеется в виду под функцией сортировки?

Top [i] = MathMax(MathMax(MathMax(A[i],B[i]),C[i]),D[i]);         - (верхняя граница - проблем не возникает.........)

Bot [i] = MathMin(MathMin(MathMin(A[i],B[i]),C[i]),D[i]);            - (нижняя граница - если что-либо из A,B,C,D не имеет значение, то :((

Т.о., задача состоит в задании некого условия о том, что если что-либо из A,B,C,D не имеет значения (или равно нулю), то оно не учитывается в расчете MathMin

 
neoclassic >>:

перед МатМином сделайте ряд условий:

if (A==0) A=9999;....

потом можно обратно в нули перегнать.


попытался: нижняя граница отрисовывается хорошо; но верхняя граница в некоторых случаях улетает в небеса..........
 
Надо сначало отсортировать в порядке убывания. Потом сделать лесенку if - else, контроллируя на ноль.
 
Zhunko >>:
 Надо сначало отсортировать в порядке убывания. 


  Допустим, массив будет отсортирован: B,C,A,D.  A и D имеет пустые значения. Что дальше?
Zhunko >>:
 Потом сделать лесенку if - else, контроллируя на ноль.

В массиве могут быть от 0 до 3 пустых значений. Это сколько займет перебор всех возможных вариантов? А если массив состоит из 5 или 6 переменных........

 
Azerus >>:


1. Допустим, массив будет отсортирован: B,C,A,D.  A и D имеет пустые значения. Что дальше?  

2. В массиве могут быть от 0 до 3 пустых значений. Это сколько займет перебор всех возможных вариантов? А если массив состоит из 5 или 6 переменных........

1. Не будут приниматься для расчёта.

2. Придумайте получше. Это работает.

К стати, перебора не будет. Все нулевые не расчитываются. Они отсекаются по условию.

 
Zhunko >>:
2. Придумайте получше. Это работает.

Как-то не по-программерски. Да и решение фтопку.

Заводим промежуточный массив. Очищаем. Если значение подходит, добавляем его в массив. В массиве ищем нужные значения функциями ArrayMinimum, ArrayMaximum.

 
TheXpert >>:

Как-то не по-программерски. Да и решение фтопку.

Заводим промежуточный массив. Очищаем. Если значение подходит, добавляем его в массив. В массиве ищем нужные значения функциями ArrayMinimum, ArrayMaximum.

Зачем? В MQL4 есть готовая функция для сортировки элементов массива.

 
зачем сортировать?
Причина обращения: