Как програмно перезагрузить чарт?

 
HELP! Как програмно из советника перезагрузить (удалить - восстановить) соседнее окно графика, тем самым произвести переинициализации группы индикаторов, находящихся в нём?
 

Я нашёл Вашу библиотеку (нужная штука!) и удалять нужное окно с помощью:

 // 1. Функция закрывает указанное окно графика.
 void ServiceCloseChart (int hChart); // Системный дескриптор закрываемого окна графика.
труда не составляет! Но как потом открыть только что удалённое окно?
 
IgRU4ek:
HELP! Как програмно из советника перезагрузить (удалить - восстановить) соседнее окно графика, тем самым произвести переинициализации группы индикаторов, находящихся в нём?

Вам нужна переинициализация или удалить/открыть?

Если первое, то Refresh вам в помощь. 

 

Мне необходимо на чарте сделать принудительную програмную переинициализацию нескольких индикаторов. Мне показался приемлемым вариант путём удалить\восстановить чарт (график). на котором находятся эти индикаторы.

Про Refresh поподробнее, если возможно... Я такой функции в MQL4 не знааю.

 
IgRU4ek:

Я нашёл Вашу библиотеку (нужная штука!) и удалять нужное окно с помощью:

  труда не составляет! Но как потом открыть только что удалённое окно? 

Для переинициализации не надо окно закрывать. Надо график обновить. Там в библиотеке, в конце, есть такие функции.

Но если уж закрыт график, то такой же можно открыть через загрузку шаблона или из списка удалённых.

 
hrenfx:

Вам нужна переинициализация или удалить/открыть?

Если первое, то Refresh вам в помощь. 

Рефреш не обновляет окно. Она только котировки обновляет для эксперта или индикатора. Там есть особенность. Каждый эксперт работает со своей копией таймсерии... и т.д. В справке есть про это.
 
Zhunko:
Для переинициализации не надо окно закрывать. Надо график обновить. Там в библиотеке, в конце, есть такие функции.


Вадим. Свой скайп может дашь. Обещаю сильно не беспокоить

 
Vinin:


Вадим. Свой скайп может дашь. Обещаю сильно не беспокоить

Так, я везде по фамилии.
 

Вадим! Я несколько раз пересмотрел список функций в Вашей библиотеке ServicesMT4.dll, если в ней есть то, чего я не обнаружил, не сложно Вам указать название функции, с помощью которой я смогу ПЕРЕИНИЦИАЛИЗИРОВАТЬ все, находящиеся на данный момент на конкретном чарте индикаторы!

Поясню ещё раз! Не перерисовать последние показания индикаторов, а "перезагрузить" индикаторы.

 
IgRU4ek:

Вадим! Я несколько раз пересмотрел список функций в Вашей библиотеке ServicesMT4.dll, если в ней есть то, чего я не обнаружил, не сложно Вам указать название функции, с помощью которой я смогу ПЕРЕИНИЦИАЛИЗИРОВАТЬ все, находящиеся на данный момент на конкретном чарте индикаторы!

Поясню ещё раз! Не перерисовать последние показания индикаторов, а "перезагрузить" индикаторы.

 //31. Функция эммулирует тик для эксперта на указанном графике.
 void ServiceTickExpert(int hChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.

 //32. Функция эммулирует тик для индикаторов на указанном графике.
 void ServiceTickIndicators(int hChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.

Каждый тик запускает функцию start(). init() при этом не затрагивается. Вам надо ещё init() запустить?

Если это так, то это неграмотная реализация индикатора.

init() можно в  start() запустить, если надо. 

void start()
 {
  init();
  ...
  ...
 }

Ещё с помщью библиотеки можно удалить индикаторы и загрузить заново, можно закрыть график и открыть заново и загрузить на него индикаторы, скрипт или эксперт.

Причина обращения: