Отображение индикатора и объектов на выборочных таймреймах

 

Добрый день!

Столкнулся с интересной проблемой.

На некоторых индикаторах, если выбрать во вкладке Визуализация конкретный таймфрейм, то не все объекты исчезают (например bitmap).

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

 
Я понимаю, что это скорее упущение самого терминала, но надо найти какой-нибудь костыль
 
Неужели такое не предусмотрено (считывание параметров с вкладки Visualization)? Как тогда проблему решить...
 
Vitaliy Kuznetsov #:
Неужели такое не предусмотрено (считывание параметров с вкладки Visualization)? Как тогда проблему решить...

А заем эти параметры читать? Просто если есть необходимость на каких-то ТФ отключать отображение индикатора с графическими объектами, то просто удалите эти объекты в OnInit()

Если индикатор грузится на отключенном ТФ, то OnInit() не выполняется до конца и индикатор не загружается.

 
Alexey Viktorov #:

А заем эти параметры читать? Просто если есть необходимость на каких-то ТФ отключать отображение индикатора с графическими объектами, то просто удалите эти объекты в OnInit()

Если индикатор грузится на отключенном ТФ, то OnInit() не выполняется до конца и индикатор не загружается.

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

Отключаю не я, а пользователь по своей прихоти. После пишет мне, что не все элементы скрылись и просит исправить. А как исправить?

 
Vitaliy Kuznetsov #:

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

Отключаю не я, а пользователь по своей прихоти. После пишет мне, что не все элементы скрылись и просит исправить. А как исправить?

Для себя проверочный индикатор напишите и всё поймёте. Имена объектов ведь известны… В OnInit() условие, если объект есть, его удалить. И все дела.

 
Alexey Viktorov #:

Для себя проверочный индикатор напишите и всё поймёте. Имена объектов ведь известны… В OnInit() условие, если объект есть, его удалить. И все дела.

Да не подходит такое. Как мы удалим объект? Надо же знать, что пользователь отключил таймфрейм, прежде чем удалить. Как узнать?

 
А может, создавать все объекты в OnCalculate()?
 

Индикатор сам узнает.

На гифке индикатор создаёт одну вертикальную линию и одну горизонтальную. Дальше всё видно без слов… Поверь моему честному слову, отображение отключал от фонаря…  

Гифка получилась большая. Чтобы работала нужно в неё ткнуть…

 
Dmitry Fedoseev #:
А может, создавать все объекты в OnCalculate()?

Да конечно. Но при переключении ТФ иногда OnInit() выполняется раньше чем OnDeInit() и получается чехарда. Поэтому, для страховки и в OnInit() лучше поставить удаление объектов.

 
Alexey Viktorov #:

Индикатор сам узнает.

На гифке индикатор создаёт одну вертикальную линию и одну горизонтальную. Дальше всё видно без слов… Поверь моему честному слову, отображение отключал от фонаря…

Гифка получилась большая. Чтобы работала нужно в неё ткнуть…

Тут похоже на гифке МТ5. Речь сейчас про МТ4

Вот пример из кодобазы (и таких реально много) - https://www.mql5.com/ru/code/30818

Графика не исчезает


Статистика по дням
Статистика по дням
  • www.mql5.com
Сбор статистики по дням недели
Причина обращения: