Кто знает как работать с iRSIOnArray() в цикле while

 
artem:

Пример: while(iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1))

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

}
происходит зависание.


Если условие выполняется, то будет зависание.

Или надо ограничить количество циклов принудительно

Например:

int i=10;

while(iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1) && i>0)

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

i--;

}

Или надо использовать if

if (iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1))

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

}

Но тогда будет выполняться только один раз.

 
Vinin:
artem:

Пример: while(iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1))

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

}
происходит зависание.


Если условие выполняется, то будет зависание.

Или надо ограничить количество циклов принудительно

Например:

int i=10;

while(iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1) && i>0)

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

i--;

}

Или надо использовать if

if (iRSIOnArray(ExtBuffer1,0,9,0)>iRSIOnArray(ExtBuffer1,0,9,1))

{

ExtBuffer1[0]=ExtBuffer1[0]-25*Point;

}

Но тогда будет выполняться только один раз.

 
А где вопрос?
 
Вроде бы элементарные основы программирования) цикл while будет выполнятся пока выполняется его условие. чтоб не было зависания надо что в какой то момент оно перестало выполнятся или же внутри цикла делать break для принудительного выходи по некоему условию. Или успользуйте цикл for
 
Забудьте про while. При использовании while должна быть гарантия, что выход из цикла произойдет. Обращаясь к ценовым данным нет гарантии, что они присутсвуют и что гарантирован случай когда значение на одном баре больше значения на другом.