В цикле перебираешь ордера, выбираешь очередной для работы, проверяешь тип, проверяешь условие для удаления и ...
AlexeyVik:
В цикле перебираешь ордера, выбираешь очередной для работы, проверяешь тип, проверяешь условие для удаления и ...
В цикле перебираешь ордера, выбираешь очередной для работы, проверяешь тип, проверяешь условие для удаления и ...
Типа такого?
for (int i=0; i < OrdersTotal(); i++) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if ( (OrderSymbol() == Symbol()) ) { if ( (OrderType() == OP_BUYSTOP) && (Bid <= OrderStopLoss())) { OrderDelete(OrderTicket()); continue; } if ( (OrderType() == OP_SELLSTOP) && (Ask >= OrderStopLoss())) { OrderDelete(OrderTicket()); continue; } } }
Memento:
Типа такого?
Почти. Осталось лишь развернуть цикл, проверить успешность выбора ордера и проверить результат удаления:
for (int i = OrdersTotal() - 1; i >= 0; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue; if (OrderSymbol() != Symbol()) continue; if ((OrderType() == OP_BUYSTOP && Bid <= OrderStopLoss()) || (OrderType() == OP_SELLSTOP && Ask >= OrderStopLoss())) { if (!OrderDelete(OrderTicket())) { // здесь продумать реакцию на ошибку удаления } RefreshRates(); } }
Благодарю, буду пробовать.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые программеры, помогите решить задачку. В советник нужно прописать удаление отложек по заданному условию. Пример выставлена отложка sellstop в которой есть сл но цена идет в противоположном направлении, не цепляет отложку и касается уровня сл этого ордера, и в этот момент отложка удаляется.
Условие что то типа если(ордер байстоп и аск>=ордерстоплосс) то удалить отложку. И селлстоп соответственно (ордер селлстоп и бид<=ордерстоплосс) удалить отложку.
Голову уже сломал как правильно это сделать в коде :( и единственное чего смог добиться так это того что ордера начали удаляться но игнорируя условие, то есть на новом тике и селлстопы и байстопы... Может кто уж занимался подобным и сможет направить на путь истинный...