ограничение на длину логического выражения???!!!

 

Использовал конструкцию:

for(int i=0; i<OrdersTotal(); i++) {

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {

if(OrderSymbol()==Symbol()&& OrderMagicNumber()==MAGICNUM && OrderType()<2) {

Print(OrderType());

.....здесь еще один if с очень длинным логическим выражением...

Print(OrderType());

}}}

так вот первый Print(OrderType()) выдает правильное значение, а второй "как бог на душу положит".

Даже если исключить этот if из цепочки, а просто попробовать Print() с этим выражением, снова происходит сбой.

Как вообще может тип выбранного ордера поменяться, если другого OrderSelect() нет???!!!

Видимо есть какое то ограничение на длину оператора?

 
Этот воппрос уже поднимался здесь другим человеком, но ответ так и не получен((
 

Добавьте в принт еще и номер тикета и посмотрите в какой последовательности он перебирает номера.

И еще как совет - перегрузите терминал.

 

Все, разобрался сам.))

Внутри был вызов функции с вызовом еще одного OrderSelect(). Он и менял значение.

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