Русский

Справочник MQL4 Графические объекты

Графические объекты

Группа функций, предназначенных для работы с графическими объектами, относящимися к любому указанному графику. При этом для объектов собственного графика используется прямой доступ, то есть при вызове функции предварительно проверяется существование указанного объекта и сразу же выводится код ошибки в случае неудачи. При использовании функций для объектов чужого графика вызов является асинхронным – то есть никакие предварительные проверки не производятся и команда отправляется в очередь указанного графика как есть.

Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе обработки очереди событий данного графика.

По этой причине не следует ожидать немедленного визуального обновления графических объектов после вызова данных функций. В общем случае обновление графических объектов на чарте производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления графических объектов используйте команду на перерисовку графика ChartRedraw().

Функция

Действие

ObjectCreate

Создает объект заданного типа в указанном подокне графика

ObjectName

Возвращает имя объекта по порядковому номеру в списке объектов

ObjectDelete

Удаляет объект с указанным именем

ObjectsDeleteAll

Удаляет все объекты с указанным типом и в указанном подокне графика

ObjectFind

Ищет по имени объект с указанным именем

ObjectGetTimeByValue

Возвращает значение времени для указанного значения цены объекта

ObjectGetValueByTime

Возвращает ценовое значение объекта для указанного времени

ObjectMove

Изменяет координаты указанной точки привязки объекта

ObjectsTotal

Возвращает общее число объектов указанного типа на графике

ObjectGetDouble

Возвращает значение типа double соответствующего свойства объекта

ObjectGetInteger

Возвращает целочисленное значение соответствующего свойства объекта

ObjectGetString

Возвращает значение типа string соответствующего свойства объекта

ObjectSetDouble

Устанавливает значение соответствующего свойства объекта

ObjectSetInteger

Устанавливает значение соответствующего свойства объекта

ObjectSetString

Устанавливает значение соответствующего свойства объекта

TextSetFont

Устанавливает шрифт для вывода текста методами рисования (по умолчанию используется шрифт Arial 20)

TextOut

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

TextGetSize

Возвращает ширину и высоту строки при текущих настройках шрифта

ObjectDescription

Возвращает описание объекта

ObjectGet

Возвращает значение указанного свойства объекта

ObjectGetFiboDescription

Возвращает описание уровня объекта Фибоначчи

ObjectGetShiftByValue

Вычисляет и возвращает номер бара (смещение относительно текущего бара) для указанной цены

ObjectGetValueByShift

Вычисляет и возвращает значение цены для указанного бара (смещение относительно текущего бара)

ObjectSet

Изменяет значение указанного свойства объекта

ObjectSetFiboDescription

Устанавливает новое описание уровня объекта Фибоначчи

ObjectSetText

Изменяет описание объекта

ObjectType

Возвращает тип указанного объекта

Каждый графический объект должен иметь имя, уникальное в пределах одного графика, включая его подокна. Изменение имени графического объекта формирует два события: первое - это событие удаления объекта со старым именем, и второе – событие  создания графического объекта с новым именем.

После создания объекта или модификации свойств объекта  рекомендуется вызывать функцию ChartRedraw(), которая отдает терминалу команду на принудительную отрисовку графика (и всех видимых на нем объектов).

 

Что нового в MQL5

В MQL5 стало больше графических объектов и самым необычным из них является OBJ_CHART(График) – вы можете вставлять такие объекты как графики символов. Добавьте вместе с OBJ_CHART также индикаторы и панели управления с обработкой пользовательских событий – и обычный график превратится в удобный инструмент анализа с возможностью быстрой смены символов и таймфреймов одним кликом мышки.

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

live_chart_panel