Как реализовать большой перебор линий по номерам в одну строчку ?

 

Поиск линий индикатора на графике mql4.
Используется: алерт индикатором, или ордер советником.

Как оформить большой перебор линий в одну строчку?
Требуется только в переборе проверять номер линии от 0 - 50.


R=ObjectGetDouble(0,"R"+tf+"l"+Номер линии от 0-50, OBJPROP_PRICE);
S=ObjectGetDouble(0,"S"+tf+"l"+Номер линии от 0-50, OBJPROP_PRICE);
   for (int i=0;i<ObjectsTotal();i++) {
   double R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20,R21,R22,R23,R24,R25,R26,R27,R28,R29,R30,R31,R32,R33,R34;
   double R35,R36,R37,R38,R39,R40,R41,R42,R43,R44,R45,R46,R47,R48,R49,R50,R51;
//---
   double S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25,S26,S27,S28,S29,S30,S31,S32,S33,S34;
   double S35,S36,S37,S38,S39,S40,S41,S42,S43,S44,S45,S46,S47,S48,S49,S50,S51;
//---
   R1=ObjectGetDouble(0,"R"+tf+"l"+(string)0, OBJPROP_PRICE); 
   R2=ObjectGetDouble(0,"R"+tf+"l"+(string)1, OBJPROP_PRICE); 
   R3=ObjectGetDouble(0,"R"+tf+"l"+(string)2, OBJPROP_PRICE); 
   R4=ObjectGetDouble(0,"R"+tf+"l"+(string)3, OBJPROP_PRICE); 
   R5=ObjectGetDouble(0,"R"+tf+"l"+(string)4, OBJPROP_PRICE); 
   R6=ObjectGetDouble(0,"R"+tf+"l"+(string)5, OBJPROP_PRICE); 
   R7=ObjectGetDouble(0,"R"+tf+"l"+(string)6, OBJPROP_PRICE); 
   R8=ObjectGetDouble(0,"R"+tf+"l"+(string)7, OBJPROP_PRICE); 
   R9=ObjectGetDouble(0,"R"+tf+"l"+(string)8, OBJPROP_PRICE); 
   R10=ObjectGetDouble(0,"R"+tf+"l"+(string)9, OBJPROP_PRICE); 
   R11=ObjectGetDouble(0,"R"+tf+"l"+(string)10, OBJPROP_PRICE); 
   R12=ObjectGetDouble(0,"R"+tf+"l"+(string)11, OBJPROP_PRICE); 
   R13=ObjectGetDouble(0,"R"+tf+"l"+(string)12, OBJPROP_PRICE); 
   R14=ObjectGetDouble(0,"R"+tf+"l"+(string)13, OBJPROP_PRICE); 
   R15=ObjectGetDouble(0,"R"+tf+"l"+(string)14, OBJPROP_PRICE); 
   R16=ObjectGetDouble(0,"R"+tf+"l"+(string)15, OBJPROP_PRICE); 
   R17=ObjectGetDouble(0,"R"+tf+"l"+(string)16, OBJPROP_PRICE); 
   R18=ObjectGetDouble(0,"R"+tf+"l"+(string)17, OBJPROP_PRICE); 
   R19=ObjectGetDouble(0,"R"+tf+"l"+(string)18, OBJPROP_PRICE); 
   R20=ObjectGetDouble(0,"R"+tf+"l"+(string)19, OBJPROP_PRICE); 
   R21=ObjectGetDouble(0,"R"+tf+"l"+(string)20, OBJPROP_PRICE); 
   R22=ObjectGetDouble(0,"R"+tf+"l"+(string)21, OBJPROP_PRICE); 
   R23=ObjectGetDouble(0,"R"+tf+"l"+(string)22, OBJPROP_PRICE); 
   R24=ObjectGetDouble(0,"R"+tf+"l"+(string)23, OBJPROP_PRICE); 
   R25=ObjectGetDouble(0,"R"+tf+"l"+(string)24, OBJPROP_PRICE); 
   R26=ObjectGetDouble(0,"R"+tf+"l"+(string)25, OBJPROP_PRICE); 
   R27=ObjectGetDouble(0,"R"+tf+"l"+(string)26, OBJPROP_PRICE); 
   R28=ObjectGetDouble(0,"R"+tf+"l"+(string)27, OBJPROP_PRICE); 
   R29=ObjectGetDouble(0,"R"+tf+"l"+(string)28, OBJPROP_PRICE); 
   R30=ObjectGetDouble(0,"R"+tf+"l"+(string)29, OBJPROP_PRICE); 
   R31=ObjectGetDouble(0,"R"+tf+"l"+(string)30, OBJPROP_PRICE); 
   R32=ObjectGetDouble(0,"R"+tf+"l"+(string)31, OBJPROP_PRICE); 
   R33=ObjectGetDouble(0,"R"+tf+"l"+(string)32, OBJPROP_PRICE); 
   R34=ObjectGetDouble(0,"R"+tf+"l"+(string)33, OBJPROP_PRICE); 
   R35=ObjectGetDouble(0,"R"+tf+"l"+(string)34, OBJPROP_PRICE); 
   R36=ObjectGetDouble(0,"R"+tf+"l"+(string)35, OBJPROP_PRICE); 
   R37=ObjectGetDouble(0,"R"+tf+"l"+(string)36, OBJPROP_PRICE); 
   R38=ObjectGetDouble(0,"R"+tf+"l"+(string)37, OBJPROP_PRICE); 
   R39=ObjectGetDouble(0,"R"+tf+"l"+(string)38, OBJPROP_PRICE); 
   R40=ObjectGetDouble(0,"R"+tf+"l"+(string)39, OBJPROP_PRICE); 
   R41=ObjectGetDouble(0,"R"+tf+"l"+(string)40, OBJPROP_PRICE); 
   R42=ObjectGetDouble(0,"R"+tf+"l"+(string)41, OBJPROP_PRICE); 
   R43=ObjectGetDouble(0,"R"+tf+"l"+(string)42, OBJPROP_PRICE); 
   R44=ObjectGetDouble(0,"R"+tf+"l"+(string)43, OBJPROP_PRICE); 
   R45=ObjectGetDouble(0,"R"+tf+"l"+(string)44, OBJPROP_PRICE); 
   R46=ObjectGetDouble(0,"R"+tf+"l"+(string)45, OBJPROP_PRICE); 
   R47=ObjectGetDouble(0,"R"+tf+"l"+(string)46, OBJPROP_PRICE); 
   R48=ObjectGetDouble(0,"R"+tf+"l"+(string)47, OBJPROP_PRICE); 
   R49=ObjectGetDouble(0,"R"+tf+"l"+(string)48, OBJPROP_PRICE); 
   R50=ObjectGetDouble(0,"R"+tf+"l"+(string)49, OBJPROP_PRICE); 
   R51=ObjectGetDouble(0,"R"+tf+"l"+(string)50, OBJPROP_PRICE); 
//---
   S1=ObjectGetDouble(0,"S"+tf+"l"+(string)0, OBJPROP_PRICE); 
   S2=ObjectGetDouble(0,"S"+tf+"l"+(string)1, OBJPROP_PRICE); 
   S3=ObjectGetDouble(0,"S"+tf+"l"+(string)2, OBJPROP_PRICE); 
   S4=ObjectGetDouble(0,"S"+tf+"l"+(string)3, OBJPROP_PRICE); 
   S5=ObjectGetDouble(0,"S"+tf+"l"+(string)4, OBJPROP_PRICE); 
   S6=ObjectGetDouble(0,"S"+tf+"l"+(string)5, OBJPROP_PRICE); 
   S7=ObjectGetDouble(0,"S"+tf+"l"+(string)6, OBJPROP_PRICE); 
   S8=ObjectGetDouble(0,"S"+tf+"l"+(string)7, OBJPROP_PRICE); 
   S9=ObjectGetDouble(0,"S"+tf+"l"+(string)8, OBJPROP_PRICE); 
   S10=ObjectGetDouble(0,"S"+tf+"l"+(string)9, OBJPROP_PRICE); 
   S11=ObjectGetDouble(0,"S"+tf+"l"+(string)10, OBJPROP_PRICE); 
   S12=ObjectGetDouble(0,"S"+tf+"l"+(string)11, OBJPROP_PRICE); 
   S13=ObjectGetDouble(0,"S"+tf+"l"+(string)12, OBJPROP_PRICE); 
   S14=ObjectGetDouble(0,"S"+tf+"l"+(string)13, OBJPROP_PRICE); 
   S15=ObjectGetDouble(0,"S"+tf+"l"+(string)14, OBJPROP_PRICE); 
   S16=ObjectGetDouble(0,"S"+tf+"l"+(string)15, OBJPROP_PRICE); 
   S17=ObjectGetDouble(0,"S"+tf+"l"+(string)16, OBJPROP_PRICE); 
   S18=ObjectGetDouble(0,"S"+tf+"l"+(string)17, OBJPROP_PRICE); 
   S19=ObjectGetDouble(0,"S"+tf+"l"+(string)18, OBJPROP_PRICE); 
   S20=ObjectGetDouble(0,"S"+tf+"l"+(string)19, OBJPROP_PRICE); 
   S21=ObjectGetDouble(0,"S"+tf+"l"+(string)20, OBJPROP_PRICE); 
   S22=ObjectGetDouble(0,"S"+tf+"l"+(string)21, OBJPROP_PRICE); 
   S23=ObjectGetDouble(0,"S"+tf+"l"+(string)22, OBJPROP_PRICE); 
   S24=ObjectGetDouble(0,"S"+tf+"l"+(string)23, OBJPROP_PRICE); 
   S25=ObjectGetDouble(0,"S"+tf+"l"+(string)24, OBJPROP_PRICE); 
   S26=ObjectGetDouble(0,"S"+tf+"l"+(string)25, OBJPROP_PRICE); 
   S27=ObjectGetDouble(0,"S"+tf+"l"+(string)26, OBJPROP_PRICE); 
   S28=ObjectGetDouble(0,"S"+tf+"l"+(string)27, OBJPROP_PRICE); 
   S29=ObjectGetDouble(0,"S"+tf+"l"+(string)28, OBJPROP_PRICE); 
   S30=ObjectGetDouble(0,"S"+tf+"l"+(string)29, OBJPROP_PRICE); 
   S31=ObjectGetDouble(0,"S"+tf+"l"+(string)30, OBJPROP_PRICE); 
   S32=ObjectGetDouble(0,"S"+tf+"l"+(string)31, OBJPROP_PRICE); 
   S33=ObjectGetDouble(0,"S"+tf+"l"+(string)32, OBJPROP_PRICE); 
   S34=ObjectGetDouble(0,"S"+tf+"l"+(string)33, OBJPROP_PRICE); 
   S35=ObjectGetDouble(0,"S"+tf+"l"+(string)34, OBJPROP_PRICE); 
   S36=ObjectGetDouble(0,"S"+tf+"l"+(string)35, OBJPROP_PRICE); 
   S37=ObjectGetDouble(0,"S"+tf+"l"+(string)36, OBJPROP_PRICE); 
   S38=ObjectGetDouble(0,"S"+tf+"l"+(string)37, OBJPROP_PRICE); 
   S39=ObjectGetDouble(0,"S"+tf+"l"+(string)38, OBJPROP_PRICE); 
   S40=ObjectGetDouble(0,"S"+tf+"l"+(string)39, OBJPROP_PRICE); 
   S41=ObjectGetDouble(0,"S"+tf+"l"+(string)40, OBJPROP_PRICE); 
   S42=ObjectGetDouble(0,"S"+tf+"l"+(string)41, OBJPROP_PRICE); 
   S43=ObjectGetDouble(0,"S"+tf+"l"+(string)42, OBJPROP_PRICE); 
   S44=ObjectGetDouble(0,"S"+tf+"l"+(string)43, OBJPROP_PRICE); 
   S45=ObjectGetDouble(0,"S"+tf+"l"+(string)44, OBJPROP_PRICE); 
   S46=ObjectGetDouble(0,"S"+tf+"l"+(string)45, OBJPROP_PRICE); 
   S47=ObjectGetDouble(0,"S"+tf+"l"+(string)46, OBJPROP_PRICE); 
   S48=ObjectGetDouble(0,"S"+tf+"l"+(string)47, OBJPROP_PRICE); 
   S49=ObjectGetDouble(0,"S"+tf+"l"+(string)48, OBJPROP_PRICE); 
   S50=ObjectGetDouble(0,"S"+tf+"l"+(string)49, OBJPROP_PRICE); 
   S51=ObjectGetDouble(0,"S"+tf+"l"+(string)50, OBJPROP_PRICE); 
 
   if(bid!=0)
   if(((Bid>R1 && bid<=R1)||(Bid<R1 && bid>=R1))||((Bid>R2 && bid<=R2)||(Bid<R2 && bid>=R2))
   ||((Bid>R3 && bid<=R3)||(Bid<R3 && bid>=R3))||((Bid>R4 && bid<=R4)||(Bid<R4 && bid>=R4))
   ||((Bid>R5 && bid<=R5)||(Bid<R5 && bid>=R5))||((Bid>R6 && bid<=R6)||(Bid<R6 && bid>=R6))
   ||((Bid>R7 && bid<=R7)||(Bid<R7 && bid>=R7))||((Bid>R8 && bid<=R8)||(Bid<R8 && bid>=R8))
   ||((Bid>R9 && bid<=R9)||(Bid<R9 && bid>=R9))||((Bid>R10 && bid<=R10)||(Bid<R10 && bid>=R10))
   ||((Bid>R11 && bid<=R11)||(Bid<R11 && bid>=R11))||((Bid>R12 && bid<=R12)||(Bid<R12 && bid>=R12))
   ||((Bid>R13 && bid<=R13)||(Bid<R13 && bid>=R13))||((Bid>R14 && bid<=R14)||(Bid<R14 && bid>=R14))
   ||((Bid>R15 && bid<=R15)||(Bid<R15 && bid>=R15))||((Bid>R16 && bid<=R16)||(Bid<R16 && bid>=R16))
   ||((Bid>R17 && bid<=R17)||(Bid<R17 && bid>=R17))||((Bid>R18 && bid<=R18)||(Bid<R18 && bid>=R18))
   ||((Bid>R19 && bid<=R19)||(Bid<R19 && bid>=R19))||((Bid>R20 && bid<=R20)||(Bid<R20 && bid>=R20))
   ||((Bid>R21 && bid<=R21)||(Bid<R21 && bid>=R21))||((Bid>R22 && bid<=R22)||(Bid<R22 && bid>=R22))
   ||((Bid>R23 && bid<=R23)||(Bid<R23 && bid>=R23))||((Bid>R24 && bid<=R24)||(Bid<R24 && bid>=R24))
   ||((Bid>R25 && bid<=R25)||(Bid<R25 && bid>=R25))||((Bid>R26 && bid<=R26)||(Bid<R26 && bid>=R26))
   ||((Bid>R27 && bid<=R27)||(Bid<R27 && bid>=R27))||((Bid>R28 && bid<=R28)||(Bid<R28 && bid>=R28))
   ||((Bid>R29 && bid<=R29)||(Bid<R29 && bid>=R29))||((Bid>R30 && bid<=R30)||(Bid<R30 && bid>=R30))
   ||((Bid>R31 && bid<=R31)||(Bid<R31 && bid>=R31))||((Bid>R32 && bid<=R32)||(Bid<R32 && bid>=R32))
   ||((Bid>R33 && bid<=R33)||(Bid<R33 && bid>=R33))||((Bid>R34 && bid<=R34)||(Bid<R34 && bid>=R34))
   ||((Bid>R35 && bid<=R35)||(Bid<R35 && bid>=R35))||((Bid>R36 && bid<=R36)||(Bid<R36 && bid>=R36))
   ||((Bid>R37 && bid<=R37)||(Bid<R37 && bid>=R37))||((Bid>R38 && bid<=R38)||(Bid<R38 && bid>=R38))
   ||((Bid>R39 && bid<=R39)||(Bid<R39 && bid>=R39))||((Bid>R40 && bid<=R40)||(Bid<R40 && bid>=R40))
   ||((Bid>R41 && bid<=R41)||(Bid<R41 && bid>=R41))||((Bid>R42 && bid<=R42)||(Bid<R42 && bid>=R42))
   ||((Bid>R43 && bid<=R43)||(Bid<R43 && bid>=R43))||((Bid>R44 && bid<=R44)||(Bid<R44 && bid>=R44))
   ||((Bid>R45 && bid<=R45)||(Bid<R45 && bid>=R45))||((Bid>R46 && bid<=R46)||(Bid<R46 && bid>=R46))
   ||((Bid>R47 && bid<=R47)||(Bid<R47 && bid>=R47))||((Bid>R48 && bid<=R48)||(Bid<R48 && bid>=R48))
   ||((Bid>R49 && bid<=R49)||(Bid<R49 && bid>=R49))||((Bid>R50 && bid<=R50)||(Bid<R50 && bid>=R50))
   ||((Bid>R51 && bid<=R51)||(Bid<R51 && bid>=R51))
//---
   ||((Bid>S1 && bid<=S1)||(Bid<S1 && bid>=S1))||((Bid>S2 && bid<=S2)||(Bid<S2 && bid>=S2))
   ||((Bid>S3 && bid<=S3)||(Bid<S3 && bid>=S3))||((Bid>S4 && bid<=S4)||(Bid<S4 && bid>=S4))
   ||((Bid>S5 && bid<=S5)||(Bid<S5 && bid>=S5))||((Bid>S6 && bid<=S6)||(Bid<S6 && bid>=S6))
   ||((Bid>S7 && bid<=S7)||(Bid<S7 && bid>=S7))||((Bid>S8 && bid<=S8)||(Bid<S8 && bid>=S8))
   ||((Bid>S9 && bid<=S9)||(Bid<S9 && bid>=S9))||((Bid>S10 && bid<=S10)||(Bid<S10 && bid>=S10))
   ||((Bid>S11 && bid<=S11)||(Bid<S11 && bid>=S11))||((Bid>S12 && bid<=S12)||(Bid<S12 && bid>=S12))
   ||((Bid>S13 && bid<=S13)||(Bid<S13 && bid>=S13))||((Bid>S14 && bid<=S14)||(Bid<S14 && bid>=S14))
   ||((Bid>S15 && bid<=S15)||(Bid<S15 && bid>=S15))||((Bid>S16 && bid<=S16)||(Bid<S16 && bid>=S16))
   ||((Bid>S17 && bid<=S17)||(Bid<S17 && bid>=S17))||((Bid>S18 && bid<=S18)||(Bid<S18 && bid>=S18))
   ||((Bid>S19 && bid<=S19)||(Bid<S19 && bid>=S19))||((Bid>S20 && bid<=S20)||(Bid<S20 && bid>=S20))
   ||((Bid>S21 && bid<=S21)||(Bid<S21 && bid>=S21))||((Bid>S22 && bid<=S22)||(Bid<S22 && bid>=S22))
   ||((Bid>S23 && bid<=S23)||(Bid<S23 && bid>=S23))||((Bid>S24 && bid<=S24)||(Bid<S24 && bid>=S24))
   ||((Bid>S25 && bid<=S25)||(Bid<S25 && bid>=S25))||((Bid>S26 && bid<=S26)||(Bid<S26 && bid>=S26))
   ||((Bid>S27 && bid<=S27)||(Bid<S27 && bid>=S27))||((Bid>S28 && bid<=S28)||(Bid<S28 && bid>=S28))
   ||((Bid>S29 && bid<=S29)||(Bid<S29 && bid>=S29))||((Bid>S30 && bid<=S30)||(Bid<S30 && bid>=S30))
   ||((Bid>S31 && bid<=S31)||(Bid<S31 && bid>=S31))||((Bid>S32 && bid<=S32)||(Bid<S32 && bid>=S32))
   ||((Bid>S33 && bid<=S33)||(Bid<S33 && bid>=S33))||((Bid>S34 && bid<=S34)||(Bid<S34 && bid>=S34))
   ||((Bid>S35 && bid<=S35)||(Bid<S35 && bid>=S35))||((Bid>S36 && bid<=S36)||(Bid<S36 && bid>=S36))
   ||((Bid>S37 && bid<=S37)||(Bid<S37 && bid>=S37))||((Bid>S38 && bid<=S38)||(Bid<S38 && bid>=S38))
   ||((Bid>S39 && bid<=S39)||(Bid<S39 && bid>=S39))||((Bid>S40 && bid<=S40)||(Bid<S40 && bid>=S40))
   ||((Bid>S41 && bid<=S41)||(Bid<S41 && bid>=S41))||((Bid>S42 && bid<=S42)||(Bid<S42 && bid>=S42))
   ||((Bid>S43 && bid<=S43)||(Bid<S43 && bid>=S43))||((Bid>S44 && bid<=S44)||(Bid<S44 && bid>=S44))
   ||((Bid>S45 && bid<=S45)||(Bid<S45 && bid>=S45))||((Bid>S46 && bid<=S46)||(Bid<S46 && bid>=S46))
   ||((Bid>S47 && bid<=S47)||(Bid<S47 && bid>=S47))||((Bid>S48 && bid<=S48)||(Bid<S48 && bid>=S48))
   ||((Bid>S49 && bid<=S49)||(Bid<S49 && bid>=S49))||((Bid>S50 && bid<=S50)||(Bid<S50 && bid>=S50))
   ||((Bid>S51 && bid<=S51)||(Bid<S51 && bid>=S51))) {Signal=0;} else Signal=-1;
     }
 

Требуется только в переборе проверять номер линии от 0 - 50.


всем объектам добавить префикс, например "line_", будут называться: "line_"+"R"+tf+"l"+"_"+Номер линии от 0-50

- открываем цикл перебора объектов 
- смотрим имя первого объекта, есть ли в нём строка "line_"
- если есть, берём из этого имени номер
- определяем это R или S и сравниваем

 

А чем Вам массив не угодил?

S[i] R[i]

 

А можно как готовый пример, а то чего то не складывается в воображении ? 

   for (int i=0;i<ObjectsTotal();i++) {
   double R,S;
//---
   R=ObjectGetDouble(0,"R"+tf+"l"+(string)i, OBJPROP_PRICE);  
   S=ObjectGetDouble(0,"S"+tf+"l"+(string)i, OBJPROP_PRICE);  
 
   if(bid!=0)
   if(((Bid>R && bid<=R)||(Bid<R && bid>=R))||((Bid>S && bid<=S)||(Bid<S && bid>=S))) {Signal=0;} else Signal=-1;
     }
Так не работает.
 
1) tf вводится вручную или кодом? Это важно, т.к., если вручную, то надо делать отдельный массив. Если из кода, то можно просто брать значение переменной.
2) что-то я не пойму, что именно Вы хотите иметь "на выходе"?
 
Artemij:
1) tf вводится вручную или кодом? Это важно, т.к., если вручную, то надо делать отдельный массив. Если из кода, то можно просто брать значение переменной.
2) что-то я не пойму, что именно Вы хотите иметь "на выходе"?

tf вручную

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

 
//например имя объекта "line_R240l_49"

string   prefix="line_";
string   result[];
int      totalObjects=ObjectsTotal();

for(int i=totalObjects-1; i>=0; i--)
  {
    num_line=0;
    string label=ObjectName(i);
    if (StringFind(label,prefix,0)>=0)
      {
      int n=StringSplit(label,'_',result);
      if(n==3) 
         {
         //номер линии
         num_line=IntegerToString(result[2]);
         
         
         if (StringFind(label,"R",0)>=0)
            {
            //сопротивление
            }
         else
            {
            //поддержка
            }
         }
      
      }
   }
 
Taras Slobodyanik:

Тут вообще не понятно.
Если имя линии начинается с R, то причём тут line_

 
Natalya Dzerzhinskaya:

tf вручную

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


Всё равно не понял. Напишите просто результат, который хотите видеть? Перебор номеров и...?

 
Artemij:

Всё равно не понял. Напишите просто результат, который хотите видеть? Перебор номеров и...?


   R=ObjectGetDouble(0,"R"+tf+"l"+(string)0, OBJPROP_PRICE);  
   S=ObjectGetDouble(0,"S"+tf+"l"+(string)0, OBJPROP_PRICE);  

   if(((Bid>R && bid<=R)||(Bid<R && bid>=R))||((Bid>S && bid<=S)||(Bid<S && bid>=S))) {Signal=0;} else Signal=-1;

Цена касается линии и получаем сигнал

(string)0 здесь у каждой линии разный номер

надо сделать перебор номеров от 0-50, т.к. ближайшая к цене линия с номером 22, цена её пробила и она удалилась, далее цена подошла к новой линии и у неё уже номер 17 например.

 

Может как-нибудь вызывать перебор номеров?

void number(){
перебор номеров от 0 - 50
return(перебор номеров)
}
R=ObjectGetDouble(0,"R"+tf+"l"+(string)number(), OBJPROP_PRICE);  
S=ObjectGetDouble(0,"S"+tf+"l"+(string)number(), OBJPROP_PRICE); 
Причина обращения: