if(OrderType() == OP_SELL){
if(Bid + step <= sprice){
if(OrderStopLoss() >= Bid + step){
sl = Bid + step;
if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) == false)
Print("Неудалось модифицировать Стоп Лосс продаж!");
}
}
}
Если в этом участке закрыть строчку
if(OrderStopLoss() >= Bid + step){
то происходит модификация, но стоп лосс не стабильный и постоянно скачет за ценой.
Так в чем проблема???
Так в чем проблема???
Наверное в том, что Вы поленились по шагам всё это запустить.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
sprice = NormalizeDouble(price / orderlots, Digits);
for(int i = OrdersTotal(); i >= 0; i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic){
if(OrderType() == OP_SELL){
if(Bid + step <= sprice){
if(OrderStopLoss() >= Bid + step){
sl = Bid + step;
if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) == false)
Print("Неудалось модифицировать Стоп Лосс продаж!");
}
}
}
if(OrderType() == OP_BUY){
if(Ask - step >= sprice){
if(OrderStopLoss() <= Ask - step){
sl = Ask - step;
if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) == false)
Print("Неудалось модифицировать Стоп Лосс покупок!");
}
}
}
}
}
}
Изначально стоп лосс равен 0. Модифицируется при условии что цена пошла в нашу сторону. Используется сетка.
if(OrderType() == OP_SELL){
if(Bid + step <= sprice){
if(OrderStopLoss() >= Bid + step){
sl = Bid + step;
if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) == false)
Print("Неудалось модифицировать Стоп Лосс продаж!");
}
}
}
Этот участок отказывается работать. Нет ошибки. Просто не модифицирует ордера и все. Хотя...
if(OrderType() == OP_BUY){
if(Ask - step >= sprice){
if(OrderStopLoss() <= Ask - step){
sl = Ask - step;
if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) == false)
Print("Неудалось модифицировать Стоп Лосс покупок!");
}
}
}
здесь все в прядке. Модифицируется и один ордер и сетка...
Так в чем проблема???
P.S. sprice - средняя цена.