Изменение popup стрелки индикаторного буфера

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
dap_1988
18
dap_1988  

Здравствуйте. Поиск по форуму и в сети ничего подходящего не выдает, поэтому:

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

Мне нужно изменить содержимое этого всплывающего окна. Я попытался отловить стрелки как отдельные объекты, но это не работает (стрелки индикаторного буфера отрисовываются не как отдельные объекты), соответственно изменить текст через ObjectSetString не получится.

Может кто подсказать в какую сторону смотреть?

Sofiia Butenko
14145
Sofiia Butenko  
Можете только назвать каждый буфер (SetIndexLabel) и это название будет в контекстном меню, т.е. при наведении. 
SetIndexLabel - Custom Indicators - MQL4 Reference
SetIndexLabel - Custom Indicators - MQL4 Reference
  • docs.mql4.com
SetIndexLabel - Custom Indicators - MQL4 Reference
Ihor Herasko
21048
Ihor Herasko  
Переделайте индикатор с буферного на объектный. Тогда для каждой стрелки можно вывести свою подсказку.
Igor Zakharov
6474
Igor Zakharov  
Ihor Herasko:
Переделайте индикатор с буферного на объектный. Тогда для каждой стрелки можно вывести свою подсказку.

Но тогда имена не могут повторяться!

Uladzimir Izerski
8489
Uladzimir Izerski  
Igor Zakharov:

Но тогда имена не могут повторяться!

Стрелка_1, Стрелка_2, Стрелка_3, Стрелка_4, ...

Igor Zakharov
6474
Igor Zakharov  
Uladzimir Izerski:

Стрелка_1, Стрелка_2, Стрелка_3, Стрелка_4, ...

топикстартер хотел имена как подсказки использовать, т.е. 2 одинаковых подсказки не прокатят. об этом мой пост.

Ihor Herasko
21048
Ihor Herasko  
Igor Zakharov:

топикстартер хотел имена как подсказки использовать, т.е. 2 одинаковых подсказки не прокатят. об этом мой пост.

Кто запрещает? Имена - уникальные, а подсказка - для всех одна (или для какой-то группы одна, а для другой группы - другая). С графическими объектами в этом плане полет фантазии не ограничен.

dap_1988
18
dap_1988  
Ihor Herasko:
Переделайте индикатор с буферного на объектный. Тогда для каждой стрелки можно вывести свою подсказку.
В таком случае теряется возможность передачи значений в другие индикаторы, что необходимо сохранить.
Как вариант я думаю можно сделать буфер без отрисовки и объектный с необходимым функционалом, просто думал есть более дешевый (в плане скорости и т.п.) способ. Названия стрелок особой роли не играют. Суть в том чтобы добавить к сигналам информацию, которая непосредственно привязана к времени появления сигнала, т.е. например, значения HLOC. Сейчас это реализовано в алертах для отладки, но это не удобно.
Uladzimir Izerski
8489
Uladzimir Izerski  
dap_1988:
В таком случае теряется возможность передачи значений в другие индикаторы, что необходимо сохранить.
Как вариант я думаю можно сделать буфер без отрисовки и объектный с необходимым функционалом, просто думал есть более дешевый (в плане скорости и т.п.) способ. Названия стрелок особой роли не играют. Суть в том чтобы добавить к сигналам информацию, которая непосредственно привязана к времени появления сигнала, т.е. например, значения HLOC. Сейчас это реализовано в алертах для отладки, но это не удобно.

А что мешает повесить на буферные стрелки объекты.?

Ihor Herasko
21048
Ihor Herasko  
dap_1988:
В таком случае теряется возможность передачи значений в другие индикаторы, что необходимо сохранить.
Как вариант я думаю можно сделать буфер без отрисовки и объектный с необходимым функционалом, просто думал есть более дешевый (в плане скорости и т.п.) способ. Названия стрелок особой роли не играют. Суть в том чтобы добавить к сигналам информацию, которая непосредственно привязана к времени появления сигнала, т.е. например, значения HLOC. Сейчас это реализовано в алертах для отладки, но это не удобно.

Вы и сами до всего додумались))) 

Для тех случаев, когда объектов слишком много, можно использовать такой подход: отслеживать перемещение графика (в OnChartEvent()) и создавать только те объекты, которые попадают в видимую часть графика. Остальные - даже не создавать.

dap_1988
18
dap_1988  
Ihor Herasko:

Вы и сами до всего додумались))) 

Для тех случаев, когда объектов слишком много, можно использовать такой подход: отслеживать перемещение графика (в OnChartEvent()) и создавать только те объекты, которые попадают в видимую часть графика. Остальные - даже не создавать.

За этот совет отдельное спасибо :) сегодня попробую реализовать отображение объектов в видимой области, т.к. при большом количестве объектов может сильно тормозить
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий