Номер подокна индикатора

 

Как наименее извращённым способом выяснить в каком подокне запущен индикатор ?

чтобы выводить всякие метки и подписи.

Раньше делал так:

- ставил индикатору рандомное имя

- перебирал окна чарта в поисках куда он там попал

- возвращал имя на нормальное

но это какой-то закат солнца вручную..

должен-же быть более простой способ

 
Maxim Kuznetsov:

Как наименее извращённым способом выяснить в каком подокне запущен индикатор ?

чтобы выводить всякие метки и подписи.

Раньше делал так:

- ставил индикатору рандомное имя

- перебирал окна чарта в поисках куда он там попал

- возвращал имя на нормальное

но это какой-то закат солнца вручную..

должен-же быть более простой способ

Может это - https://www.mql5.com/ru/docs/chart_operations/chartid

Документация по MQL5: Операции с графиками / ChartID
Документация по MQL5: Операции с графиками / ChartID
  • www.mql5.com
Операции с графиками / ChartID - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitalii Ananev:

Может это - https://www.mql5.com/ru/docs/chart_operations/chartid

ChartID для всех подокон (subwindow) одинаков. Что не удивительно :-)

 
ChartWindowFind() ,без параметров
 
Документация по MQL5: Операции с графиками / ChartWindowFind
Документация по MQL5: Операции с графиками / ChartWindowFind
  • www.mql5.com
1. Функция ищет на указанном графике подокно с указанным "коротким именем" индикатора (короткое имя выводится слева вверху подокна) и в случае удачи возвращает номер подокна. Не следует путать короткое имя индикатора и имя файла, которое указывается при создании индикатора функциями iCustom() и IndicatorCreate(). Если короткое наименование...
 
Maxim Kuznetsov:

Как наименее извращённым способом выяснить в каком подокне запущен индикатор ?

чтобы выводить всякие метки и подписи.

Раньше делал так:

- ставил индикатору рандомное имя

- перебирал окна чарта в поисках куда он там попал

- возвращал имя на нормальное

но это какой-то закат солнца вручную..

должен-же быть более простой способ

ChartWindowFind

 
Maxim Kuznetsov:

ChartID для всех подокон (subwindow) одинаков. Что не удивительно :-)

Скорее всего вам нужно ChartWindowFind() как выше ответили Илья и Дмитрий.

 

если пользователль открыл 2 (ДВА! или более) подокна с одним и тем-же индикатором с одинаковым "коротким именем", он-же юзер, ему можно..

то ChartWindowFind вернёт первый. А не тот из которого запущена.

И все метки отрисуются только на нём, а не на каждом :-(

 
Maxim Kuznetsov:

если пользователль открыл 2 (ДВА! или более) подокна с одним и тем-же индикатором с одинаковым "коротким именем", он-же юзер, ему можно..

то ChartWindowFind вернёт первый. А не тот из которого запущена.

И все метки отрисуются только на нём, а не на каждом :-(

каждая копия должна генерировать уникальное имя - например из входных параметров + символ + период...

 
Taras Slobodyanik:

каждая копия должна генерировать уникальное имя - например из входных параметров + символ + период...

юзер МОЖЕТ кинуть на график ДВА индикатора с одинаковыми параметрами..соотв.и с одинаковым коротким именем

и неожиданного для него РИСОВАНИЯ ТОЛЬКО В ОДНОМ быть не должно

 
Maxim Kuznetsov:

юзер МОЖЕТ кинуть на график ДВА индикатора с одинаковыми параметрами..соотв.и с одинаковым коротким именем

и неожиданного для него РИСОВАНИЯ ТОЛЬКО В ОДНОМ быть не должно

добавить к генерации метки миллисекунду запуска

а вообще если параметры одинаковые, то и индикаторы одинаковые, и нечего рисовать всем одно и тоже)