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.