Как изменить стиль добавленного на график индикатора? (МТ5)

 
MqlParam params[4];

      params[0].type=TYPE_STRING;
      params[0].string_value="Examples\\ZigZag.ex5";

      params[1].type=TYPE_INT;
      params[1].integer_value=InpDepth;

      params[2].type=TYPE_INT;
      params[2].integer_value=InpDeviation;

      params[3].type=TYPE_INT;
      params[3].integer_value=InpBackstep;

      
      if(!m_zz.Create(m_name,tf,IND_CUSTOM,4,params))
        {
         PrintFormat("%s Error create ZigZag: %d",__FUNCTION__,GetLastError());
         return false;
        }

      if(!m_zz.NumBuffers(3))
        {
         PrintFormat("%s Error create buffers: %d",__FUNCTION__,GetLastError());
         return false;
        }

      if(ShowIndicator){
         m_zz.AddToChart(0,0);
      }   

Вот пример добавления зигзага на график после его создания, можно ли как то изменить цвет и толщину линий из советника? Как получить к ним доступ? 


#include <Indicators\Custom.mqh>

Использую стандартный класс CiCustom

Но решение не обязательно на нем, это всего лишь обертка.

 
Alexandr Gavrilin:

Вот пример добавления зигзага на график после его создания, можно ли как то изменить цвет и толщину линий из советника? Как получить к ним доступ? 


#include <Indicators\Custom.mqh>

Использую стандартный класс CiCustom

Но решение не обязательно на нем, это всего лишь обертка.

Советнику нужны только значения индикатора, зачем его добавлять на график советником? Проще это сделать через шаблон. Если поделитесь поставленной задачей, может и решение найдётся.

Например мне нужно было удалить с графика все индикаторы, убрать линии Bid и Ask и убрать свечи при запуске советника. А когда советник снимается с графика, то надо восстановить прежний шаблон. Восстановить свечи и линии нет проблем, а вот вернуть индикаторы — проблема. Но выход подсказал fxsaber

Если у вас аналогичная задача смотрите CodeBase

 
Alexey Viktorov #:

Советнику нужны только значения индикатора, зачем его добавлять на график советником? Проще это сделать через шаблон. Если поделитесь поставленной задачей, может и решение найдётся.

Например мне нужно было удалить с графика все индикаторы, убрать линии Bid и Ask и убрать свечи при запуске советника. А когда советник снимается с графика, то надо восстановить прежний шаблон. Восстановить свечи и линии нет проблем, а вот вернуть индикаторы — проблема. Но выход подсказал fxsaber

Если у вас аналогичная задача смотрите CodeBase

Клиент хотел чтобы индикатор нарисовался автоматически при запуске советника с теми настройками, которые он использует для работы, без шаблонов. Если делать через шаблон, то при этом у вас советник сброситься. Да и при изменении настроек, надо менять и шаблон, это не удобно.

Вывод индикатора был реализован и клиент сам меняет после показа индикаторов нужные стили уже с графика.  Программного решения я не нашел, как поменять стили уже у стоящего на графике индикатора. 

При удалении советника, он убирает и индикаторы тоже.

 
Alexandr Gavrilin #:

Клиент хотел чтобы индикатор нарисовался автоматически при запуске советника с теми настройками, которые он использует для работы, без шаблонов. Если делать через шаблон, то при этом у вас советник сброситься. Да и при изменении настроек, надо менять и шаблон, это не удобно.

Вывод индикатора был реализован и клиент сам меняет после показа индикаторов нужные стили уже с графика.  Программного решения я не нашел, как поменять стили уже у стоящего на графике индикатора. 

При удалении советника, он убирает и индикаторы тоже.

Я думаю стоимость таких хотелок должна измеряться почти 4х значным числом. А может и не единичкой с тремя нулями.

В принципе, я думаю всё возможно. Сохранить советником шаблон и удалить из шаблона упоминание об этом советнике, я делал. Думаю и добавить\изменить параметры индикатора тоже можно. Главное найти упоминание об индикаторе или если его нет, то вставить описание индикатора с соответствующими параметрами.

Если-же ему надо чтобы при визуальном тестировании на графике был индикатор с определёнными настройками, то посоветуйте ему сохранить шаблон с именем «tester.tpl» или с именем советника.

 

На проблему нужно посмотреть с другой стороны. Дело ведь не в советнике, а в индикаторе. Исходник ZigZag имеется. Значит, никто не запрещает внести в него изменения:

input     color i_clrLine = clrDodgerBlue;   // Line color
input     uint  i_uWidth = 3;                       // Line width

....

void OnInit()
{
   ...

   PlotIndexSetInteger(0, PLOT_LINE_COLOR, i_clrLine);
   PlotIndexSetInteger(0, PLOT_LINE_WIDTH, i_uWidth);
}

Далее при создании хэндла индикатора подставляются нужный цвет и толщина линии.

 
Alexandr Gavrilin:

Вот пример добавления зигзага на график после его создания, можно ли как то изменить цвет и толщину линий из советника? Как получить к ним доступ? 


#include <Indicators\Custom.mqh>

Использую стандартный класс CiCustom

Но решение не обязательно на нем, это всего лишь обертка.

Canvas - это наше всё ))

 
Ihor Herasko #:

На проблему нужно посмотреть с другой стороны. Дело ведь не в советнике, а в индикаторе. Исходник ZigZag имеется. Значит, никто не запрещает внести в него изменения:

Далее при создании хэндла индикатора подставляются нужный цвет и толщина линии.

на месте зигзага может быть любой пользовательский индикатор и не всегда есть его код чтобы делать такие корректировки.

 
Nikolai Semko #:

Canvas - это наше всё ))

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

 
Alexey Viktorov #:

Я думаю стоимость таких хотелок должна измеряться почти 4х значным числом. А может и не единичкой с тремя нулями.

В принципе, я думаю всё возможно. Сохранить советником шаблон и удалить из шаблона упоминание об этом советнике, я делал. Думаю и добавить\изменить параметры индикатора тоже можно. Главное найти упоминание об индикаторе или если его нет, то вставить описание индикатора с соответствующими параметрами.

Если-же ему надо чтобы при визуальном тестировании на графике был индикатор с определёнными настройками, то посоветуйте ему сохранить шаблон с именем «tester.tpl» или с именем советника.

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

 
Alexandr Gavrilin #:

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

Перезагрузка советника будет обязательно. Потому я и сказал так

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как изменить стиль добавленного на график индикатора? (МТ5)

Alexey Viktorov, 2022.10.31 12:32

Я думаю стоимость таких хотелок должна измеряться почти 4х значным числом. А может и не единичкой с тремя нулями.

В принципе, я думаю всё возможно. Сохранить советником шаблон и удалить из шаблона упоминание об этом советнике, я делал. Думаю и добавить\изменить параметры индикатора тоже можно. Главное найти упоминание об индикаторе или если его нет, то вставить описание индикатора с соответствующими параметрами.

Если-же ему надо чтобы при визуальном тестировании на графике был индикатор с определёнными настройками, то посоветуйте ему сохранить шаблон с именем «tester.tpl» или с именем советника.


 
Alexandr Gavrilin #:

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

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

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