Группа функций, предназначенных для работы с графическими объектами, относящимися к любому указанному графику.
Функции, задающие свойства графических объектов, а также операции создания 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 |
Возвращает ширину и высоту строки при текущих настройках шрифта |
Каждый графический объект должен иметь имя, уникальное в пределах одного графика, включая его подокна. Изменение имени графического объекта формирует два события: первое — это событие удаления объекта со старым именем, и второе – событие создания графического объекта с новым именем.
После создания объекта или модификации свойств объекта рекомендуется вызывать функцию ChartRedraw(), которая отдает терминалу команду на принудительную отрисовку графика (и всех видимых на нем объектов).
ObjectCreate
Создает объект с указанным именем, типом и начальными координатами в указанном подокне графика. При создании можно указать до 30 координат.
bool ObjectCreate( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT type, // тип объекта int sub_window, // индекс окна datetime time1, // время первой точки привязки double price1, // цена первой точки привязки ... datetime timeN=0, // время N-ой точки привязки double priceN=0, // цена N-ой точки привязки ... datetime time30=0, // время 30-й точки привязки double price30=0 // цена 30-точки привязки );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта. Имя должно быть уникальным в пределах одного графика, включая его подокна.
type — [in] Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT.
sub_window — [in] Номер подокна графика. 0 означает главное окно графика. Указанное подокно должно существовать, в противном случае функция возвращает false.
time1 — [in] ВременнАя координата первой привязки.
price1 — [in] Ценовая координата первой точки привязки.
timeN=0 — [in] ВременнАя координата N-ой точки привязки.
priceN=0 — [in] Ценовая координата N-ой точки привязки.
time30=0 — [in] ВременнАя координата тридцатой точки привязки.
price30=0 — [in] Ценовая координата тридцатой точки привязки.
Возвращаемое значение
Возвращает true при успешной постановке команды в очередь указанного графика, иначе false. Если объект был уже создан ранее, то производится попытка изменить его координаты.
Примечание
При вызове ObjectCreate() всегда используется асинхронный вызов, поэтому функция возвращает только результат постановки команды в очередь графика. В этом случае true означает только то, что команда успешно поставлена в очередь, сам результат её выполнения неизвестен.
Для проверки результата выполнения можно использовать функцию ObjectFind() или любые функции, запрашивающие свойства объекта, например вида ObjectGetXXX. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд графика и дожидаются результата выполнения (так как являются синхронными вызовами), то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
Имя графического объекта не должно превышать 63 символа.
Нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0.
Большое количество точек привязки (до 30-ти) предусмотрено для будущего использования. В то же время ограничение только 30-тью возможными точками привязки для графических объектов обусловлено тем, что при вызове функции количество параметров не должно превышать 64.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
событие удаления объекта со старым именем;
событие создания графического объекта с новым именем.
Для создания каждого из типов объектов требуется задать определенное количество точек привязки:
Идентификатор |
Описание |
Точки привязки |
OBJ_VLINE |
Вертикальная линия |
Одна точка привязки. Фактически используется только координата по оси времени. |
OBJ_HLINE |
Горизонтальная линия |
Одна точка привязки. Фактически используется только координата по оси цены. |
OBJ_TREND |
Трендовая линия |
Две точки привязки. |
OBJ_TRENDBYANGLE |
Трендовая линия по углу |
Две точки привязки. |
OBJ_CYCLES |
Циклические линии |
Две точки привязки. |
OBJ_ARROWED_LINE |
Объект «Линия со стрелкой» |
Две точки привязки. |
OBJ_CHANNEL |
Равноудаленный канал |
Три точки привязки. |
OBJ_STDDEVCHANNEL |
Канал стандартного отклонения |
Две точки привязки. |
OBJ_REGRESSION |
Канал на линейной регрессии |
Две точки привязки. |
OBJ_PITCHFORK |
Вилы Эндрюса |
Три точки привязки. |
OBJ_GANNLINE |
Линия Ганна |
Две точки привязки. |
OBJ_GANNFAN |
Веер Ганна |
Две точки привязки. |
OBJ_GANNGRID |
Сетка Ганна |
Две точки привязки. |
OBJ_FIBO |
Уровни Фибоначчи |
Две точки привязки. |
OBJ_FIBOTIMES |
Временные зоны Фибоначчи |
Две точки привязки. |
OBJ_FIBOFAN |
Веер Фибоначчи |
Две точки привязки. |
OBJ_FIBOARC |
Дуги Фибоначчи |
Две точки привязки. |
OBJ_FIBOCHANNEL |
Канал Фибоначчи |
Три точки привязки. |
OBJ_EXPANSION |
Расширение Фибоначчи |
Три точки привязки. |
OBJ_ELLIOTWAVE5 |
5-волновка Эллиота |
Пять точек привязки. |
OBJ_ELLIOTWAVE3 |
3-волновка Эллиота |
Три точки привязки. |
OBJ_RECTANGLE |
Прямоугольник |
Две точки привязки. |
OBJ_TRIANGLE |
Треугольник |
Три точки привязки. |
OBJ_ELLIPSE |
Эллипс |
Три точки привязки. |
OBJ_ARROW_THUMB_UP |
Знак «Хорошо» (большой палец вверх) |
Одна точка привязки. |
OBJ_ARROW_THUMB_DOWN |
Знак «Плохо» (большой палец вниз) |
Одна точка привязки. |
OBJ_ARROW_UP |
Знак «Стрелка вверх» |
Одна точка привязки. |
OBJ_ARROW_DOWN |
Знак «Стрелка вниз» |
Одна точка привязки. |
OBJ_ARROW_STOP |
Знак «Стоп» |
Одна точка привязки. |
OBJ_ARROW_CHECK |
Знак «Птичка» (галка) |
Одна точка привязки. |
OBJ_ARROW_LEFT_PRICE |
Левая ценовая метка |
Одна точка привязки. |
OBJ_ARROW_RIGHT_PRICE |
Правая ценовая метка |
Одна точка привязки. |
OBJ_ARROW_BUY |
Знак «Buy» |
Одна точка привязки. |
OBJ_ARROW_SELL |
Знак «Sell» |
Одна точка привязки. |
OBJ_ARROW |
Объект «Стрелка» |
Одна точка привязки. |
OBJ_TEXT |
Объект «Текст» |
Одна точка привязки. |
OBJ_LABEL |
Объект «Текстовая метка» |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
OBJ_BUTTON |
Объект «Кнопка» |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
OBJ_CHART |
Объект «График» |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
OBJ_BITMAP |
Объект «Рисунок» |
Одна точка привязки. |
OBJ_BITMAP_LABEL |
Объект «Графическая метка» |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
OBJ_EDIT |
Объект «Поле ввода» |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
OBJ_EVENT |
Объект «Событие», соответствующий событию в экономическом календаре |
Одна точка привязки. Фактически используется только координата по оси времени. |
OBJ_RECTANGLE_LABEL |
Объект «Прямоугольная метка»для создания и оформления пользовательского графического интерфейса. |
Положение задается при помощи свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE. |
ObjectName
Возвращает имя соответствующего объекта в указанном чарте, указанном подокне указанного чарта, указанного типа.
string ObjectName( long chart_id, // идентификатор графика int pos, // номер в списке объектов int sub_window=-1, // номер окна int type=-1 // тип объекта );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
pos — [in] Порядковый номер объекта согласно указанного фильтра по номеру подокна и типу.
sub_window=-1 — [in] Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.
type=-1 — [in] Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.
Возвращаемое значение
Имя объекта в случае успеха.
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
- событие удаления объекта со старым именем;
- событие создания графического объекта с новым именем.
ObjectDelete
Удаляет объект с указанным именем с указанного графика.
bool ObjectDelete( long chart_id, // идентификатор графика string name // имя объекта );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя удаляемого объекта.
Возвращаемое значение
Возвращает true при успешной постановке команды в очередь указанного графика, иначе false.
Примечание
При вызове ObjectDelete() всегда используется асинхронный вызов, поэтому функция возвращает только результат постановки команды в очередь графика. В этом случае true означает только то, что команда успешно поставлена в очередь, сам результат её выполнения неизвестен.
Для проверки результата выполнения можно использовать функцию ObjectFind() или любые функции, запрашивающие свойства объекта, например вида ObjectGetXXX. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд графика и дожидаются результата выполнения (так как являются синхронными вызовами), то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
- событие удаления объекта со старым именем;
- событие создания графического объекта с новым именем.
ObjectsDeleteAll
Удаляет все объекты в указанном графике, указанном подокне указанного графика, указанного типа. Существует два варианта функции:
int ObjectsDeleteAll( long chart_id, // идентификатор графика int sub_window=-1, // индекс окна int type=-1 // тип объекта для удаления );
Удаляет по префиксу имени в подокне графика все объекты указанного типа.
int ObjectsDeleteAll( long chart_id, // идентификатор графика const string prefix, // префикс имени объекта int sub_window=-1, // индекс окна int object_type=-1 // тип объекта для удаления );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
prefix — [in] Префикс, по которому будут удалены все объекты, чьи имена начинаются с данного набора символов. Префикс можно указывать как ‘name’ или ‘name*’ – оба варианта работают одинаково. Если в качестве префикса указана пустая строка, то будут удалены объекты с любым именем.
sub_window=-1 — [in] Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.
type=-1 — [in] Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.
Возвращаемое значение
Возвращает количество удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectFind
Ищет объект с указанным именем на графике с указанным идентификатором.
int ObjectFind(
long chart_id, // идентификатор графика
string name // имя объекта
);
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя искомого объекта.
Возвращаемое значение
В случае удачи функция возвращает номер подокна (0 означает главное окно графика), в котором находится найденный объект. Если объект не найден, то функция возвращает отрицательное число. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
- событие удаления объекта со старым именем;
- событие создания графического объекта с новым именем.
ObjectGetTimeByValue
Возвращает значение времени для указанного значения цены указанного объекта.
datetime ObjectGetTimeByValue( long chart_id, // идентификатор графика string name, // имя объекта double value, // цена int line_id // номер линии );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
value — [in] Значение цены.
line_id — [in] Идентификатор линии.
Возвращаемое значение
Значение времени для указанного значения цены указанного объекта.
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
Так как объект в одной координате цены может иметь несколько значений, то необходимо указать номер линии. Эта функция применима только для следующих объектов:
- Трендовая линия (OBJ_TREND)
- Трендовая линия по углу (OBJ_TRENDBYANGLE)
- Линия Ганна (OBJ_GANNLINE)
- Равноудаленный канал (OBJ_CHANNEL) — 2 линии
- Канал на линейной регрессии (OBJ_REGRESSION) — 3 линии
- Канал стандартного отклонения (OBJ_STDDEVCHANNEL) — 3 линии
- Линия со стрелкой (OBJ_ARROWED_LINE)
ObjectGetValueByTime
Возвращает значение цены для указанного времени указанного объекта.
double ObjectGetValueByTime( long chart_id, // идентификатор графика string name, // имя объекта datetime time, // время int line_id // номер линии );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
time — [in] Значение времени.
line_id — [in] Идентификатор линии.
Возвращаемое значение
Значение цены для указанного времени указанного объекта.
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
Так как объект в одной координате цены может иметь несколько значений, то необходимо указать номер линии. Эта функция применима только для следующих объектов:
- Трендовая линия (OBJ_TREND)
- Трендовая линия по углу (OBJ_TRENDBYANGLE)
- Линия Ганна (OBJ_GANNLINE)
- Равноудаленный канал (OBJ_CHANNEL) — 2 линии
- Канал на линейной регрессии (OBJ_REGRESSION) — 3 линии
- Канал стандартного отклонения (OBJ_STDDEVCHANNEL) — 3 линии
- Линия со стрелкой (OBJ_ARROWED_LINE)
ObjectMove
Изменяет координаты указанной точки привязки объекта.
bool ObjectMove( long chart_id, // идентификатор графика string name, // имя объекта int point_index, // номер привязки datetime time, // время double price // цена );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
point_index — [in] Номер точки привязки. Количество точек привязки зависит от типа объекта.
time — [in] ВременнАя координата указанной точки привязки.
price — [in] Ценовая координата указанной точки привязки.
Возвращаемое значение
Возвращает true при успешной постановке команды в очередь указанного графика, иначе false.
Примечание
При вызове ObjectMove() всегда используется асинхронный вызов, поэтому функция возвращает только результат постановки команды в очередь графика. В этом случае true означает только то, что команда успешно поставлена в очередь, сам результат её выполнения неизвестен.
Для проверки результата выполнения можно использовать функцию, запрашивающую свойства объекта, например вида ObjectGetXXX. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд графика и дожидаются результата выполнения (так как являются синхронными вызовами), то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectsTotal
Возвращает количество объектов в указанном чарте, указанном подокне указанного чарта, указанного типа.
int ObjectsTotal( long chart_id, // идентификатор графика int sub_window=-1, // индекс окна int type=-1 // тип объекта );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
nwin=-1 — [in] Номер подокна графика. 0 означает главное окно графика, -1 означает все подокна графика, включая главное окно.
type=-1 — [in] Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT. -1 означает все типы.
Возвращаемое значение
Количество объектов.
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectSetDouble
Задает значение соответствующего свойства объекта. Свойство объекта должно быть типа double. Существует 2 варианта функции.
Установка значения свойства, не имеющего модификатора
bool ObjectSetDouble( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_DOUBLE prop_id, // свойство double prop_value // значение );
Установка значения свойства с указанием модификатора
bool ObjectSetDouble( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_DOUBLE prop_id, // свойство int prop_modifier, // модификатор double prop_value // значение );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_DOUBLE.
prop_modifier — [in] Модификатор указанного свойства. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
prop_value — [in] Значение свойства.
Возвращаемое значение
Возвращает true только в том случае, если команда на изменение свойств графического объекта успешно отправлена графику, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует асинхронный вызов – это означает, что функция не дожидается выполнения команды, успешно поставленной в очередь указанного графика, а сразу же возвращает управление.
Для проверки результата выполнения на чужом графике можно использовать функцию, запрашивающую указанное свойство объекта. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд чужого графика и дожидаются результата выполнения, то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectSetInteger
Задает значение соответствующего свойства объекта. Свойство объекта должно быть типов datetime, int, color, bool или char. Существует 2 варианта функции.
Установка значения свойства, не имеющего модификатора
bool ObjectSetInteger( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_INTEGER prop_id, // свойство long prop_value // значение );
Установка значения свойства с указанием модификатора
bool ObjectSetInteger( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_INTEGER prop_id, // свойство int prop_modifier, // модификатор long prop_value // значение );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_INTEGER.
prop_modifier — [in] Модификатор указанного свойства. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
prop_value — [in] Значение свойства.
Возвращаемое значение
Возвращает true только в том случае, если команда на изменение свойств графического объекта успешно отправлена графику, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует асинхронный вызов – это означает, что функция не дожидается выполнения команды, успешно поставленной в очередь указанного графика, а сразу же возвращает управление.
Для проверки результата выполнения на чужом графике можно использовать функцию, запрашивающую указанное свойство объекта. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд чужого графика и дожидаются результата выполнения, то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectSetString
Задает значение соответствующего свойства объекта. Свойство объекта должно быть типа string. Существует 2 варианта функции.
Установка значения свойства, не имеющего модификатора
bool ObjectSetString( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_STRING prop_id, // свойство string prop_value // значение );
Установка значения свойства с указанием модификатора
bool ObjectSetString( long chart_id, // идентификатор графика string name, // имя ENUM_OBJECT_PROPERTY_STRING prop_id, // свойство int prop_modifier, // модификатор string prop_value // значение );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_STRING.
prop_modifier — [in] Модификатор указанного свойства. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
prop_value — [in] Значение свойства.
Возвращаемое значение
Возвращает true только в том случае, если команда на изменение свойств графического объекта успешно отправлена графику, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует асинхронный вызов – это означает, что функция не дожидается выполнения команды, успешно поставленной в очередь указанного графика, а сразу же возвращает управление.
Для проверки результата выполнения на чужом графике можно использовать функцию, запрашивающую указанное свойство объекта. Но при этом следует иметь в виду, что такие функции ставятся в конец очереди команд чужого графика и дожидаются результата выполнения, то есть могут быть затратными по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
- событие удаления объекта со старым именем;
- событие создания графического объекта с новым именем.
ObjectGetDouble
Возвращает значение соответствующего свойства объекта. Свойство объекта должно быть типа double. Существует 2 варианта функции.
1. Непосредственно возвращает значение свойства.
double ObjectGetDouble( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_DOUBLE prop_id, // идентификатор свойства int prop_modifier=0 // модификатор свойства, если требуется );
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
bool ObjectGetDouble( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_DOUBLE prop_id, // идентификатор свойства int prop_modifier, // модификатор свойства double& double_var // сюда примем значение свойства );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_DOUBLE.
prop_modifier — [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
double_var — [out] Переменная типа double, принимающая значение запрашиваемого свойства.
Возвращаемое значение
Значение типа double для первого варианта вызова.
Для второго варианта вызова возвращает true, если данное свойство поддерживается и значение было помещено в переменную double_var, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectGetInteger
Возвращает значение соответствующего свойства объекта. Свойство объекта должно быть типов datetime, int, color, bool или char. Существует 2 варианта функции.
1. Непосредственно возвращает значение свойства.
long ObjectGetInteger( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_INTEGER prop_id, // идентификатор свойства int prop_modifier=0 // модификатор свойства, если требуется );
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
bool ObjectGetInteger( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_INTEGER prop_id, // идентификатор свойства int prop_modifier, // модификатор свойства long& long_var // сюда примем значение свойства );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_INTEGER.
prop_modifier — [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
long_var — [out] Переменная типа long, принимающая значение запрашиваемого свойства.
Возвращаемое значение
Значение типа long для первого варианта вызова.
Для второго варианта вызова возвращает true, если данное свойство поддерживается и значение было помещено в переменную long_var, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
ObjectGetString
Возвращает значение соответствующего свойства объекта. Свойство объекта должно быть типа string. Существует 2 варианта функции.
1. Непосредственно возвращает значение свойства.
string ObjectGetString( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_STRING prop_id, // идентификатор свойства int prop_modifier=0 // модификатор свойства, если требуется );
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.
bool ObjectGetString( long chart_id, // идентификатор графика string name, // имя объекта ENUM_OBJECT_PROPERTY_STRING prop_id, // идентификатор свойства int prop_modifier, // модификатор свойства string& string_var // сюда примем значение свойства );
Параметры
chart_id — [in] Идентификатор графика. 0 означает текущий график.
name — [in] Имя объекта.
prop_id — [in] Идентификатор свойства объекта. Значение может быть одним из значений перечисления ENUM_OBJECT_PROPERTY_STRING.
prop_modifier — [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора. Означает номер уровня в инструментах Фибоначчи и в графическом объекте Вилы Эндрюса. Нумерация уровней начинается с нуля.
string_var — [out] Переменная типа string, принимающая значение запрашиваемого свойства.
Возвращаемое значение
Значение типа string для первого варианта вызова.
Для второго варианта вызова возвращает true, если данное свойство поддерживается и значение было помещено в переменную string_var, иначе возвращает false. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Примечание
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду, если ведется работа с большим количеством объектов на графике.
При переименовании графического объекта одновременно формируются два события, которые можно обработать в эксперте или индикаторе функцией OnChartEvent():
- событие удаления объекта со старым именем;
- событие создания графического объекта с новым именем.
TextSetFont
Устанавливает шрифт для вывода текста методами рисования и возвращает результат успешности этой операции. По умолчанию используется шрифт Arial и размер -120 (12 pt).
bool TextSetFont( const string name, // имя шрифта или путь к файлу шрифта на диске int size, // размер шрифта uint flags, // комбинация флагов int orientation=0 // угол наклона текста );
Параметры
name — [in] Имя шрифта в системе, или имя ресурса, содержащего шрифт, или путь к файлу шрифта на диске.
size — [in] Размер шрифта, который может задаваться положительными и отрицательными значениями. При положительных значениях размер выводимого текста не зависит от настроек размеров шрифтов в операционной системе. При отрицательных значениях значение задается в десятых долях пункта и размер текста будет зависеть от настроек системы («стандартный масштаб» или «крупный масштаб»). Более подробно о разнице в режимах смотрите в Примечании.
flags — [in] Комбинация флагов, описывающих стиль шрифт.
orientation — [in] Угол наклона текста по горизонтали к оси X, единица измерения равна 0.1 градуса. То есть orientation=450 означает наклон в 45 градусов.
Возвращаемое значение
Возвращает true в случае успешной установки текущего шрифта, иначе false. Возможные коды ошибок:
- ERR_INVALID_PARAMETER(4003) — name представляет NULL или «» (пустая строка),
- ERR_INTERNAL_ERROR(4001) — ошибка операционной системы (например, попытка создания несуществующего шрифта).
Примечание
Если в имени шрифта используется «::», то шрифт загружается из ресурса EX5. Если имя шрифта name указано с расширением, то шрифт загружается из файла, при этом – если путь начинается с «\» или «/», то файл ищется относительно каталога MQL5, иначе ищется относительно пути EX5-файла, вызвавшего функцию TextSetFont().
Размер шрифта задается положительными или отрицательными значениями, знак определяет зависимость размера текста от настроек операционной системы (масштаба шрифта).
Если размер задается положительным числом, то при отображении логического шрифта в физический происходит преобразование размера в физические единицы измерения устройства (пиксели) и этот размер соответствует высоте ячеек символов из доступных шрифтов. Не рекомендуется в тех случаях, когда предполагается совместное использование на графике текстов, выведенных функцией TextOut(), и текстов, отображаемых с помощью графического объекта OBJ_LABEL («Текстовая метка»).
Если размер задается отрицательным числом, то указанный размер предполагается заданным в десятых долях логического пункта (значение -350 равно 35 логических пунктов) и делится на 10, а затем полученное значение преобразуется в физические единицы измерения устройства (пиксели) и соответствует абсолютному значению высоты символа из доступных шрифтов. Чтобы получить на экране текст такого же размера, как и в объекте OBJ_LABEL, возьмите указанный в свойствах объекта размер шрифта и умножьте на -10.
Флаги могут использоваться в виде комбинации флагов стиля с одним из флагов, задающем толщину шрифта. Наименования флагов приведены ниже.
Флаги для задания стиля начертания шрифта
Флаг |
Описание |
FONT_ITALIC |
Курсив |
FONT_UNDERLINE |
Подчёркивание |
FONT_STRIKEOUT |
Перечёркивание |
Флаги для задания толщины шрифта
Флаг |
FW_DONTCARE |
FW_THIN |
FW_EXTRALIGHT |
FW_ULTRALIGHT |
FW_LIGHT |
FW_NORMAL |
FW_REGULAR |
FW_MEDIUM |
FW_SEMIBOLD |
FW_DEMIBOLD |
FW_BOLD |
FW_EXTRABOLD |
FW_ULTRABOLD |
FW_HEAVY |
FW_BLACK |
TextOut
Выводит текст в пользовательский массив (буфер) и возвращает результат успешности этой операции. Данный массив предназначается для создания графического ресурса.
bool TextOut( const string text, // выводимый текст int x, // координатa X int y, // координатa Y uint anchor, // способ привязки uint &data[], // буфер для вывода uint width, // ширина буфера в точках uint height, // высота буфера в точках uint color, // цвет текста ENUM_COLOR_FORMAT color_format // формат цвета для вывода );
Параметры
text — [in] Выводимый текст, который будет записан в буфер. Осуществляется только однострочный вывод текста.
x — [in] Координатa X точки привязки для выводимого текста.
y — [in] Координатa Y точки привязки для выводимого текста.
anchor — [in] Значение из набора 9 предопределенных способов расположения точки привязки выводимого текста. Задаётся комбинацией двух флагов – флага выравнивания текста по горизонтали и флага выравнивания текста по вертикали. Наименования флагов приведены в Примечании.
data[] — [in] Буфер, в который выводится текст. Данный буфер используется для создания графического ресурса.
width — [in] Ширина буфера в точках (пикселях).
height — [in] Высота буфера в точках (пикселях).
color — [in] Цвет текста.
color_format — [in] Формат цвета, задаётся значением из перечисления ENUM_COLOR_FORMAT.
Возвращаемое значение
Возвращает true в случае успешного выполнения, иначе false.
Примечание
Способ привязки, задаваемый параметром anchor, является комбинацией двух флагов выравнивания текста по вертикали и горизонтали. Флаги выравнивания текста по горизонтали:
- TA_LEFT – точка привязки на левой стороне ограничивающего прямоугольника
- TA_CENTER – точка привязки по горизонтали находится в середине ограничивающего прямоугольника
- TA_RIGHT – точка привязки на правой стороне ограничивающего прямоугольника
Флаги выравнивания текста по вертикали:
- TA_TOP – точка привязки на верхней стороне ограничивающего прямоугольника
- TA_VCENTER – точка привязки по вертикали находится в середине ограничивающего прямоугольника
- TA_BOTTOM – точка привязки на нижней стороне ограничивающего прямоугольника
TextGetSize
Возвращает ширину и высоту строки при текущих настройках шрифта.
bool TextGetSize( const string text, // строка текста uint& width, // ширина буфера в точках uint& height // высота буфера в точках );
Параметры
text — [in] Строка для которой получаем длину и ширину.
width — [out] Входной параметр для получения ширины.
height — [out] Входной параметр для получения высоты.
Возвращаемое значение
Возвращает true в случае успешного выполнения, иначе false. Возможные коды ошибок:
- ERR_INTERNAL_ERROR(4001) — в случае ошибки операционной системы.