Баг uninit reason 3 ?

 

Запустите этот код и пощелкайте по тайм-фреймам. Получается странное дело, что при переинициализации эксперта по смене тайм-фрейма значение переменной сохраняется. Это так и должно быть?

Если сделать объявление с присваиванием extern (параметр не меням!!!), то все как и положено по здравому смыслу.

// советник
//extern bool first=1;
bool first=1;

int start()
  {
   Print("first=",first);
   first=0;
   return(0);
  }
 
Svinozavr писал(а) >>

Запустите этот код и пощелкайте по тайм-фреймам. Получается странное дело, что при переинициализации эксперта по смене тайм-фрейма значение переменной сохраняется. Это так и должно быть?

Если сделать объявление с присваиванием extern (параметр не меням!!!), то все как и положено по здравому смыслу.

Тема неоднократно обсуждалось.

 
Vinin >>:

Тема неоднократно обсуждалось.

Я всего с полгода где-то MQL юзаю - видимо, не застал. Поиск "смена тайм-фрейма в эксперте" и его вариации ничего не дали.

Ссылку дать, если под рукой, можно?

 
Svinozavr писал(а) >>

Я всего с полгода где-то MQL юзаю - видимо, не застал. Поиск "смена тайм-фрейма в эксперте" и его вариации ничего не дали.

Ссылку дать, если под рукой, можно?

Со ссылкой плохо. Просто учитываю сей факт

 
Vinin >>:

Со ссылкой плохо. Просто учитываю сей факт

Огромное спасибо! Коротко и по существу.

Даже неудобно как-то еще спрашивать... А че говорили?

 

Впрочем, пустое. Как обойти знаю, да и обходить-то особой надобности нет. Праздный интерес, если разобраться...

Всем спасибо за содержательные ответы.

 
Здесь все  просто - переменная у вас инициализируется во время объявления. После этого она уже не переинициализируется, сколько не целкайте по ТФ. Для этого нужно явно инициализировать переменные в функции init или отключать советник от графика и заново его прикреплять.
Причина обращения: