Magic online - страница 4

 
Petr Vorob'ev #:

он их удаляет и рассчитывает заново. эти ГО имеют  свои группы. Вот эти группы и могут скрываться или отображаться.

Вариант предложенный Иваном Т. - подходи. Т.е. если в окне только один индикатор, то достаточно одного  ChartID() . Если несколько, то нужно добавить порядковый номер индикатора на графике (если он постоянен после перезагрузки).


 

Если несколько именно этих индикаторов. Другие не помеха.

 
Petr Vorob'ev #:

да именно в этом. Аналог magic в советнике

Нет, снова Вы в Magic уводите. Дело то вовсе не в нем. Вам нужно проанализировать причину деинициализации.

 
Alexey Viktorov #:

Если несколько именно этих индикаторов. Другие не помеха.

в принципе да. в общем  ChartID() - это решение, спасибо Ивану. 
не понятно почему разработчики не добавят аналогичную функцию для индикаторов и советников.

 
Ihor Herasko #:

Нет, снова Вы в Magic уводите. Дело то вовсе не в нем. Вам нужно проанализировать причину деинициализации.

вы хотите меня заставить решать задачу которая мне не нужна?)

 
Petr Vorob'ev #:

в принципе да. в общем  ChartID() - это решение, спасибо Ивану. 
не понятно почему разработчики не добавят аналогичную функцию для индикаторов и советников.

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

Главное окно всегда 0, а порядковый номер подокна меняется в динамике..

Если индикаторы в главном окне, номер подокна не помогает (у всех одинаковый 0). Если в подокнах то номер подокна может быть изменен, например юзер переставил окна.или одно из подокон закрылось.

 
Maxim Kuznetsov #:
например юзер переставил окна

Каким образом, если терминал перезагружается?

Maxim Kuznetsov #:
если на одном чарте может быть несколько одинаковых индикаторов, то не поможет.

Поможет, если при перезагрузке терминала порядок не меняется. Если меняется, то указал запасной вариант - имя. А порядок внутри одного имени - кто раньше загрузится. 

 
Ivan Titov #:

Каким образом, если терминал перезагружается?

варианты:

- например до перезагрузки юзер переставил окна.

- или пропустилось событие про перестановку окон. (CHARTEVENT могут и не прилететь, или задержаться)

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

- при загрузке или выгрузке один из "подвальных" индикаторов упал, доп.окна нет - номера съехали

- терминал упал (криво обновился) и загрузился старый профиль

PS/ по логике, идентификатор должен назначаться терминалом при первом размещении индикатора, тогда вроде Ok. Иначе громадьё кода и ненадёжно. Но есть профили и шаблоны и там это решение породит конфликты

PPS/ на этом фоне дополнительный sinput string MAGIC="просто уникальная строка"; не выглядит чем-то лишним. Решает кучу проблем самым простым методом. 

 
Maxim Kuznetsov #:


PPS/ на этом фоне дополнительный sinput string MAGIC="просто уникальная строка"; не выглядит чем-то лишним. Решает кучу проблем самым простым методом. 

Я подозреваю, что проблема в том, что индикаторов несколько, не на одном графике и уследить на каком графике какой был магик достаточно сложно. Вот и изгаляется человек…

 
Alexey Viktorov #:

Я подозреваю, что проблема в том, что индикаторов несколько, не на одном графике и уследить на каком графике какой был магик достаточно сложно. Вот и изгаляется человек…

в схожей ситуации (несколько интерактивных индикаторов на чарте), в индикаторах использовал параметр MainColor - цвет основной линии, всё равно пользователю надо их различать..

индикатор выставлял себе ShortName как имя+цвет и своим объёктам соотв.префиксы. И в коде контролировалась вся эта халабуда :-)

уже "исправили" - не помогает. Просто забил

 
Maxim Kuznetsov #:
варианты:

Экзотические варианты. Если после всех манипуляций пользователя отработали штатно все OnDeinit(), то проблем не будет.