Определение текущего местоположения цены относительно объявленных данных

 

Здравствуйте.

Где-то запутался, прошу Вашей помощи . Данный код не возвращает желаемый результат.

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

//+-------------------------------------------------------------------------------+
//| возвращает текущее положение цены относительно указанных значений |
//+-------------------------------------------------------------------------------+
int WherePrice(){
//----
int res=0;
if (Open[1]!=Close[1] == true) {
if (Close[1] - Bid > 0) A = 1; else A= -1; //...
if (Close[2] - Bid > 0) B = 1; else B= -1; //...
if (Close[3] - Bid > 0) C = 1; else C= -1; //...
if (Close[4] - Bid > 0) D = 1; else D= -1; //...
}
res=A+B+C+D;
//----
return(res);
}
 

Почему бы не сделать в цикле?

while(x<(количества точек)){
   if(Close[x]>Bid){a++;}else{a--;}
   x++;
}
return(a);
 

to xrust

Спасибо за ответ.

Но в представленном Вами случае возможно использование только одних и тех же параметров точки. (скажем Close).

Мне же интересно взятие параметров от разных индикаторов, в конкретном месте, и сравнение с текущей ценой.

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

 
while(x<(количество точек)){
   swith(x){
      case 0 : if(любое условие){действие}else{альтернатива} break;
      case 1 : if(любое условие){действие}else{альтернатива} break;
      case 2 : if(любое условие){действие}else{альтернатива} break;
      case 3 : if(любое условие){действие}else{альтернатива} break;
      case 4 : if(любое условие){действие}else{альтернатива} break;
      case 5 : if(любое условие){действие}else{альтернатива} break;
   }
   x++;
}
 

Спасибо большое.

Попробую эту конструкцию в действии :).

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