Вы наверное хотели использовать эту функцию https://docs.mql4.com/trading/ordercloseby
Так как по вашему коду OrderClose это не закрытие встречным или я что-то не так понял?

- docs.mql4.com
Проверить возможность закрытия встречными:
CLOSEBY_ALLOWED = MarketInfo( SymbolName, MODE_CLOSEBY_ALLOWED );
Вы наверное хотели использовать эту функцию https://docs.mql4.com/trading/ordercloseby
Так как по вашему коду OrderClose это не закрытие встречным или я что-то не так понял?
Всё в порядке, есть там и OrderCloseBy(...), присмотритесь внимательнее ))). OrderClose(...) требуется для дозакрытия оставшихся частей, для которых не хватило встречных объёмов.
Проверить возможность закрытия встречными:
Да, Вы правы, проверку можно поставить. Но лишь для ускорения процесса, т.к. при отсутствие такой возможности скрипт просто закроет все позиции по одной.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Close all orders by opposites:
Два скрипта для закрытия всех ордеров встречными
Автор: Andrey Kaunov