Позволяет ли mql5 написать индикатор, рисующий графики в разных окнах или получать доступ к буферам индикаторов в других окнах? - страница 3

 
fxsaber:

Ответ из Сервисдеск

Так что счетчики - это ТОЛЬКО стандартные индикаторы. Кастомные - никаких счетчиков.

В Сервисдеске обманули. Есть счетчики для кастомных. Запускаем индикатор несколько раз на чарте

#property indicator_separate_window
#property indicator_buffers 0
#property indicator_plots   0

void OnInit( void )
{
 Print(__FUNCTION__);
}

void OnDeinit( const int Reason )
{ 
  Print(__FUNCTION__);
}
int OnCalculate( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[] )
{
  return(rates_total);
}

В логе OnInit будет только после первого запуска, а OnDeinit - последнего удаления. 

Теперь полное непонимание, как там это все устроено.

 
fxsaber:

В Сервисдеске обманули. Есть счетчики для кастомных. Запускаем индикатор несколько раз на чарте

В логе OnInit будет только после первого запуска, а OnDeinit - последнего удаления. 

Теперь полное непонимание, как там это все устроено.

Это было добросовестное заблуждение одного из сотрудников. "Счетчик" есть для всех типов индикаторов. Для кастомных индикаторов проверка на совпадение настроек более жесткая чем для встроенных. Только при полном совпадении всех настроек, включая параметры отрисовки, и только в пределах одного чарта, возможно повторное использование копии кастомного индикатора.

 
Anton:

Это было добросовестное заблуждение одного из сотрудников. "Счетчик" есть для всех типов индикаторов. Для кастомных индикаторов проверка на совпадение настроек более жесткая чем для встроенных. Только при полном совпадении всех настроек, включая параметры отрисовки, и только в пределах одного чарта, возможно повторное использование копии кастомного индикатора.

Сейчас написал доп. тест. Все так, как Вы говорите. После ответа Вашего коллеги мне пришлось пойти совсем в другом направлении, чтобы реализовать задуманное. А теперь надо перечеркнуть все сделанное и возвращаться обратно. Все понимаю, но неприятный осадок как-никак. Хоть ступал там не зря - баг откопал.
 
Anton #:

Это было добросовестное заблуждение одного из сотрудников. "Счетчик" есть для всех типов индикаторов. Для кастомных индикаторов проверка на совпадение настроек более жесткая чем для встроенных. Только при полном совпадении всех настроек, включая параметры отрисовки, и только в пределах одного чарта, возможно повторное использование копии кастомного индикатора.

Интересно, а как сделать так, чтобы один и тот же индикатор запускались как разные экземпляры. В процессе настройки и работы пользователь может поменять режимы отображения. Но сейчас меняются сразу во всех (двух) окнах индикатора. В коде есть определения номера окна индикатора и генерация объектов, в имени которых будет указан данный код, но получается, что во втором экземпляре индикатора, который открыт в другом окне (например 4) все параметры первого, в том числе значение функции ChartWindowFind(), то бишь окна номер 3.
 
Nikolay Kuznetsov #:
фейковый параметр?
 
TheXpert #:
фейковый параметр?
Да, для каждой копии свой, только не забыть поменять при установке на график