[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 556
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в вашем варианте работает, и ЕТО уже большой прорыв ). только мне нужно условие не (Ask<tmp || Ask>tmp), а просто банально (Ask<=tmp). тоесть как только появиться хоть один тик в другую сторону... и именно с циклом).. я знаю, истина где то рядом))). хотя б на реале работало, бог с ним, с тестером то.
Ну то же самое - та же самая логика. Перед циклом приводим переменную в такое состояние, в котором условие цикла будет истинным. Далее в цикле на каждой его итерации обновляем данные с помощью RefreshRates(), после чего проверяем, если котировка свежая пришла, то выполняем какие-то действия и насильственно прерываем цикл. Если нужно чтоб код, который лежит ниже цикла, выполнялся, то прерываем командой break. Если нужно чтоб не выполнялся, то прерываем работу функции int start() советника командой return(0)
я логику понимаю, как ето сделать.. я не понимаю почему не работает ни одна конструкция, еще несколько канули в бездну перебора вариантов
я логику понимаю, как ето сделать.. я не понимаю почему не работает ни одна конструкция, еще несколько канули в бездну перебора вариантов
Нужно закрывать глаза и представлять себе что происходит в каждой итерации цикла.
Ваш первый вариант:
Темп равен аску. Условие равенства выполняется, поэтому цикл входит в почти-бесконечнное число итераций. Ибо даже если придёт новая котировка, то не факт, что она нарушит условие истинности цикла. Пара-тройка идущих впордряд падающих асков, и можно выхода из цикла ждать почти до бесконца...
Честно-говоря, когда вышел учебник по MQL4, я его пролистал и больше к нему не возвращался - мне не понравилось, что автор этого сочинения суёт там цикл while() везде где ни попадя. Это наложило отпечаток на многих, кто пытался освоить MQL по данной книге.
Вот скажите, что у Ваего советника, такая жуткая задача, что нельзя обойтись без этого цикла? Ну ведь сами видите, насколько легко запустить этот цикл в бескоенчное число итераций, просто потеряв контроль. Циклом for() в Вашем случае обойтись нельзя? Ну или написанием каой-то отдельной простенькой функции?...
времени вагон, как говорится).. главное что б работало.. надоело покупать падающий нож. нужно любое, даже самое неелегантное решение задачи:
Честно-говоря, когда вышел учебник по MQL4, я его пролистал и больше к нему не возвращался - мне не понравилось, что автор этого сочинения суёт там цикл while() везде где ни попадя. Это наложило отпечаток на многих, кто пытался освоить MQL по данной книге.
Вот скажите, что у Ваего советника, такая жуткая задача, что нельзя обойтись без этого цикла? Ну ведь сами видите, насколько легко запустить этот цикл в бескоенчное число итераций, просто потеряв контроль. Циклом for() в Вашем случае обойтись нельзя? Ну или написанием каой-то отдельной простенькой функции?...
Извините, что вмешиваюсь, но в таком виде цикл и будет бесконечным. tmp нужно сделать static с присвоением ей началного значения заведомо большего Ask. Или =0, если использовать предложенную конструкцию с ИЛИ. А так Ask всегда будет = tmp.
Непонятно только зачем здесь цикл. Проверяй на каждом тике цены и действуй, исходя из реалий.