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

 

Вы, Барышня, воля Ваша, сами не знаете, что хотите...... Каждое Ваше следующее заявление противоречит предыдущему.

Как в массиве хранить номера от и до и перебирать их на каждом тике?

перебор номеров от 0 - 50 на каждом тике в постоянном цикле?

tf вручную

Это зачем?

Вот посмотрите Today Trend. Может, поможет

http://progi-forex.ru/indicators%20razvorota.html

И не изобретайте велосипед.

 
Natalya Dzerzhinskaya:

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


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

 
Natalya Dzerzhinskaya:

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

Так не работает.
А так ?
int count_line = 50; // число линий
double R, S;

for(int i = 0; i < count_line; i++) 
{
   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;
   }
}
 
Sergey Kolemanov:
А так ?

При проверке Comment("test =  ", i, " "); установлено значение 49 и больше не меняется.

А вот так счетчик крутит от 0 - 50 на каждом тике.

int NumLine=0;

int start(){
   double R,S;
   if(ObjectsTotal()>0)NumLine++;
   if(NumLine>50) NumLine=0;
   for(int i=0;i<ObjectsTotal();i++){
   R=ObjectGetDouble(0,"R"+tf+"l"+(string)NumLine, OBJPROP_PRICE); 
   S=ObjectGetDouble(0,"S"+tf+"l"+(string)NumLine, OBJPROP_PRICE); 
   if(bid!=0.0)
   if(((Bid>R && bid<=R)||(Bid<R && bid>=R))||((Bid>S && bid<=S)||(Bid<S && bid>=S))) {Signal=0;} else Signal=-1;
     }
   bid=Bid;   

Можно даже обратный отсчёт запустить, т.к. ближайшая линия к цене с максимальным номером.

int NumLine=50;

int start(){

   if(ObjectsTotal()>0)NumLine--;
   if(NumLine==0) NumLine=50;


 

значение 49 и больше не меняется

потому что

i < count_line


Если

for(int i = 0; i <= count_line; i++)

будет Вам счастье до 50ти!

 
Artemij:

значение 49 и больше не меняется


Спасибо, но решение уже нашлось.
Утром соображалка работает на 100%))