Коллеги, подскажите решение вопроса. Индюк работает пересекая свою нулевую линию.
Нужно подсчитать кол-во этих самых пересечений на данном графике:
for(i=0; i<limit; i++)
{
if ((indi_buf[i] > 0 && indi_buf[i+1] < 0) || (indi_buf[i] < 0 && indi_buf[i+1] > 0)) ++crossings;
}
Comment("Пересечений: ", crossings);
Результат показывает верный ТОЛЬКО при загрузке индюка (в нем этот код и должен быть встроен) или при повторной инициализации.
Далее после первого же поступившего в терминал тика значение меняется на 0.
Полагаю что ошибка в повторном пересчете (код в теле start) и естественно, в уменьшении limit после подсчета каждого очередного бара.
Но не могу понять как исправить.
Переменную сделай статической.
Переменную сделай статической.
Отлично! Работает, совсем забыл про этот способ! :-))
А как будет в данном случае происходить обновление данной переменной? При повторной инициализации?
Отлично! Работает, совсем забыл про этот способ! :-))
А как будет в данном случае происходить обновление данной переменной? При повторной инициализации?
- docs.mql4.com
Благодарю за помощь! ;-)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Коллеги, подскажите решение вопроса. Индюк работает пересекая свою нулевую линию.
Нужно подсчитать кол-во этих самых пересечений на данном графике:
for(i=0; i<limit; i++)
{
if ((indi_buf[i] > 0 && indi_buf[i+1] < 0) || (indi_buf[i] < 0 && indi_buf[i+1] > 0)) ++crossings;
}
Comment("Пересечений: ", crossings);
Результат показывает верный ТОЛЬКО при загрузке индюка (в нем этот код и должен быть встроен) или при повторной инициализации.
Далее после первого же поступившего в терминал тика значение меняется на 0.
Полагаю что ошибка в повторном пересчете (код в теле start) и естественно, в уменьшении limit после подсчета каждого очередного бара.
Но не могу понять как исправить.