Ни разу не увидел ни условия про 25 пунктов, ни как Вы инициализируете переменные i1 и big.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте! Помогите пожалуйста! Функция должна удалить отложенные ордера, когда цена бывает в растояании 25 пунктов,но не удаляет.
extern double selltake=0.001;
extern double selllimittake=0.002;
extern double sellstop=0.0015;
extern double selllimitstop=0.0015;
extern double marketorderslot=0.001;
extern double pendingorderslot=1;
extern int MagicNumber = 1234;
if (...........)
{
OrderSend(Symbol(), OP_SELLLIMIT, pendingorderslot, Bid+0.0015,0 , Bid+0.0015+selllimitstop, Bid+0.0015-selllimittake, NULL,0,0, CLR_NONE );
i1=OrderSend(Symbol(), OP_SELL, marketorderslot, Bid,0 , Bid+sellstop, Bid-selltake,NULL,0,0, CLR_NONE );
big=1;
}
if(big==1)
{
OrderSelect(i1, SELECT_BY_TICKET);
if(Bid<=OrderTakeProfit())
{
for(int k=OrdersTotal()-1;k>=0;k--)
if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES))
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
if(OrderType()==OP_SELLLIMIT)
OrderDelete(OrderTicket());
big=0;
}
}