Добавьте в принт еще и номер тикета и посмотрите в какой последовательности он перебирает номера.
И еще как совет - перегрузите терминал.
Все, разобрался сам.))
Внутри был вызов функции с вызовом еще одного OrderSelect(). Он и менял значение.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Использовал конструкцию:
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() нет???!!!
Видимо есть какое то ограничение на длину оператора?