void AllClose(){ for(int i=OrdersTotal()-1;i>=0;i--){ if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID), MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black); else if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK), MarketInfo(OrderSymbol(),MODE_DIGITS)),10,Black); }}}
чтоб удобнее читать
ордер закрывается по текущей цене, которая есть в момент подачи запроса.
можешь еще перед запросом делать так
RefreshRates();
чтоб удобнее читать
ордер закрывается по текущей цене, которая есть в момент подачи запроса.
можешь еще перед запросом делать так
RefreshRates() перед запросом - лишнее. Прямо в запросе считываются самые последние данные из MarketInfo(). Вот во время обработки кода возврата торгового сервера, если требуется ожидание, то перед повторным запросом нужно выполнить RefreshRates(), да и то... я не уверен, что в данном случае оно надо - прямо в торговом запросе берутся свежие данные.
Так ведь человек и не сказал какую ошибку он получает. Тогда и гадать смысла не вижу.
В чём глюк-то вы видите?
Насколько я понял, он не видит на графике цену, по которой была закрыта выделенная на скриншоте позиция. Но привязки ко времени нет (хотяб по GMT), названия ДЦ тоже, так что ищем черную кошку в темноте.
Хотя цены такой сегодня вообще не было.
В чём глюк-то вы видите?
поясню. глюк в том что фактическое закрытие происходит по левой цене.
только что удалил все ордера. отключил сову. перезагрузил мт4. открываю ордера руками и опа ордера опять по левой цене
поясню. глюк в том что фактические закрытие происходит по левой цене.
только что удалил все ордера. отключил сову. перезагрузил мт4. открываю ордера руками и опа ордера опять по левой цене
поясню. глюк в том что фактические закрытие происходит по левой цене.
только что удалил все ордера. отключил сову. перезагрузил мт4. открываю ордера руками и опа ордера опять по левой цене
получается что котиры те что видим на графике идут а котиры для торговых операций заклинили
Насколько я понял, он не видит на графике цену, по которой была закрыта выделенная на скриншоте позиция. Но привязки ко времени нет (хотяб по GMT), названия ДЦ тоже, так что ищем черную кошку в темноте.
Хотя цены такой сегодня вообще не было.
а действительно, :-) там же баров нет.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
столкнулся с глюком причину которого не могу понять.
есть идеи? что это и как с этим бороться?
функция клосе использует только фактические цены закрытия полученные запросом маркет инфо
.![](https://c.mql5.com/mql4/forum/2014/02/45678_2_small.png)