Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 519

 
Vasyl Nosal:

Можно узнать зачем так делать?

int total=OrdersTotal(); 

Дополню, если ордеров много, на каждой итерации цикла будет вызываться функция, а это не экономично.
 
Sergey Gritsay:
Потому что во время выполнения цикла, значение OrdersTotal(); может измениться и можно пропустить ордер или тело цикла глюканет

Alexey Kozitsyn:
Дополню, если ордеров много, на каждой итерации цикла будет вызываться функция, а это не экономично.

 

Вы оба шутите или реально? 

 
Vasyl Nosal:

Alexey Kozitsyn:
Дополню, если ордеров много, на каждой итерации цикла будет вызываться функция, а это не экономично.

 

Вы оба шутите или реально? 

У Вас другая точка зрения?
 

Alexey Kozitsyn:
У Вас другая точка зрения?

for(int i=OrdersTotal()-1; i>=0; i--)

 int i=OrdersTotal()-1

 Это действие выполняется один раз перед первой итерацией. Смысла лепить ещё что нету. Просто увеличиваешь код.

 
Vasyl Nosal:

 в такой конструкции возможно, а вот в такой есть вероятность получить глюк

for(int i=0; i<total; i++)
 
Sergey Gritsay:

 в такой конструкции возможно, а вот в такой есть вероятность получить глюк

:)))))))

На каком основании? 

 

А.

Так всегда перебирайте с конца. 

 
Vasyl Nosal:

В данном случае - да. А в этом случае:

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

}

разница есть. Вы не указали ранее, что имели ввиду. 

 
Vasyl Nosal:

:)))))))

На каком основании? 

 

А.

Так всегда перебирайте с конца. 

Такой метод не всегда подходит. Например, если Вам нужен перебор, начиная с самого раннего ордера.
 
kashi_ann:
Ага, значит вопрос просто в логике. Меня больше беспокоило, что кроме порядка действий, еще нужно учесть время обновления данных на сервере.

Точки остановки естественно использовала.

Видимо всё заново переписать придется, какой то бред получается.

Наконец я поняла в чем было дело))))))))

Как обычно, до смешного просто))

Всего лишь не верное применение отложенных ордеров) цена ушла ниже, а ордер лимитный с ценой покупки выше))) Он просто не мог поставиться по таким условиям)

Добавила постановку "ордера стоп" и вуаля, всё как надо)))) 

 
Alexey Kozitsyn:
Такой метод не всегда подходит. Например, если Вам нужен перебор, начиная с самого раннего ордера.
И когда это может понадобится?
Причина обращения: