![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Оператор for эквивалентен следующей последовательности операторов:
выражение1;
while(выражение2)
{
оператор;
выражение3;
};
Штатный выход из цикла и фо и вайл всегда происходит по условию выражения 2. Т.е. в фо сперва будет выражение 3 увеличения / уменьшения счетчика и только потом условия окончания цикла. Континью в фо уйдет на выражение 3 - счетчик и потом на условие окончания, поэтому ДА, всегда после континью и штатному выходу из цикла по условию выражения 2 счетчик будет изменен.
В вайл нет счетчика, там просто условие истина продолжаем цикл, ложь выходим из цикла. Но если в условие выражения 2 поставить сравнение по счетчику итераций, и в теле цикла поставить счетчик итераций то это будет примерно тоже что и цикл фо. И Да, если выражение 2 в вайл всегда будет Истина, то будет вечный цикл.
И для выхода из цикла есть еще брейк - не штатное окончание цикла. Вот после брейк цикл сразу заканчивается и переходит к ближайшему после цикла оператору.
Да, Игорь, Вы правы.
Я почитал, увеличение i происходит в конце цикла (условно сказать на закрывающей скобке цикла).
И переход continue делает в конец цикла, а не в начало.
Результат моих прежних рассуждений и новых знаний будет одинаковый, но ход мыслей был неправильный. Каюсь. Спасибо, друг.![](https://c.mql5.com/3/330/good.gif)
continue это просто переход. Вечный цикл будет, если условие цикла выполняется вечно.
нет не эквивалентен, в for выражение3 исполнится в любом случае, потому что continue оборвёт этот текущий проход и направит как раз к Выражению3
Вот описание из этого источника:
Респект.
О, и Вам Сергей тоже спасибо. Благодаря этой теме выведал у Игоря ценную информацию . Игорь, спасибо!
пожалуйста
но это не ценная информация а внимательность и практика, ну может быть привычка писать тестовые скрипты если есть сомнения
Подскажите, такая часть кода является корректной? Это вот уже рабочий вариант. Компилируется, на графике запускается и вроде даже делает то, для чего задумывался.
Надо бы проверять минимально возможные расстояния от текущей цены до стопа и тейка.
i--; зачем?
continue; - зачем? Он и так стоит в конце цикла
Надо бы проверять минимально возможные расстояния от текущей цены до стопа и тейка.
Переменную error вы сначала сравниваете с 0, а потом присваиваете строку. Если её тип строка тогда сравнивайте с "".
i--; зачем?
continue; - зачем? Он и так стоит в конеце цикла
continue лишнее согласен, a i-- чтобы сделать вторую попытку
Лучше убрать. Если ордер не модифицировался, нужно запомнить это и на следующем тике произвести следующую попытку. А то Вы в цикле забомбите сервер.