Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
ObjectCreateAndSet - библиотека для MetaTrader 5
- Просмотров:
- 3758
- Рейтинг:
- Опубликован:
- 2015.07.08 09:56
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В прилагаемом файле с расширением *.mqh — функции для создания объектов и/или изменения значений свойств объектов. Мне он особенно удобен в применении, когда нужно быстро создать какой-либо тестовый код, где требуется прописать попутно создание каких-либо объектов на графике и/или изменение каких-либо свойств объектов из уже имеющихся на графике.
Другой файл — это скрипт с тестовым примером применения функций из прилагаемого файла (создает текстовую метку, постепенно поворачивает ее текст на 90 градусов, попутно меняя текст и его цвет).
I. Функции для создания объектов:
Cформированы на основе находящихся в Справочнике по MQL5. Основные отличия от одноименных функций в справочнике:
- добавлены строки для установки всплывающих подсказок и строки для выбора установки видимости объектов на различных таймфреймах;
- убраны строки с функциями формирования объектов при не заданных координатах, ценах, точках привязок (за исключением в VLineCreate(...) и EventCreate(...));
- за счет имеющихся в прилагаемом файле функций по установке (изменению) свойств объектов, при создании объектов добавлены дополнительные условия проверки успешности установки значений свойств.
Список находящихся в файле функций для создания объектов:
Имя |
Краткое описание |
Тип объекта |
---|---|---|
VLineCreate |
Создает вертикальную линию |
|
HLineCreate |
Создает горизонтальную линию |
|
TrendCreate |
Создает линию тренда по заданным координатам |
|
ArrowedLineCreate |
Создает линию со стрелкой по заданным координатам |
|
ChannelCreate |
Создает равноудаленный канал по заданным координатам |
|
RectangleCreate |
Создает прямоугольник по заданным координатам |
|
TriangleCreate |
Создает треугольник по заданным координатам |
|
EllipseCreate |
Создает эллипс по заданным координатам |
|
ArrowCreate |
Создает OBJ_ARROW |
OBJ_ARROW |
TextCreate | Создает объект "Текст" |
OBJ_TEXT |
LabelCreate |
Создает текстовую метку |
|
ButtonCreate |
Создает кнопку |
|
BitmapCreate |
Создает рисунок в окне графика |
|
BitmapLabelCreate |
Создает объект "Графическая метка" |
|
EditCreate |
Создает объект "Поле ввода" |
|
EventCreate |
Создает объект "Событие" на графике |
|
RectLabelCreate |
Создает прямоугольную метку |
II. Функции установки значений свойств:
Через ObjectSetDouble(...), ObjectSetInteger(...) и ObjectSetString(...) без указания модификатора:
Через ObjectSetDouble(...), ObjectSetInteger(...) и ObjectSetString(...) с указанием модификатора:
Имя |
Перечисление | Свойство | Краткое описание | Тип свойства | |
---|---|---|---|---|---|
1. | ObSetDoubleMod | ENUM_OBJECT_PROPERTY_DOUBLE | OBJPROP_PRICE | Координата цены - double, модификатор=номер точки привязки | double |
OBJPROP_LEVELVALUE | Значение уровня - double, модификатор=номер уровня |
double | |||
2. |
ObSetIntegerLevelColorMod | ENUM_OBJECT_PROPERTY_INTEGER | OBJPROP_LEVELCOLOR | Цвет линии-уровня - color, модификатор=номер уровня |
color |
3. |
ObSetIntegerLevelStyleMod |
ENUM_OBJECT_PROPERTY_INTEGER | OBJPROP_LEVELSTYLE |
Стиль линии-уровня ENUM_LINE_STYLE, модификатор=номер уровня |
ENUM_LINE_STYLE |
4. |
ObSetIntegerLevelWidthMod |
ENUM_OBJECT_PROPERTY_INTEGER | OBJPROP_LEVELWIDTH |
Толщина линии-уровня - int, модификатор=номер уровня |
int |
5. | ObSetIntegerTimeMod | ENUM_OBJECT_PROPERTY_INTEGER | OBJPROP_TIME |
Координата времени - datetime, модификатор=номер точки привязки |
datetime |
6. | ObSetStringMod | ENUM_OBJECT_PROPERTY_STRING | OBJPROP_LEVELTEXT | Описание уровня - string, модификатор=номер уровня | string |
OBJPROP_BMPFILE |
Имя BMP-файла для объекта "Графическая метка" - string. Смотрите также в Справочнике: Ресурсы. Модификатор: 0-состояние ON, 1-состояние OFF | string |
Дополнительные функции в файле:
bool ObDelete (long chart_ID,string name) |
Удаление одиночного объекта с известным именем |
III. Cпособы применения файла:
Его можно применять как включаемый файл или просто копировать функции из него в создаваемый вами код.
При втором варианте удобно, с моей точки зрения, применить его при создании какого-либо кода сначала как включаемый файл. И лишь после того, как в коде будут прописаны все обращения к функциям из него, затем удалить из создаваемого кода строку ссылки на файл(#include...).
Компилятор после этого быстро и конкретно подскажет, какие функции нужно скопировать в создаваемый вами код из прилагаемого файла.
Применение в виде включаемого файла:
- Сохраните прилагаемый выше файл ObjectCreateAndSet.mqh в папке "Include". Для вставки файла в эту папку, ее можно открыть через Навигатор в MetaEditor, кликнув в Навигаторе на папке с названием "Include" правой кнопкой мыши и затем нажав в открывшемся меню на строку "Открыть папку".
- При создании кода, где будут применяться функции из этого файла, скопируйте в самом верху файла строку с #include... и поставьте ее затем в верху создаваемого вами кода:
#include <ObjectCreateAndSet.mqh>
При необходимости, в прилагаемом выше файле тестового кода можно посмотреть, куда можно примерно поставить эту строку. - После этого скомпилируйте создаваемый вами код. Это сделает доступным видеть подсказку имен имеющихся в подключаемом файле функций при наборе первых букв из их имен:
Рис.1. Всплывающая подсказка после набора первых букв имени функции
Рис.2. Всплывающая подсказка с параметрами для выбранной функции
На всякий случай упомяну, что содержащиеся в каком-либо конкретном файле функции удобно смотреть и через Список функций на панели инструментов MetaEditor:
Рис.3. Кнопка для вызова списка функций, содержащихся в файле
Соответственно, при нажатии кнопки вызова списка функций прилагаемого файла появляется окно со списком имеющихся в этом файле функций. Для быстрого перехода к коду какой-либо функции просто щелкните на ее названии в появившемся списке.
Рис.4. После нажатия кнопки вызова списка функций открывается список функций в файле (удобно для быстрого перехода к коду какой-либо функции и/или просто для просмотра имеющихся)
Обновления:
- 2015.09.14: В функции ObDelete() добавлен вывод имени объекта в журнал вкладки терминала "Эксперты", если при удалении объекта возникла ошибка. Это облегчает поиск в коде причины ошибки в случае ее возникновения.
Индикатор ColorStepXCCX с возможностью изменения таймфрейма индикатора во входных параметрах.
ColorStdDev_HTFИндикатор ColorStdDev с возможностью изменения таймфрейма индикатора во входных параметрах.
Индикатор ColorTrend_CF с возможностью изменения таймфрейма индикатора во входных параметрах.
ColorStepXCCXTrend_x10Индикатор ColorStepXCCXTrend_x10 отображает направление движения осциллятора ColorStepXCCX с десяти разных таймфреймов.