Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 567
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всё равно вылетает.
у вас [i+1], нужно проверять на +2 больше
вообще нужно делать примерно так
Потому что проверка в корне неверная. Допустим, Bars вернула 1000, а cb тоже 1000. Затем в цикле на первой итерации i получает значение 1000. В первом же условии тела цикла:
сразу два выхода за пределы массива: обращение к бару с индексом 1000 и с индексом 1001. Ведь если на графике 1000 баров, то первый бар имеет индекс 0, а последний - 999.
Дальше по телу цикла идет обращение к еще более далеким барам а истории:
Все это нужно учесть при изначальной проверке.
Как делать правильно проверку? посмотрите в примере по функции IndicatorCounted(), в справке по MQL4. Только теперь IndicatorCounted() лучше заменить на совместное использование переменных rates_total (это Bars) и prev_calculated (это IndicatorCounted()).
Спасибо, Нашел,
с чем его сравнивать? в примере начинает с limit
limit=Bars-counted_bars;
с чем мне эту "cb" сравнивать?
Спасибо, Нашел,
с чем его сравнивать? в примере начинает с limit
с чем мне эту "cb" сравнивать?
Если нужно ограничивать количество баров, на которых отображаются данные индикатора, то лучше сделать так:
Пользоваться так:
Значение total - это индекс самого глубокого бара в истории, к которому можно обращаться, исходя из значений настроечных параметров индикатора.у вас [i+1], нужно проверять на +2 больше
вообще нужно делать примерно так
Сделал, точно так, пишет ...array out of range in 'HiLo.mq4' (122,15)
что проверять на +2 больше?
Если нужно ограничивать количество баров, на которых отображаются данные индикатора, то лучше сделать так:
Пользоваться так:
Значение total - это индекс самого глубокого бара в истории, к которому можно обращаться, исходя из значений настроечных параметров индикатора.Компилятор ругается
'InitializeBuffers' - function not defined HiLo.mq4 161 7
Компилятор ругается
'InitializeBuffers' - function not defined HiLo.mq4 161 7
Я же написал в комментарии, что это функция, которая должна выполнить инициализацию всех буферов индикатора. Это пользовательская функция. У меня она такая:
У вас будет другая, т . к. другие буфера. В случае же, если индикатор работает с графическими объектами, то здесь нужно все их удалить, т. к. предстоит начальная отрисовка показаний.
Я же написал в комментарии, что это функция, которая должна выполнить инициализацию всех буферов индикатора. Это пользовательская функция. У меня она такая:
У вас будет другая, т . к. другие буфера. В случае же, если индикатор работает с графическими объектами, то здесь нужно все их удалить, т. к. предстоит начальная отрисовка показаний.
Спасибо, но ничего не изменилось ...array out of range in 'HiLo.mq4' (130,15)
. Что не так?
Спасибо, но ничего не изменилось. Что не так?
Конечно, результат не изменится. Ведь главную причину (цикл по cb) Вы не убрали. Вот этот цикл организован неправильно:
Его нужно убирать и вместо него ставить цикл по limit. В обоих местах.
Конечно, результат не изменится. Ведь главную причину (цикл по cb) Вы не убрали. Вот этот цикл организован неправильно:
Его нужно убирать и вместо него ставить цикл по limit. В обоих местах.
Таких циклов 3. Заменил их, терминал завис.
Сделал, не зависает, не вылетает, но в первом буфере (fx2) значений бывает 3: цена, 0.0 и 164874239.218492.
если значение sell_1_B!=EMPTY_VALUE и sell_1_B!=0 это не значит что там цена.
Как получить сигнал?