iCustom() + ChartIndicatorAdd() + графические объекты. - страница 2

 
Maxim Kuznetsov #:

Это что за бред, невыспанный что-ли ?

Не понял ни содержания, ни формы.
 
fxsaber #:
Не понял ни содержания, ни формы.

Тебя точно не подменили ? и аккаунт не увели ??

несколько дней подряд от тебя такое, что хоть стой хоть падай..такое ощущение что человек другой

вот это https://www.mql5.com/ru/forum/463429#comment_52591024 не делает вообще ничего разумного, баг-репорты бесполезны :-)

---

способ как загрузить индикатор на соседний чарт и получить его хендл, так чтобы правильно работали его графические объекты, а сам индикатор получал OnTimer(),OnChartEvent я описал чуть ранее

писать много, но такое должно быть в CodeBase. Помниться встречал готовый код для работы с шаблонами чартов (разбор и формирование)

iCustom() + ChartIndicatorAdd() + графические объекты. - Вызовите iCustom. Скажите заказчику, чтобы изменить индикатор. Попробуйте в цикле пройтись по открытым графикам с помощью ChartApplyTemplate.
iCustom() + ChartIndicatorAdd() + графические объекты. - Вызовите iCustom. Скажите заказчику, чтобы изменить индикатор. Попробуйте в цикле пройтись по открытым графикам с помощью ChartApplyTemplate.
  • 2024.03.02
  • www.mql5.com
Необходимо программно в советнике создать индикатор и добавить его на график. На чужой график можно помолясь добавлять через ChartApplyTemplate. в которой уже зачем-то создаются объекты на графике советника
 
Maxim Kuznetsov #:

вот это https://www.mql5.com/ru/forum/463429#comment_52591024 не делает вообще ничего разумного

Советник.

bool ChartIndicatorAdd2( const long chart_id, const int sub_window,
                         const int indicator_handle, const bool Force = false )
{
  return(ChartIndicatorAdd(chart_id, sub_window, indicator_handle) &&
         (!Force || (chart_id <= 0) || (chart_id == ChartID()) ||
          (IndicatorRelease(indicator_handle) &&
           ChartSaveTemplate(chart_id, __FILE__) &&
           ChartApplyTemplate(chart_id, __FILE__))));
}     

void OnInit()
{
  // https://www.mql5.com/ru/forum/1111/page3499#comment_52590843
  ChartIndicatorAdd2(ChartOpen(_Symbol, _Period), 0, iCustom(NULL, 0, "\\Indicators\\Test.ex5"), true);
}


Индикатор \\Indicators\\Test.ex5.

#property indicator_chart_window

#property indicator_buffers 0
#property indicator_plots 0

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[] )
{
  ObjectCreate(0, "Tmp", OBJ_VLINE, 0, TimeCurrent(), 0);    
  Print(ChartID());
    
  return(rates_total);
}


Если запустить советник, то будет вертикальная линия на чарте советника и индикатор на новом чарте. Если руками на новом чарте сохранить шаблон и потом его же загрузить, то появится вертикальная линия и на новом чарте.


ChartIndicatorAdd2 делает выделенное.

Причина обращения: