Причины деинициализации

 

Добрый день.

Оказалось что программа генерирует ту же самую причину деинициализации при закрытии графика и при смене профиля - REASON_CHARTCLOSE . 

Есть ли какая-нибудь возможность отличить эти события?

Спасибо

 
Причины деинициализации - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
Причины деинициализации - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
//| get text description                                             | //| Expert deinitialization function                                 |
 

Спасибо, я ознакомился с текстом. Ниже код, который я исполюзую


void OnDeinit(int reason)
{
   if(reason==REASON_TEMPLATE || reason==REASON_REMOVE || reason==REASON_CHARTCLOSE) GlobalVariablesDeleteAll(Prefix);
   if(reason==REASON_REMOVE)
   {
     if(Prefix=="WI"+_Symbol+IntegerToString(Magic))
     {
       string name="_Magic";
       string text ="You can continue with Magic = "+IntegerToString(Magic);
       ObjectSetString(0,name,OBJPROP_TEXT,text);
       name="_Magic1";
       text="Indicator was delete from this chart !";
       cr(name,20,40,12,text,GetFont(Font_Name),Z_Color,false);
       ObjectSet(name,OBJPROP_CORNER,2);
     }
   }
   if(reason==REASON_CHARTCHANGE || reason==REASON_CHARTCLOSE) GlobalVariableSet(Prefix+"_Chart",2);
   //else GlobalVariableDel(Prefix+"_Chart");
   EventKillTimer();
}

Так пробую чистить глобальные переменные. И все хорошо пока не используются профили. При переключении профилей я хотел бы чтобы глобальные переменные не удалялись. Но как оказалось при переключении профиля терминал генерирует код того же события что при закрытии графика, как писал выше. Потому и появился вопрос есть ли возможность каким-либо образом различить эти 2 события.

 

насколько я понимаю Ваш код это индикатор?

индикаторы несколько иначе получают причины деинициализации, вот было обсуждение https://www.mql5.com/ru/forum/287677/page2#comment_9244404

суть обсуждения - к некоторых случаях индикатор полностью уничтожается и создается его новая копия

Как добавить 3-е условие по нажатие на клавишу с клавиатуры?
Как добавить 3-е условие по нажатие на клавишу с клавиатуры?
  • 2018.11.04
  • www.mql5.com
Здравствуйте, сейчас при нажатии на клавишу клавиатуры показывается число, при 2-м нажатии оно удаляется Как сделать так чтобы было 3-е значение...
 
И подобный вопрос по REASON_CHARTCHANGE  есть ли возможность отличить когда изменяется инструмент а когда таймфрейм?
 
Igor Makanu:

насколько я понимаю Ваш код это индикатор?

индикаторы несколько иначе получают причины деинициализации, вот было обсуждение https://www.mql5.com/ru/forum/287677/page2#comment_9244404

суть обсуждения - к некоторых случаях индикатор полностью уничтожается и создается его новая копия

да это индикатор

 
Piotr Storozenko:
И подобный вопрос по REASON_CHARTCHANGE  есть ли возможность отличить когда изменяется инструмент а когда таймфрейм?

"Помнить" последний инструмент и таймфрейм и видеть что изменилось.

 
Artyom Trishkin:

"Помнить" последний инструмент и таймфрейм и видеть что изменилось.

Спасибо, попробую. А может подскажете где о профилях смогу почитать? Рою - рою и ничего пока нет, может есть возможность отчитать в каком профиле открыт график с индикатором?