Предложение по ChartSetInteger(ChartID(), CHART_SHOW, false);

 

В справке написано 

Отключение отрисовки является идеальным решением для создания собственного интерфейса программы с использованием графических ресурсов.


Случайная смена периода графика вызывает переинициализацию всего эксперта.  Это крайне не удобно. 

Я с этим столкнулся, это действительно не удобно.

По факту 

ChartSetInteger(ChartID(), CHART_SHOW, false);

Очень удобная функция, но она не доделана и не является идеальной.

В идеале хорошо бы от графика отключалась смена периода, смена финансового инструмента.

Те кто создают собственный интерфейс, в легкую смогут сделать любой способ смены периода, расчеты по любым финансовым инструментам и многое другое..

 
Vladimir Pastushak:

...Случайная смена периода графика вызывает переинициализацию всего эксперта.  Это крайне не удобно. 

Я с этим столкнулся, это действительно не удобно.

По факту 

Очень удобная функция, но она не доделана и не является идеальной.

В идеале хорошо бы от графика отключалась смена периода, смена финансового инструмента.

Для таких случаев есть причины деинициализации. Если поменять поведение стандартной функции, то набегут другие "идеалисты" с претензиями :-))


...Те кто создают собственный интерфейс, в легкую смогут сделать любой способ смены периода, расчеты по любым финансовым инструментам и многое другое..

Немного не так...Те, кто создаёт собственный интерфейс, влёгкую делают любой способ смены периода, расчёты по любым финансовым инструментам и многое другое...

Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Причины деинициализации
Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Причины деинициализации
  • www.mql5.com
//| get text description                                             | //| Expert deinitialization function                                 |