Цикл прямой, а должен быть обратным - при прямом будут пропускаться позиции после закрытия одной из них по тралу
Нет проверки на минимальную дистанцию установки стопов (StopLevel) - будут ошибки модификации если стоп окажется ближе к цене, чем минимально-разрешённая дистанция (не забывайте о плавающем спреде)
Может быть ещё что-то - глядел по диагонали - мимоходом, так как вам уже ответили.
ЗЫ. Поглядел ещё:
if (NormalizeDouble(Ask-OrderStopLoss(),Digits)>NormalizeDouble(Trailing,Digits))
вот такая проверка лишена самого смысла проверки с нормализацией, так как вы нормализовали оба значения, а при проверке результат опять не нормализован.
Нужно проверять нормализованную разницу двух double-значений. Вы же сравниваете два нормализованных значения.
Цикл прямой, а должен быть обратным - при прямом будут пропускаться позиции после закрытия одной из них по тралу
Нет проверки на минимальную дистанцию установки стопов (StopLevel) - будут ошибки модификации если стоп окажется ближе к цене, чем минимально-разрешённая дистанция (не забывайте о плавающем спреде)
Может быть ещё что-то - глядел по диагонали - мимоходом, так как вам уже ответили.
ЗЫ. Поглядел ещё:
вот такая проверка лишена самого смысла проверки с нормализацией, так как вы нормализовали оба значения, а при проверке результат опять не нормализован.
Нужно проверять нормализованную разницу двух double-значений. Вы же сравниваете два нормализованных значения.
Вот так?
for (int i = OrdersTotal() - 1; i >= 0; --i)
if (NormalizeDouble((Ask-OrderStopLoss()>Trailing*Point),Digits))
Только так
Спасибо, то что нужно!
Добрый день!
Подскажите пожалуйста по такому вопросу:
Выставляется отложенный ордер:
А далее на него после открытия пытаюсь сделать трэйлинг:
{ for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol()==Symbol()||OrderMagicNumber()==MagicNumber) if(OrderType()==OP_BUY) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>TrailingStop) { if(OrderStopLoss()<Bid-TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop,OrderTakeProfit(),0,clrRed); } } } } } }Ордер ведь после открытия становится OP_BUY? В чем подвох, почему трэйлинг в таком варианте не срабатывает?
Добрый день!
Подскажите пожалуйста по такому вопросу:
Выставляется отложенный ордер:
А далее на него после открытия пытаюсь сделать трэйлинг:
Ордер ведь после открытия становится OP_BUY? В чем подвох, почему трэйлинг в таком варианте не срабатывает?
Добрый день!
Подскажите пожалуйста по такому вопросу:
Выставляется отложенный ордер:
А далее на него после открытия пытаюсь сделать трэйлинг:
Ордер ведь после открытия становится OP_BUY? В чем подвох, почему трэйлинг в таком варианте не срабатывает?
Неправильно я вопрос задал, извините. Из контекста выдранный.
Специально для проверки трейлинга сделал код, сделки открываются, но трэйлинг не срабатывает, как только не крутил, в тупике(
Неправильно я вопрос задал, извините. Из контекста выдранный.
Специально для проверки трейлинга сделал код, сделки открываются, но трэйлинг не срабатывает, как только не крутил, в тупике(
Ответил на ваш вопрос выше.
Спасибо большое, помогло!
У вас там ещё есть проблемы.
Цикл прямой, а должен быть обратным - при прямом будут пропускаться позиции после закрытия одной из них по тралу
Нет проверки на минимальную дистанцию установки стопов (StopLevel) - будут ошибки модификации если стоп окажется ближе к цене, чем минимально-разрешённая дистанция (не забывайте о плавающем спреде)
Может быть ещё что-то - глядел по диагонали - мимоходом, так как вам уже ответили.
ЗЫ. Поглядел ещё:
вот такая проверка лишена самого смысла проверки с нормализацией, так как вы нормализовали оба значения, а при проверке результат опять не нормализован.
Нужно проверять нормализованную разницу двух double-значений. Вы же сравниваете два нормализованных значения.
У вас там ещё есть проблемы.
Цикл прямой, а должен быть обратным - при прямом будут пропускаться позиции после закрытия одной из них по тралу
Нет проверки на минимальную дистанцию установки стопов (StopLevel) - будут ошибки модификации если стоп окажется ближе к цене, чем минимально-разрешённая дистанция (не забывайте о плавающем спреде)
Может быть ещё что-то - глядел по диагонали - мимоходом, так как вам уже ответили.
ЗЫ. Поглядел ещё:
вот такая проверка лишена самого смысла проверки с нормализацией, так как вы нормализовали оба значения, а при проверке результат опять не нормализован.
Нужно проверять нормализованную разницу двух double-значений. Вы же сравниваете два нормализованных значения.
Вот так?
the size of local variables is too large (more than 512kb)Что значит ошибка?У меня функция с двумя объектами:
В одном из классов есть структура с более чем 4000 полей (в основном enums).
Что делать с этой ошибкой?