Кол-во пересечений индикатором линии 0

 

Коллеги, подскажите решение вопроса. Индюк работает пересекая свою нулевую линию.

Н‌ужно подсчитать кол-во этих самых пересечений на данном графике:

         crossings = 0;
         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 после подсчета каждого очередного бара.

Н‌о не могу понять как исправить.

 
Vitaliy Hudyakov:

Коллеги, подскажите решение вопроса. Индюк работает пересекая свою нулевую линию.

Н‌ужно подсчитать кол-во этих самых пересечений на данном графике:

         crossings = 0;
         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 после подсчета каждого очередного бара.

Н‌о не могу понять как исправить.

Переменную сделай статической.

static crossings = 0;
 
Alexey Viktorov:

Переменную сделай статической.

static crossings = 0;


Отлично! Работает, совсем забыл про этот способ! :-))

А‌ как будет в данном случае происходить обновление данной переменной? При повторной инициализации?

 
Vitaliy Hudyakov:


Отлично! Работает, совсем забыл про этот способ! :-))

А‌ как будет в данном случае происходить обновление данной переменной? При повторной инициализации?

Статические переменные - Переменные - Основы языка - Справочник MQL4
Статические переменные - Переменные - Основы языка - Справочник MQL4
  • docs.mql4.com
Статические переменные - Переменные - Основы языка - Справочник MQL4
 
Alexey Viktorov:

Благодарю за помощь! ;-)