Вы наверное хотели использовать эту функцию 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(...) требуется для дозакрытия оставшихся частей, для которых не хватило встречных объёмов.
Проверить возможность закрытия встречными:
Да, Вы правы, проверку можно поставить. Но лишь для ускорения процесса, т.к. при отсутствие такой возможности скрипт просто закроет все позиции по одной.
"При этом не происходит "уплаты" двойного спреда, продажа закрывается покупкой по Ask, покупка закрывается продажей по Bid. Затем скрипт закрывает все оставшиеся ордера."
Очень интересная фраза. Если вы продали, значит открыли ордер по Bid и с вас автоматом удержали спред , т.е. разницу между Ask и Bid. Далее, если вы переворачиваете ордер SELL , то он в любом случае закрывается по цене Bid и никто вам спред этого ордера не вернет. Затем вы в тот же момент покупаете по цене Ask и с вас автоматом удерживается спред - та же разница между Ask и Bid, которую тоже вам никто никогда не вернет. Так что открыли SELL - закрыли SELL - открыли BUY (перевернули) - в итоге заплатили спред два раза. Фраза о том что не происходит уплаты двойного спреда красивая, но так не может быть , потому что этого не может быть никогда!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Close all orders by opposites:
Два скрипта для закрытия всех ордеров встречными
Автор: Andrey Kaunov