1. Направление перебора. Имеет существенное значение, если производится удаление ордеров: при этом меняется нумерация и некоторые ордера могут быть пропущены.
2. Скорость выполнения: условие выполнения цикла (то, что после первой точки с запятой - i<=OrdersTotal(); ) будет проверяться на каждом шаге цикла и на каждом шаге будет осуществляться ненужный вызов функции - а это самая "дорогая" с вычислительной точки зрения операция.
И самое главное: нумерация идет от нулевого элемента. То есть у Вас в обоих случаях выход за пределы массива.
Правильная конструкция :
for(int i=OrdersTotal()-1;i>=0;i--)
к тому же универсальная
Удачи.
При удалении ордера требуется организовать цикл с начала и с обновлением данных. Ордер удалили, количество ордеров изменилось, изменился порядковый номер....
Направление цикла важно, если требуется найти, например, последний ордер. Нашли ордер, прервали цикл...
for(int i=OrdersTotal()-1;i>=0;i--)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья ! подскажите в чем смысловая разница в коде