Обнуление переменных(мачало начинаем все сначало)

 

Вот как неделю вожусь с MQL5.... 

И так суть вопроса:

Кидаю на график эксперта в

int OnInit()
  {
..............
..............
..............
Print(sh1," ",sh2," ",lg1," ",lg2);   
return(0);
  }

производятся некоторые расчеты и заполнение рабочих массивов. 

начальные значения переменных sh1,sh2,lg1,lg2 = -1(они выступают в роли счетчиков).

После расчетов sh1=7,sh2=35,lg1=2,lg2=39(далее используются в void OnTick() ) 

Стоит мне переключить период графика, как начальными значениями переменных sh1,sh2,lg1,lg2 становятся sh1=7,sh2=35,lg1=2,lg2=39.....

Как избежать данной проблемы? 

 
gumgum:


Как избежать данной проблемы? 

Явным образом инициализировать эти счетчики в OnInit(). При смене таймфрейса эксперт не выгружается - ему дается возможность контролировать процесс даже во время смены таймфреймов.

По указанной ссылке:

При смене символа или таймфрейма графика, к которому эксперт прикреплен, выгрузка и загрузка эксперта не производится. При этом последовательно вызываются обработчики OnDeinit() на старом символе/таймфрейме и OnInit() на новом символе/таймфрейме (если они есть), значения глобальных переменных и статических переменных не сбрасываются. Все события, поступившие для эксперта до завершения инициализации (функции OnInit()) пропускаются.

При смене счета загрузка и выгрузка эксперта не производится. 


 
Renat:

Явным образом инициализировать эти счетчики в OnInit(). При смене таймфрейса эксперт не выгружается - ему дается возможность контролировать процесс даже во время смены таймфреймов.

По указанной ссылке:


Спасибо! 
Причина обращения: