Советники: EA_OBJPROP_CHART_ID

 

EA_OBJPROP_CHART_ID:

Вы хотите наложить на график объект "График" (OBJ_CHART) и работать с ним как с обычным графиком? Это возможно.

Получите хэндл объекта OBJ_CHART и работайте с ним функциями из раздела Операции с графиками. Это позволит задавать цвета графика, накладывать и удалять индикаторы (ChartIndicatorAdd() и ChartIndicatorDelete()), задавать период и символ и многое другое. Практически все те же возможности, которые доступны для обычных графиков.

Автор:  MetaQuotes

Объект OBJ_CHART на графике

 
А как при добавлении индикатора присвоить другие цвета буферов?
 
sergeev:
но чисто технически это возможно? в сервисдеск заявку стоит написать (не для "галочки")?

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

 

 


Rosh
, видится мне что уже скопилось немало просьб, касающихся расширения функциональности работы с индкаторами.

На данные момент мы имеем всего 4 функции работы с индикаторами программно:

В заявке в сервисдеск #98320 | 2011.05.08 19:13 предлагал дополнительную функцию:
ChartIndicatorFileName - которая возвращает имя файла индикатора

Просьба по расширенной работе с индикаторами тоже давно уже появилась (в мечтах юзеров :):
ChartIndicatorSetDouble, ChartIndicatorSetInteger, ChartIndicatorSetString - полные аналоги функций пользовательских индикаторов IndicatorSetDouble, IndicatorSetInteger, IndicatorSetString, но только обращение происходит к конкретному индикатору на чарте.


 
sergeev:
но чисто технически это возможно? в сервисдеск заявку стоит написать (не для "галочки")?

Функция ChartIndicatorAdd() оперирует хэндлом индикатора, то есть расчетной частью. Хэндл индикатора может использоваться многократно и одновременно, и он ничего не знает о том, на каком конкретном графике его данные отображаются и как визуально это выглядит. Это знает только сам индикатор, который наброшен на график.

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

 

ок. скажите, почему функция ChartSaveTemplate не сохраняет шаблоны с объекта "График" ?

хотя ChartApplyTemplate для объекта "График" нормально работает!

 
sergeev:

ок. скажите, почему функция ChartSaveTemplate не сохраняет шаблоны с объекта "График" ?

Это неожиданный вопрос, потому что такая возможность изначально не рассматривалась.
 

Вот здесь я недавно задавал подобный вопрос про разные цвета : https://www.mql5.com/ru/forum/3956

Там мне нужны были четыре разные МА. Всяко пробовал, никак не получилось.

Тогда я решил ограничиться тремя и набросил Аллигатор - это же три разноцветных МАшки. Установил у них нужные мне периоды.

И отсюда вопрос: где в Аллигаторе задаются цвета линий (отображаемых буферов)? Можно туда получить доступ каким-то образом?

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

OBJ_CHART
OBJ_CHART
  • www.mql5.com
С помощью данного кода можно создать объект OBJ_CHART и прикрепить к нему разные индикаторы, например, четыре МА:.
 
falkov:

И отсюда вопрос: где в Аллигаторе задаются цвета линий (отображаемых буферов)? Можно туда получить доступ каким-то образом?

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

При использовании функции ChartIndicatorAdd() индикатор накладывается на график с цветами по умолчанию. Управлять этим нельзя (напрямую).

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

 
Rosh:
такая возможность изначально не рассматривалась.

MetaTrader 5 Client Terminal build 468

MQL5: Исправлена работа функции ChartSaveTemplate.

Большое спасибо! Всё работает.

 

Rosh, а по заявке #98320 можете в объект хендлера индикатора добавить имя физического файла ?

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

ChartIndicatorFileName

Возвращает имя файла индикатора по номеру в списке индикаторов на указанном окна графика.

string  ChartIndicatorFileName(
   long  chart_id,      // идентификатор графика
   int   sub_window     // номер подокна
   int   index          // индекс индикатора в списке индикаторов, добавленных к данному подокну графика
   );

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