когда Вы выбираете ордер по тикету, то он может быть выбран либо из списка открытых ордеров, либо из истории. закрытый ордер однозначно определяется по ненулевому OrderCloseTime
да. уже попробовал... просто думается, что понятнее для юзера было бы если б OrderSelect вернул не просто TRUE или FALSE а статус ордера
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
если номер ордера есть, а самого ордера нет (ТО ЕСТЬ Я ОБРАЩАЮСЬ К ОРДЕРУ, КОТОРЫЙ БЫЛ!!!!!, но он закрыт или отменён)
это значит, что произошёл либо StopLoss либо TakeProfit либо ордер был закрыт вручную
if(!OrderSelect(NOrd,SELECT_BY_TICKET))
{
//в этом случае OrderSelect почему-то возвращает TRUE -------------------------------------------------
//и GetLastError == 0!!!!! -------------------------------------------------
Print("Ордер " + DoubleToStr(NOrd,0)+" по символу "+Symbol()+" найден не был");
NOrd=0;
GlobalVariableDel(gvNOrdName);
Print("Переменные по символу "+Symbol()+" удалены");
}
Иными словами - ПОЧЕМУ ЕСТЬ ОРДЕР, КОТОРОГО НЕТ и КАК СДЕЛАТЬ ТАК, ЧТОБЫ ЕГО НЕ БЫЛО или КАК РАСПОЗНАТЬ, ЧТО ЭТОТ ОРДЕР УДАЛЁН?