ooparadise:
Потому, что нужно закрывать ордера/позиции, начиная с последней.
Наткнулся на проблему, когда MT возвращает определенное количество ордеров или позиций, но не по всем может вернуть тикет, поэтому не получается закрыть позицию или удалить ордер. Приходится в цикле повторять действие несколько раз.
Этот код НЕ работает (остаются некоторые позиции и ордера):
Этот код работает (все позиции закрываются и все ордера удаляются):
Почему мне нужно в цикле несколько раз брать ордера и позиции, чтобы точно закрыть все?
Более правильный перебор всех открытых позиций и отложенных ордеров.
for(int i=OrdersTotal()-1; i>=0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) //ордер предварительно должен быть выбран { ......... //Любые действия с ордерами } }

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Наткнулся на проблему, когда MT возвращает определенное количество ордеров или позиций, но не по всем может вернуть тикет, поэтому не получается закрыть позицию или удалить ордер. Приходится в цикле повторять действие несколько раз.
Этот код НЕ работает (остаются некоторые позиции и ордера):
Этот код работает (все позиции закрываются и все ордера удаляются):
Почему мне нужно в цикле несколько раз брать ордера и позиции, чтобы точно закрыть все?