Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4314
- Рейтинг:
- Опубликован:
- Обновлен:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В прилагаемом файле с расширением *.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_HTF
Индикатор ColorStepXCCX с возможностью изменения таймфрейма индикатора во входных параметрах.
ColorStdDev_HTF
Индикатор ColorStdDev с возможностью изменения таймфрейма индикатора во входных параметрах.
ColorTrend_CF_HTF
Индикатор ColorTrend_CF с возможностью изменения таймфрейма индикатора во входных параметрах.
ColorStepXCCXTrend_x10
Индикатор ColorStepXCCXTrend_x10 отображает направление движения осциллятора ColorStepXCCX с десяти разных таймфреймов.