Группа функций, предназначенных для работы с графическими объектами, относящимися к текущему графику.
ObjectCreate
bool ObjectCreate(string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0)
Создание объекта с указанным именем, тип и начальные координаты в указанном подокне графика. Число координат, связываемых с объектом, может быть от 1 до 3 в зависимости от типа. При успешном создании объекта функция возвращает TRUE, иначе FALSE. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Объекты с типом OBJ_LABEL игнорируют координаты. Используйте функцию ObjectSet() для установки свойств OBJPROP_XDISTANCE и OBJPROP_YDISTANCE.
Замечания: нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0.
Координаты должны передаваться парами — время и цена. Для примера, объекту OBJ_VLINE требуется только время, но также нужно передать и цену (любое значение).
Параметры:
name — Уникальное имя объекта.
type — Тип объекта. Может быть любым из типов объектов.
window — Индекс окна, в которое будет добавлен объект. Индекс окна должен быть большим или равным 0 и меньшим, чем WindowsTotal().
time1 — Время первой координаты.
price1 — Цена первой координаты.
time2 — Время второй координаты.
price2 — Цена второй координаты.
time3 — Время третьей координаты.
price3 — Цена третьей координаты.
Пример:
// новый объект Text if(!ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)) { Print("error: can't create text_object! code #",GetLastError()); return(0); } // новый объект TextLabel if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0, 0)) { Print("error: can't create label_object! code #",GetLastError()); return(0); } ObjectSet("label_object", OBJPROP_XDISTANCE, 200); ObjectSet("label_object", OBJPROP_YDISTANCE, 100);
ObjectDelete
bool ObjectDelete(string name)
Удаление объекта с указанным именем. При успешном удалении функция возвращает TRUE, иначе FALSE.
Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
name — Имя удаляемого объекта.
Пример:
ObjectDelete("text_object");
ObjectDescription
string ObjectDescription(string name)
Функция возвращает описание объекта. Для объектов типа OBJ_TEXT и OBJ_LABEL возвращается текст, отображаемый этими объектами.
Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
См. также ObjectSetText().
Параметры:
name — Имя объекта.
Пример:
// сохранение списка объектов графика в файл int handle, total; string obj_name,fname; // имя файла fname="objlist_"+Symbol(); handle=FileOpen(fname,FILE_CSV|FILE_WRITE); if(handle>0) { total=ObjectsTotal(); for(int i=-;i<total;i++) { obj_name=ObjectName(i); FileWrite(handle,"Object "+obj_name+" описание= "+ObjectDescription(obj_name)); } FileClose(handle); }
ObjectFind
int ObjectFind(string name)
Поиск объекта с указанным именем. Функция возвращает индекс окна, которому принадлежит искомый объект. В случае неудачи функция вернет -1. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError(). Нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0.
Параметры:
name — Имя искомого объекта.
Пример:
if(ObjectFind("line_object2")!=win_idx) return(0);
ObjectGet
double ObjectGet(string name, int prop_id)
Функция возвращает значение указанного свойства объекта. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectSet().
Параметры:
name — Имя объекта.
prop_id — Идентификатор свойства объекта. Может быть любым из значений списка свойств объекта.
Пример:
color oldColor = ObjectGet("hline12", OBJPROP_COLOR);
ObjectGetFiboDescription
string ObjectGetFiboDescription(string name, int index)
Функция возвращает описание уровня объекта Фибоначчи. Количество уровней зависит от типа объекта, принадлежащего к группе объектов Фибоначчи. Максимальное количество уровней — 32.
Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectSetFiboDescription().
Параметры:
name — Имя объекта Фибоначчи.
index — Индекс уровня Фибоначчи (0-31).
Пример:
#include <stdlib.mqh> ... string text; for(int i=0;i<32;i++) { text=ObjectGetFiboDescription(MyObjectName,i); //---- проверим, возможно уровней у объекта меньше, чем 32 if(GetLastError()!=ERR_NO_ERROR) break; Print(MyObjectName,"номер уровня: ",i," описание: ",text); }
ObjectGetShiftByValue
int ObjectGetShiftByValue(string name, double value)
Функция вычисляет и возвращает номер бара (смещение относительно текущего бара) для указанной цены. Номер бара вычисляется при помощи линейного уравнения по первой и второй координатам. Применяется для трендовых линий и аналогичных объектов. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectGetValueByShift().
Параметры:
name — Имя объекта.
value — Значение цены.
Пример:
int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34);
ObjectGetValueByShift
double ObjectGetValueByShift(string name, int shift)
Функция вычисляет и возвращает значение цены для указанного бара (смещение относительно текущего бара). Значение цены вычисляется при помощи линейного уравнения по первой и второй координатам. Применяется для трендовых линий и аналогичных объектов. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectGetShiftByValue().
Параметры:
name — Имя объекта.
shift — Номер бара.
Пример:
double price=ObjectGetValueByShift("MyTrendLine#123", 11);
ObjectMove
bool ObjectMove(string name, int point, datetime time1, double price1)
Изменение одной из координат объекта на графике. Объекты могут иметь от одной до трех точек привязки в зависимости от типа объекта. Функция возвращает TRUE в случае успеха, иначе FALSE. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().
Нумерация координат объекта начинается с 0.
Параметры:
name — Имя объекта.
point — Индекс координаты (0-2).
time1 — Новое значение времени.
price1 — Новое значение цены.
Пример:
ObjectMove("MyTrend", 1, D'2017.02.25 12:30', 1.2345);
ObjectName
string ObjectName(int index)
Функция возвращает имя объекта по порядковому номеру в списке объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Параметры:
index — Порядковый номер в списке объектов. Должен быть большим или равным 0 и меньшим, чем ObjectsTotal().
Пример:
int obj_total=ObjectsTotal(); string name; for(int i=0;i<obj_total;i++) { name=ObjectName(i); Print(i,": Имя объекта - ", name); }
ObjectsDeleteAll
int ObjectsDeleteAll(int window=EMPTY, int type=EMPTY)
Удаление всех объектов с указанным типом и в указанном подокне графика. Функция возвращает число удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Замечания: нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0. Если индекс окна отсутствует или имеет значение -1, то объекты удаляются со всего графика.
Если значение параметра type равно -1 или этот параметр отсутствует, то удаляются все объекты из указанного подокна.
Параметры:
window — Необязательный параметр. Индекс окна, на котором будут удалены объекты. Должен быть большим или равным -1 (EMPTY, значение по умолчанию) и меньшим, чем WindowsTotal().
type — Необязательный параметр. Тип объекта для удаления. Это может быть любое из значений списка идентификаторов типов объектов или EMPTY (-1) для удаления всех объектов.
Пример:
ObjectsDeleteAll(2, OBJ_HLINE); // удаляются все горизонтальные линии из 2-го подокна. ObjectsDeleteAll(2); // удаляются все объекты из 2-го подокна. ObjectsDeleteAll(); // удаляются все объекты с графика.
ObjectSet
bool ObjectSet(string name, int prop_id, double value)
Изменение значения указанного свойства объекта. В случае успеха функция возвращает TRUE, иначе FALSE. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
См. также ObjectGet().
Параметры:
name — Имя объекта.
prop_id — Идентификатор свойства объекта. Может быть любым из списка свойств объекта.
value — Новое значение указанного свойства.
Пример:
// перемещение первой координаты в конец графика ObjectSet("MyTrend", OBJPROP_TIME1, Time[0]); // изменение значения второго уровеня объекта fibo ObjectSet("MyFibo", OBJPROP_FIRSTLEVEL+1, 1.234); // установка флага видимости объекта. Объект будет отрисован только на 15-минутном и 1-часовом периодах графика ObjectSet("MyObject", OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1);
ObjectSetFiboDescription
bool ObjectSetFiboDescription(string name, int index, string text)
Функция присваивает новое описание уровню объекта Фибоначчи. Количество уровней зависит от типа объекта Фибоначчи. Максимальное количество уровней — 32.
Для получения информации об ошибке необходимо вызвать функцию GetLastError().
Параметры:
name — Имя объекта.
index — Порядковый номер уровня объекта Фибоначчи (0-31).
text — Новое описание уровня.
Пример:
ObjectSetFiboDescription("MyFiboObject",2,"Second line");
ObjectSetText
bool ObjectSetText(string name, string text, int font_size, string font_name=NULL, color text_color=CLR_NONE)
Изменение описания объекта. Для объектов OBJ_TEXT и OBJ_LABEL это описание отображается на графике в виде текстовой строки. В случае успеха функция возвращает значение TRUE, иначе FALSE. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Параметры font_size, font_name и text_color используются только для объектов OBJ_TEXT и OBJ_LABEL. Для объектов других типов эти параметры игнорируются.
См. также ObjectDescription().
Параметры:
name — Имя объекта.
text — Текст описания обьекта.
font_size — Размер шрифта в пунктах.
font_name — Наименование шрифта.
text_color — Цвет текста.
Пример:
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);
ObjectsTotal
int ObjectsTotal(int type=EMPTY)
Возвращает общее число объектов указанного типа на графике.
Параметры:
type — Необязательный параметр. Тип объекта для подсчета количества объектов данного типа. Это может быть любое из значений списка идентификаторов типов объектов или EMPTY (-1) для подсчета всех объектов.
Пример:
int obj_total=ObjectsTotal(); string name; for(int i=0;i<obj_total;i++) { name = ObjectName(i); Print(i," - объект ",name); }
ObjectType
int ObjectType(string name)
Функция возвращает тип указанного объекта. Для получения информации об ошибке необходимо вызвать функцию GetLastError().
Параметры:
name — Имя объекта.
Пример:
if(ObjectType("line_object2")!=OBJ_HLINE) return(0);