Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1473
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я фрактал привёл как пример. А как вы определяете минимум(в вашем случае) это видать военная тайна… или абсолютное непонимание о чём спрашивают.
Мой код состоит из нескольких строк и в нем видно невооруженным взглядом как определяется минимум
Минимум определяется в желтых строках
тебе не надо считать бары
после открытия ордера присваиваешь переменной значение Low[0](минимум текущего бара), потом после закрытия бара если значение Low[1] меньше переменной, присваиваешь новое значение,
если нет, остается старое т.е. минимум.
Этот алгоритм я давно уже понял и использовал.... то есть проверять минимумы не на тике, а на свече. Но я считаю что есть алгоритм намного экономнее, а именно тот который я последний раз описал, когда проверять нужно не ДО появления минимума, а ПОСЛЕ его появления. Но я не знаю как быстро и экономно посчитать количество свечей от БИДА до пятидесятой свечи. Да пятидесятой свечи я умею считать количество свечей. Как посчитать количество свечей до свечи с самым низким ЛОУ . То есть , от БИДА до этой свечи
Мой код состоит из нескольких строк и в нем видно невооруженным взглядом как определяется минимум
Минимум определяется в желтых строках
И в чём проблема? Тут главное как объявлена переменная LoU. Если на глобальном уровне, то нормально. Если это локальная переменная, то должна быть статическая. И проверяя на каждом тике разницу текущей цены с ценой в этой переменной затраты микросекунд будут на столько незначительными, что говорить об этом нет никакого смысла.
Этот алгоритм я давно уже понял и использовал.... то есть проверять минимумы не на тике, а на свече. Но я считаю что есть алгоритм намного экономнее, а именно тот который я последний раз описал, когда проверять нужно не ДО появления минимума, а ПОСЛЕ его появления. Но я не знаю как быстро и экономно посчитать количество свечей от БИДА до пятидесятой свечи. Да пятидесятой свечи я умею считать количество свечей. Как посчитать количество свечей до свечи с самым низким ЛОУ . То есть , от БИДА до этой свечи
В этом логика какая-то ненормальная… Зачем считать какие-то 50 баров? А если будет не 50?
Этот алгоритм я давно уже понял и использовал.... то есть проверять минимумы не на тике, а на свече. Но я считаю что есть алгоритм намного экономнее, а именно тот который я последний раз описал, когда проверять нужно не ДО появления минимума, а ПОСЛЕ его появления. Но я не знаю как быстро и экономно посчитать количество свечей от БИДА до пятидесятой свечи.
Какую бы проверку ты не придумал, она все равно будет проводиться на каждом тике - это особенность функции OnTick().
Какую бы проверку ты не придумал, она все равно будет проводиться на каждом тике - это особенность функции OnTick().
Одно дело проверка, а другое поиск минимума…
И в чём проблема? Тут главное как объявлена переменная LoU. Если на глобальном уровне, то нормально. Если это локальная переменная, то должна быть статическая. И проверяя на каждом тике разницу текущей цены с ценой в этой переменной затраты микросекунд будут на столько незначительными, что говорить об этом нет никакого смысла.
Спасибо за новую и ценную для меня информацию.....я этого не знал.
В этом логика какая-то ненормальная… Зачем считать какие-то 50 баров? А если будет не 50?
50 - это для абстрактного случая. Может быть и 20 и 150 и 3 и 1 Имеется в виду как узнать на текущем БИДЕ сколько баров между ним и локальным лоу ....в случае если между этим бидом и локальным лоу есть необходимые для открытия ордера 30 пп. Что бы открыть ордер if ( Вid - Low[ 50 ] >= 30 п ) - открыть ордер.
Какую бы проверку ты не придумал, она все равно будет проводиться на каждом тике - это особенность функции OnTick().
Спасибо. Если бы я это знал .... может быть и не заморачивался так по этому вопросу.
То есть если я буду проверять ЛОУ не на каждом тике а на каждой свече программа все равно будет тратить время на обработку каждого тика и по времени выйдет то же самое как если бы проверял на каждом тике?
А что при помощи кода эту особенность обойти никак нельзя. Что бы проводилась не на каждом тике, а допустим на каждом ЛОУ минутной свечи.
Спасибо. Если бы я это знал .... может быть и не заморачивался так по этому вопросу.
То есть если я буду проверять ЛОУ не на каждом тике а на каждой свече программа все равно будет тратить время на обработку каждого тика и по времени выйдет то же самое как если бы проверял на каждом тике?
А что при помощи кода эту особенность обойти никак нельзя. Что бы проводилась не на каждом тике, а допустим на каждом ЛОУ минутной свечи.
void()