- Типы объектов и особенности указания их координат
- Объекты с привязкой ко времени и цене
- Объекты с привязкой к экранным координатам
- Создание объектов
- Удаление объектов
- Поиск объектов
- Обзор функций доступа к свойствам объектов
- Основные свойства объектов
- Координаты времени и цены
- Угол окна привязки и экранные координаты
- Определение точки привязки на объекте
- Управление состоянием объекта
- Приоритет объектов (Z-порядок)
- Настройка отображения объекта: цвет, стиль и рамка
- Настройки шрифта
- Поворот текста на произвольный угол
- Определение ширины и высоты объектов
- Видимость объектов в разрезе таймфреймов
- Назначение кода символа для метки
- Свойства лучей для объектов c прямыми линиями
- Управление нажатым состоянием объекта
- Настройка изображений в объектах-картинках
- Кадрирование (вывод части) изображения
- Свойства поля ввода: выравнивание и "только чтение"
- Ширина канала стандартного отклонения
- Настройка уровней в объектах с их поддержкой
- Дополнительные свойства Ганна, Фибоначчи и Эллиота
- Объект-график
- Перемещение объектов
- Получение времени или цены в заданных точках линий
Основные свойства объектов
Все объекты обладают некоторыми универсальными атрибутами. Основные из них перечислены в следующей таблице. Позднее мы познакомимся с другими общими свойствами специального назначения (см. разделы Управление состоянием объекта, Z-порядок, Видимость объектов в разрезе таймфреймов).
Идентификатор |
Описание |
Тип |
---|---|---|
OBJPROP_NAME |
Имя объекта |
string |
OBJPROP_TYPE |
Тип объекта (r/o) |
ENUM_OBJECT |
OBJPROP_CREATETIME |
Время создания объекта (r/o) |
datetime |
OBJPROP_TEXT |
Описание объекта (текст, содержащийся в объекте) |
string |
OBJPROP_TOOLTIP |
Текст всплывающей подсказки по наведению мыши |
string |
Свойство OBJPROP_NAME является идентификатором объекта. Его редактирование эквивалентно удалению старого объекта и созданию нового.
Для некоторых типов объектов, способных отображать текст (таких как надписи или кнопки), свойство OBJPROP_TEXT всегда выводится непосредственно на график, внутри объекта. Для остальных объектов (например, линий) это свойство содержит описание, которое выводится на график рядом с объектом и только в том случае, если в настройках графика включена опция Показывать описания объектов. В любом случае OBJPROP_TEXT выводится во всплывающей подсказке.
Свойство OBJPROP_CREATETIME сохраняется только до конца текущего сеанса и не записывается в chr-файлы.
Вы можете изменить название объекта программно или вручную (в диалоге свойств объекта) — при этом его время создания останется прежним. Забегая вперед, отметим, что программное переименование не вызывает на графике каких-либо событий об объектах. Как мы узнаем в следующей главе, ручное переименование вызывает три события:
- удаление объекта под старым именем (CHARTEVENT_OBJECT_DELETE),
- создание объекта под новым именем (CHARTEVENT_OBJECT_CREATE) и
- модификацию нового объекта (CHARTEVENT_OBJECT_CHANGE).
Если свойство OBJPROP_TOOLTIP не задано, для объекта показывается подсказка, автоматически формируемая терминалом. Чтобы отключить показ подсказки, следует установить для нее значение "\n" (перевод строки).
Адаптируем скрипт ObjectFinder.mq5 из раздела Поиск объектов для вывода в журнал всех вышеуказанных свойств объектов на текущем графике. Назовем новый скрипт ObjectListing.mq5.
В самом начале OnStart создадим или модифицируем вертикальную прямую линию, расположенную на последнем баре (на момент запуска скрипта). Если в настройках графика стоит опция показывать описания объектов, то вдоль правой вертикальной линии увидим текст "Latest Bar At The Moment".
void OnStart()
|
Далее в цикле по подокнам запросим все объекты вплоть до ObjectsTotal и их основные свойства.
int count = 0;
|
Получим в журнале примерно следующие записи.
Window 0
|
Нулевое значение OBJPROP_CREATETIME (1970.01.01 00:00) означает, что объект был создан не во время текущего сеанса, а раньше.