Для какого терминала интересуетесь?
MT4
- docs.mql4.com
мне после того, как сработала ф-ция OrderModify() нада закрыть ордер когда наступят определенный условия или когда сработает стоп лосс.
if(ordersModify) { for(int i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderMagicNumber()!= magicNumber2 || OrderSymbol()!=Symbol()) continue; // если ордер не закрыт (не удален) /if (OrderCloseTime()==0) { if(CloseOrderTwo()) ordersModify = false; } else ordersModify = false; } }
CloseOrderTwo() - закрывает ордера, но если ордер уже закрыт по стоп-лосу, то этот else ordersModify = false; не срабатывает
У открытого OrderCloseTime() равно 0.
не знаю как правильно использовать
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
в этой строке вы уже производите выбор среди открытых ордеров
не знаю как правильно использовать
Раз вы задаете такой вопрос, значит вам известен тикет ордера, других вариантов быть не может. Если известен тикет, выделяем ордер:
if(OrderSelect(SELECT_BY_TICKET)){ if(OrderCloseTime()==0)... }
мне после того, как сработала ф-ция OrderModify() нада закрыть ордер когда наступят определенный условия или когда сработает стоп лосс.
В показанном вами коде выполняется просмотр открытых ордеров, сред них все только открытые ордера. Если после того, как сработала функция модификация, то и надо проверять эти условия. Какую вы там модификацию делаете, те условия и проверять или как-то пометить ордер (глобальной переменной).
Когда сработает стоплосс, то и закрывать уже нечего, стоплосс это тоже закрытие.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования