Вариант 1:
На графике цены одни в реальности смотри что отображается в Обзоре рынка;
Бид он и есть Bid. Зачем вызывать через МаркетInfo/ Хотя и так можно.
Наверняка на 4-х знаке используется StopLevel. А возможно и Freezlevel;
for (int i=0;i<=OrdersTotal();i++)
.Здесь потенциальная ошибка. Всего ордеров может быть 5, но по порядковому номеру отсчет начнется с 0. поэтому
либо
for (int i=0;i<=OrdersTotal();i++)
либо
for (int i=0;i<OrdersTotal();i++)
Если не будет соблюдаться вот это правило
if (OrderTakeProfit()==MarketInfo(Symbol(),MODE_BID)+0.0001)
то всегда будет надпись
else Print(" order don't ready to changed need - ",OrderTakeProfit(),"/",MarketInfo(Symbol(),MODE_BID)+0.0001);
Вариант 1:
На графике цены одни в реальности смотри что отображается в Обзоре рынка;
Бид он и есть Bid. Зачем вызывать через МаркетInfo/ Хотя и так можно.
Наверняка на 4-х знаке используется StopLevel. А возможно и Freezlevel;
.Здесь потенциальная ошибка. Всего ордеров может быть 5, но по порядковому номеру отсчет начнется с 0. поэтому
либо
либо
Если не будет соблюдаться вот это правило
то всегда будет надпись
И плюс к этому еще нужно напомнить о правильном сравнении вещественных чисел. Условие:
if (OrderTakeProfit()==MarketInfo(Symbol(),MODE_BID)+0.0001)
далеко не всегда будет срабатывать, даже если в по задумке автора оно должно срабатывать. Я бы это условие переписал так:
if (MathAbs(OrderTakeProfit() - (MarketInfo(Symbol(),MODE_BID)+0.0001)) < Point() / 10) то...
То есть точное соответствие вещественных чисел во многих случаях получить невозможно. Нужно сравнивать их разность с некоторой дельтой. Точность этой дельты выбирается в каждом случае по-разному.
И плюс к этому еще нужно напомнить о правильном сравнении вещественных чисел. Условие:
далеко не всегда будет срабатывать, даже если в по задумке автора оно должно срабатывать. Я бы это условие переписал так:
То есть точное соответствие вещественных чисел во многих случаях получить невозможно. Нужно сравнивать их разность с некоторой дельтой. Точность этой дельты выбирается в каждом случае по-разному.
еще и рынок, редко когда ходит точно по одному пункту - пролетит мимо)
сравнивать надо >=

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал Трэйл для советника, принцип прост - если bid+0.0001==OrderTakeProfit(), ордер модифицируется, повышая takeprofit и stoploss. Проблема в том, что bid "какой то не правильный", посмотрите на скриншоты. В момент закрытия сделок buy по take'у, функция пишет, что бид на самом деле равен 1.1223(с плюсом в один пункт, строка "order don't ready..."), при этом синяя линия находится в цене 1.1229. Почему такой рассинхрон - это вопрос.