- Типы объектов
- Свойства объектов
- Способы привязки объектов
- Угол привязки
- Видимость объектов
- Уровни волн Эллиотта
- Объекты Ганна
- Набор Web-цветов
- Wingdings
Свойства объектов
Графические объекты могут иметь множество свойств в зависимости от типа объекта. Установка и получение значений свойств объектов производится соответствующими функциями по работе с графическими объектами.
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов):
Объект |
Идентификатор |
X/Y |
Width/Height |
Date/Price |
|||
---|---|---|---|---|---|---|---|
Text |
— |
— |
Да |
— |
Да |
Да |
|
Label |
Да |
Да (только для чтения) |
— |
Да |
Да |
Да |
|
Button |
Да |
Да |
— |
Да |
— |
— |
|
Bitmap |
— |
Да (только для чтения) |
Да |
— |
Да |
— |
|
Bitmap Label |
Да |
Да (только для чтения) |
— |
Да |
Да |
— |
|
Edit |
Да |
Да |
— |
Да |
— |
— |
|
Rectangle Label |
Да |
Да |
— |
Да |
— |
— |
В таблице использованы следующие обозначения:
- X/Y – координаты точки привязки задаются в пикселях относительно одного из углов графика;
- Width/Height – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты вычисляются только после отрисовки объекта на графике;
- Date/Price – координаты точки привязки задаются парой дата/цена;
- OBJPROP_CORNER – задаёт угол графика, относительно которого указываются координаты точки привязки. Может быть одним из 4-х значений перечисления ENUM_BASE_CORNER;
- OBJPROP_ANCHOR – задаёт положение точки привязки в самом объекте, и может быть одним из 9-ти значений перечисления ENUM_ANCHOR_POINT. Именно от этой точки до выбранного угла графика указываются координаты в пикселях;
- OBJPROP_ANGLE – задаёт угол поворота объекта против часовой стрелки.
Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе обработки очереди событий данного графика.
По этой причине не следует ожидать немедленного визуального обновления графических объектов после вызова данных функций. В общем случае обновление графических объектов на чарте производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления графических объектов используйте команду на перерисовку графика ChartRedraw().
Для функций ObjectSetInteger() и ObjectGetInteger()
Идентификатор |
Описание |
Тип свойства |
---|---|---|
OBJPROP_COLOR |
Цвет |
color |
OBJPROP_STYLE |
Стиль |
|
OBJPROP_WIDTH |
Толщина линии |
int |
OBJPROP_BACK |
Объект на заднем плане |
bool |
OBJPROP_ZORDER |
Приоритет графического объекта на получение события нажатия мышки на графике (CHARTEVENT_CLICK). По умолчанию при создании значение выставляется равным нулю, но при необходимости можно повысить приоритет. При наложении объектов друг на друга событие CHARTEVENT_CLICK получит только один объект, чей приоритет выше остальных. |
long |
OBJPROP_FILL |
Заливка объекта цветом (для OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION) |
bool |
OBJPROP_HIDDEN |
Запрет на показ имени графического объекта в списке объектов из меню терминала "Графики" - "Объекты" - "Список объектов". Значение true позволяет скрыть ненужный для пользователя объект из списка. По умолчанию true устанавливается для объектов, которые отображают события календаря, историю торговли, а также для созданных из MQL5-программы. Для того чтобы увидеть такие графические объекты и получить доступ к их свойствам, нужно нажать кнопку "Все" в окне "Список объектов". |
bool |
OBJPROP_SELECTED |
Выделенность объекта |
bool |
OBJPROP_READONLY |
Возможность редактирования текста в объекте Edit |
bool |
OBJPROP_TYPE |
Тип объекта |
ENUM_OBJECT r/o |
OBJPROP_TIME |
Координата времени |
datetime модификатор=номер точки привязки |
OBJPROP_SELECTABLE |
Доступность объекта |
bool |
OBJPROP_CREATETIME |
Время создания объекта |
datetime r/o |
OBJPROP_LEVELS |
Количество уровней |
int |
OBJPROP_LEVELCOLOR |
Цвет линии-уровня |
color модификатор=номер уровня |
OBJPROP_LEVELSTYLE |
Стиль линии-уровня |
ENUM_LINE_STYLE модификатор=номер уровня |
OBJPROP_LEVELWIDTH |
Толщина линии-уровня |
int модификатор=номер уровня |
OBJPROP_ALIGN |
Горизонтальное выравнивание текста в объекте "Поле ввода" (OBJ_EDIT) |
|
OBJPROP_FONTSIZE |
Размер шрифта |
int |
OBJPROP_RAY_LEFT |
Луч продолжается влево |
bool |
OBJPROP_RAY_RIGHT |
Луч продолжается вправо |
bool |
OBJPROP_RAY |
Вертикальная линия продолжается на все окна графика |
bool |
OBJPROP_ELLIPSE |
Отображение полного эллипса для объекта "Дуги Фибоначчи" (OBJ_FIBOARC) |
bool |
OBJPROP_ARROWCODE |
Код стрелки для объекта "Стрелка" |
uchar |
OBJPROP_TIMEFRAMES |
Видимость объекта на таймфреймах |
набор флагов flags |
OBJPROP_ANCHOR |
Положение точки привязки графического объекта |
ENUM_ARROW_ANCHOR (для OBJ_ARROW), ENUM_ANCHOR_POINT (для OBJ_LABEL, OBJ_BITMAP_LABEL и OBJ_TEXT) |
OBJPROP_XDISTANCE |
Дистанция в пикселях по оси X от угла привязки (см. примечание) |
int |
OBJPROP_YDISTANCE |
Дистанция в пикселях по оси Y от угла привязки (см. примечание) |
int |
OBJPROP_DIRECTION |
Тренд объекта Ганна |
|
OBJPROP_DEGREE |
Уровень волновой разметки Эллиота |
|
OBJPROP_DRAWLINES |
Отображение линий для волновой разметки Эллиота |
bool |
OBJPROP_STATE |
Состояние кнопки (Нажата/Отжата) |
bool |
OBJPROP_CHART_ID |
Идентификатор объекта "График" (OBJ_CHART). Позволяет работать со свойствами этого объекта как с обычным графиком с помощью функций из раздела Операции с графиками, но есть некоторые исключения. |
long r/o |
OBJPROP_XSIZE |
Ширина объекта по оси X в пикселях. Задается для объектов OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL. |
int |
OBJPROP_YSIZE |
Высота объекта по оси Y в пикселях. Задается для объектов OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL. |
int |
OBJPROP_XOFFSET |
X-координата левого верхнего угла прямоугольной области видимости в графических объектах "Графическая метка" и "Рисунок" (OBJ_BITMAP_LABEL и OBJ_BITMAP). Значение задается в пикселях относительного верхнего левого угла исходного изображения. |
int |
OBJPROP_YOFFSET |
Y-координата левого верхнего угла прямоугольной области видимости в графических объектах "Графическая метка" и "Рисунок" (OBJ_BITMAP_LABEL и OBJ_BITMAP). Значение задается в пикселях относительного верхнего левого угла исходного изображения. |
int |
OBJPROP_PERIOD |
Период для объекта "График" |
|
OBJPROP_DATE_SCALE |
Признак отображения шкалы времени для объекта "График" |
bool |
OBJPROP_PRICE_SCALE |
Признак отображения ценовой шкалы для объекта "График" |
bool |
OBJPROP_CHART_SCALE |
Масштаб для объекта "График" |
int значение в диапазоне 0–5 |
OBJPROP_BGCOLOR |
Цвет фона для OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL |
color |
OBJPROP_CORNER |
Угол графика для привязки графического объекта |
|
OBJPROP_BORDER_TYPE |
Тип рамки для объекта "Прямоугольная рамка" |
|
OBJPROP_BORDER_COLOR |
Цвет рамки для объекта OBJ_EDIT и OBJ_BUTTON |
color |
При применении операций с графиками для объекта "График" (OBJ_CHART) действуют следующие ограничения:
- нельзя закрыть с помощью ChartClose();
- нельзя поменять символ/период с помощью функции ChartSetSymbolPeriod();
- не работают свойства CHART_SCALE, CHART_BRING_TO_TOP, CHART_SHOW_DATE_SCALE и CHART_SHOW_PRICE_SCALE (ENUM_CHART_PROPERTY_INTEGER).
Для объектов OBJ_BITMAP_LABEL и OBJ_BITMAP программным путем можно установить специальный режим показа изображения. В этом режиме показывается только та часть исходного изображения, на которую накладывается прямоугольная область видимости, остальная часть картинки становится невидимой. Размеры области видимости необходимо установить с помощью свойств OBJPROP_XSIZE и OBJPROP_YSIZE. Область видимости можно "перемещать" только в пределах исходного изображения с помощью свойств OBJPROP_XOFFSET и OBJPROP_YOFFSET.
Для объектов с фиксированными размерами: OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDIT и OBJ_CHART свойства OBJPROP_XDISTANCE и OBJPROP_YDISTANCE задают положение левой верхней точки объекта относительно угла графика (OBJPROP_CORNER), от которого будут отсчитываться координаты X и Y в пикселях.
Для функций ObjectSetDouble() и ObjectGetDouble()
Идентификатор |
Описание |
Тип свойства |
---|---|---|
OBJPROP_PRICE |
Координата цены |
double модификатор=номер точки привязки |
OBJPROP_LEVELVALUE |
Значение уровня |
double модификатор=номер уровня |
OBJPROP_SCALE |
Масштаб (свойство объектов Ганна и объекта "Дуги Фибоначчи") |
double |
OBJPROP_ANGLE |
Угол. Для объектов с еще не заданным углом, созданных из программы, значение равно EMPTY_VALUE |
double |
OBJPROP_DEVIATION |
Отклонение для канала стандартного отклонения |
double |
Для функций ObjectSetString() и ObjectGetString()
Идентификатор |
Описание |
Тип свойства |
---|---|---|
OBJPROP_NAME |
Имя объекта |
string |
OBJPROP_TEXT |
Описание объекта (текст, содержащийся в объекте) |
string |
OBJPROP_TOOLTIP |
Текст всплывающей подсказки. Если свойство не задано, то показывается подсказка, автоматически сформированная терминалом. Можно отключить показ подсказки, установив для нее значение "\n" (перевод строки) |
string |
OBJPROP_LEVELTEXT |
Описание уровня |
string модификатор=номер уровня |
OBJPROP_FONT |
Шрифт |
string |
OBJPROP_BMPFILE |
Имя BMP-файла для объекта "Графическая метка". Смотри также Ресурсы |
string модификатор: 0-состояние ON, 1-состояние OFF |
OBJPROP_SYMBOL |
Символ для объекта "График" |
string |
Для объекта OBJ_RECTANGLE_LABEL ("Прямоугольная метка") можно задать один из трех видов отображения, которым соответствуют значения из перечисления ENUM_BORDER_TYPE.
Идентификатор |
Описание |
---|---|
BORDER_FLAT |
Плоский вид |
BORDER_RAISED |
Выпуклый вид |
BORDER_SUNKEN |
Вогнутый вид |
Для объекта OBJ_EDIT ("Поле ввода") и для функции ChartScreenShot() можно указать тип выравнивания по горизонтали с помощью значений перечисления ENUM_ALIGN_MODE.
Идентификатор |
Описание |
---|---|
ALIGN_LEFT |
Выравнивание по левой границе |
ALIGN_CENTER |
Выравнивание по центру (только для объекта "Поле ввода") |
ALIGN_RIGHT |
Выравнивание по правой границе |
Пример:
#define UP "\x0431"
|