При удалении всех объектов с графика при перезагрузке терминала не отрисовываются удалённые объекты

 

Вот мой OnDeinit():

void OnDeinit(const int reason) {
  ObjectsDeleteAll(0, 0);
}

Проверял 2-мя различными способами:

1) Накидываю индюк. Индюк отрисовывает объекты. Всё чётко. Удаляю индюк с графика. Объекты с графика удаляются. Всё как и требуется..

2) Никидываю индюк. Индюк отрисовывает объекты. Закрываю терминал. Запускаю терминал. Объекты не отрисовываются заново. Вот здесь косяк..

Кака связь между добавлением идинственной строки в OnDeinit() и тем, что перестали отрисовываться объекты на графике? Ведь без этой строки всё отрисовывается. Тем более, OnDeinit() должен запускаться лишь при снятии индикатора с графика в данном случает, а при запуске терминала.. есс-но нет.. Что-то странное. С ходу, не понятно.

 
Viktar Dzemikhau:

Вот мой OnDeinit():

Проверял 2-мя различными способами:

1) Накидываю индюк. Индюк отрисовывает объекты. Всё чётко. Удаляю индюк с графика. Объекты с графика удаляются. Всё как и требуется..

2) Никидываю индюк. Индюк отрисовывает объекты. Закрываю терминал. Запускаю терминал. Объекты не отрисовываются заново. Вот здесь косяк..

Кака связь между добавлением идинственной строки в OnDeinit() и тем, что перестали отрисовываться объекты на графике? Ведь без этой строки всё отрисовывается. Тем более, OnDeinit() должен запускаться лишь при снятии индикатора с графика в данном случает, а при запуске терминала.. есс-но нет.. Что-то странное. С ходу, не понятно.

Так ведь через ObjectsDeleteAll Вы сами удаляете все объекты на текущем графике в окне "0" - в главном окне.

 
Viktar Dzemikhau:

Вот мой OnDeinit():

Проверял 2-мя различными способами:

1) Накидываю индюк. Индюк отрисовывает объекты. Всё чётко. Удаляю индюк с графика. Объекты с графика удаляются. Всё как и требуется..

2) Никидываю индюк. Индюк отрисовывает объекты. Закрываю терминал. Запускаю терминал. Объекты не отрисовываются заново. Вот здесь косяк..

Кака связь между добавлением идинственной строки в OnDeinit() и тем, что перестали отрисовываться объекты на графике? Ведь без этой строки всё отрисовывается. Тем более, OnDeinit() должен запускаться лишь при снятии индикатора с графика в данном случает, а при запуске терминала.. есс-но нет.. Что-то странное. С ходу, не понятно.

Внимательно ознакомьтесь с документацией.

REASON_CLOSE

9

Терминал был закрыт

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