Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин
Книгу Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
240 0 10:00, 03-01-2023Книга Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин читать онлайн бесплатно без регистрации
Разработка индикаторов и советников с использованием языка программирования MQL5 для платформы MetaTrader 5. Второе издание, исправленное и дополненное.
Функции ObjectName, ObjectFind, ObjectGetTimeByValue, ObjectGetValueByTime, ObjectsTotal, ObjectGetDouble, ObjectGetInteger, ObjectGetString, TextGetSize — это функции, возвращающие информацию.
Функции ObjectSetDouble, ObjectSetInteger, ObjectSetString, TextSetFont — это функции устанавливающие свойства объекта.
Функция ObjectMove перемещает объект в окне.
Функция TextOut выводит текст в пиксельный массив для отображения объектом OBJ_BITMAP_LABEL или OBJ_BITMAP.
После добавления графических объектов рекомендуется принудительно перерисовать график символа с помощью функции ChartRedraw.
Надо отметить, что функция ObjectCreate позволяет создавать программным способом те графические объекты, которые вы можете вручную нарисовать на графике символа, пользуясь панелью инструментов клиентского терминала.
С помощью функции ObjectSetDouble устанавливаются такие свойства графического объекта, как OBJPROP_PRICE — изменение параметра price функции ObjectCreate,
OBJPROP_LEVELVALUE — определение уровней для таких объектов, как инструменты Фиббоначи и Вилы Эндрюса,
OBJPROP_SCALE — определение масштаба для таких объектов, как инструменты Ганна и Дуги Фибоначчи,
OBJPROP_ANGLE — определение угла объекта, т. е. возможность повернуть объект, который изначально не имеет жесткой привязки, например, повернуть текст,
OBJPROP_DEVIATION — определение отклонения для объекта Канал стандартного отклонения.
Как пример использования OBJPROP_PRICE:
В этом коде создается горизонтальный уровень, показывающий минимальную или максимальную цену предыдущего бара, в зависимости от того, является ли этот бар бычьим или медвежьим.
Пример использования OBJPROP_ANGLE:
Этот код создает вертикальную линию с подписью цены закрытия предыдущего бара.
С помощью функции ObjectSetInteger устанавливаются такие свойства графического объекта, как цвет, стиль, размер и др.
С помощью функции ObjectSetString можно изменить имя объекта, при этом объект со старым именем будет удален и будет создан объект с новым именем, установить текст для таких объектов, как текст, кнопка, метка, поле ввода, событие, установить текст всплывающей подсказки для объекта, описание уровня для объектов, имеющих уровни, шрифт, имя BMP-файла для объекта «Графическая метка» и «Рисунок», символ для объекта «График».
Функция TextSetFont позволяет установить тип шрифта текста, его размер, стиль и угол наклона для объектов, содержащих текст.
Как уже было сказано, функция TextOut позволяет скомбинировать текст и изображение.
Например, показанный на слайде код выводит текст в изображение, залитое одним цветом.
Здесь ExtImg это пиксельный массив, представляющий изображение 100х100 пикселей.
Функция ObjectCreate создает объект «Графическая метка» OBJ_BITMAP_LABEL, а функция ObjectSetString устанавливает для этого объекта файл изображения с именем::IMG. По поводу знака «::» справочник говорит следующее:
Для использования своего ресурса в коде нужно перед именем ресурса добавлять специальный признак"::».
Функция ArrayFill заполняет пиксельный массив пикселями белого цвета.
Функция TextOut выводит в пиксельный массив слово «Text».
Функция ResourceCreate создает из пиксельного массива ресурс с именем::IMG.
В итоге на белом фоне отображается надпись «Text».
Также можно вывести текст на готовое изображение.
Здесь функция ResourceReadImage считывает существующее изображение из папки Images окна Navigator редактора MQL5 в пиксельный массив::IMG, связанный с объектом «Графическая метка», а функция TextOut выводит в пиксельный массив слово «Text».
То же самое можно проделать и с объектом «Рисунок» OBJ_BITMAP.
Здесь мы в функции OnCalculate создаем объект «Рисунок» с помощью функции ObjectCreate, которая прикрепляет рисунок к цене закрытия последнего бара.
И далее мы заполняем связанный с этим объектом файл, текстом и изображением.
В качестве примера использования графических объектов, рассмотрим создание индикатора, который выводит в небольшое окно на графике символа тот же график, но с другим временным периодом.
Для этого используем графический объект OBJ_CHART.
В качестве входных параметров индикатора используем символ графика и его период.
В функции OnInit создадим графический объект График OBJ_CHART.
По умолчанию точка привязки этого объекта — левый верхний угол графика.
Определим отступ точки привязки объекта, его размеры, символ и период графика, отображение шкалы времени, размер точки привязки, с помощью которой можно перемещать объект, отображение ценовой шкалы, режим перемещения мышкой, цвет рамки графика.
С помощью свойства объектов OBJPROP_CHART_ID функции ObjectGetInteger получим идентификатор графика, используя который мы теперь можем применять функции работы с графиками и свойства графиков.
Откроем наш график символа, к которому мы хотим присоединить индикатор, и нажав правой кнопкой мышки, выберем пункт в контекстном меню Шаблоны и Сохранить шаблон.
Теперь мы можем перенести на наш графический объект все настройки и индикаторы графика символа.
Присоединив индикатор к графику символа, мы можем нажать на нем правой кнопкой мышки и изменить его свойства, включая его период, размеры и др.
Функция PlaySound
Функция PlaySound воспроизводит звуковой файл.
Например, это можно делать при появлении сигнала индикатора для напоминания.
В качестве примера добавим звуковой сигнал в наш индикатор Impulse keeper при появлении первого сигнала на покупку или продажу.
Скачаем какой-нибудь WAV-сигнал из Интернета и поместим его файл в папку Sounds терминала.
Добавим код в индикатор Impulse keeper.
Здесь добавлены счетчики сигналов на продажу и покупку countBuy, countSell, для того, чтобы сигнал звучал только при появлении первого сигнала.
И если появляется сигнал на покупку или продажу, соответствующий счетчик увеличивается и звучит оповещение.
При дублирующем сигнале оповещение не звучит.
При окончании серии сигналов, счетчик обнуляется.
Функция OnChartEvent
Функция OnChartEvent является функцией обратного вызова, которая вызывается при взаимодействии пользователя с графиком символа и событиях, связанных с графическими объектами графика символа.
В качестве примера использования функции OnChartEvent рассмотрим наш индикатор Impulse keeper и добавим в него функциональность, позволяющую посмотреть значения используемых индикаторов при клике на сигнале покупки или продажи индикатора.
Для этого добавим в код индикатора функцию OnChartEvent, обрабатывающую событие щелчка мыши на графическом объекте индикатора.
Но сначала, здесь мы в функции OnCalculate с помощью
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.
Оставить комментарий
-
Елена07 июнь 20:15
Хорошо написанный,увлекательный роман, как, впрочем, и остальные произведения этого автора....
Развод. Ты меня предал - Арина Арская
-
Лариса04 июнь 12:43
Да, просто до слез похоже на сериал ,,Даррел,,...
Смерть в райском уголке - Эмили Салливан
-
Stmara02 июнь 22:44
Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная...
Сердце космического дракона - Ольга Вадимовна Гусейнова
