Это код для закрытия ордера, а не модификации, т.е. он ничего не трейлит.
Я знаю, что для закрытия. Мне это и нужно, только вот почему не закрывает, когда условие выполняется? Вот в чём вопрос.
Я знаю, что для закрытия. Мне это и нужно, только вот почему не закрывает, когда условие выполняется? Вот в чём вопрос.
А почему он должен что-то закрывать. Ордер то еще не выбран
Есть такой вот кусок кода, который наотрез отказывается работать. Не могу понять почему. Этот код находится внутри цикла открытых позиций.
Что скажете?
1. Ордер надо выбрать - функция https://docs.mql4.com/ru/trading/OrderSelect
2. По цене Bid закрываются только ордера OP_BUY
Я же говорю - код внутри цикла открытых позиций, все выбрано, и да - Bid поскольку в конкретном примере код относится к открытой длинной позиции. Вот с начала тогда:
total=OrdersTotal(); for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) { if(TrailingStop>0) { high_price=OrderOpenPrice(); if(Bid>high_price) { high_price=Bid; } if(Bid<(high_price-Point*TrailingStop)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position return(0); // exit } } } else ... далее если шорт... } }
Но конструкция не закрывает открытые позиции. Не могу понять почему.
Я же говорю - код внутри цикла открытых позиций, все выбрано, и да - Bid поскольку в конкретном примере код относится к открытой длинной позиции. Вот с сначала тогда:
Но конструкция не закрывает открытые позиции. Не могу понять почему.
Для вставки кода используйте кнопку SRC
Для вставки кода используйте кнопку SRC
Понял, буду знать. Спасибо.
Давай подумаем как твой код работает
Возьмем вот этот участок
high_price=OrderOpenPrice(); if(Bid>high_price) { high_price=Bid; } if(Bid<(high_price-Point*TrailingStop)) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position return(0); // exit }
Вначале переменной high_price присваивается цена открытия. Если high_price меньше цены Bid, то high_price присваивается Bid.
Второе условие уже не выполняется.
Давай подумаем как твой код работает
Возьмем вот этот участок
Вначале переменной high_price присваивается цена открытия. Если high_price меньше цены Bid, то high_price присваивается Bid.
Второе условие уже не выполняется.
Точно, спасибо. Ошибка в логике. Поймал сам себя за хвост. Буду думать дальше как это реализовать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть такой вот кусок кода, который наотрез отказывается работать. Не могу понять почему. Этот код находится внутри цикла открытых позиций.
Что скажете?