Тимур Машнин - Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5
Название: Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5
Автор:
Жанр: Книги о компьютерах
Серии: Нет данных
ISBN: Нет данных
Год: Не установлен
О чем книга "Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5"

Создание пользовательских индикаторов и советников для торговой платформы MetaTrader 5 с использованием языка программирования MQL5.

Бесплатно читать онлайн Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5


© Тимур Машнин, 2016

© Тимур Машнин, дизайн обложки, 2016


ISBN 978-5-4474-9967-9

Создано в интеллектуальной издательской системе Ridero

Введение

Заказать робот или индикатор – пишите [email protected].

Надеюсь, вы все уже прочитали справочник MQL5 на сайте https://www.mql5.com/ru/docs.

Здесь мы не будем пересказывать этот документ, а сосредоточимся на его практическом использовании. Мы будем позволять себе изредка только его цитирование.

Как сказано в предисловии к справочнику:

Программы, написанные на MetaQuotes Language 5, имеют различные свойства и предназначение

И далее идет перечисление Советник, Пользовательский индикатор, Скрипт, Библиотека и Включаемый файл.

Скрипты используются для выполнения одноразовых действий, обрабатывая только событие своего запуска, и поэтому не будут нам здесь интересны.

Также нам не будут интересны библиотеки, так как использование включаемых файлов более предпочтительно для уменьшения накладных расходов.

Поэтому мы сосредоточимся на создании советников и индикаторов с использованием включаемых файлов. Такова наша цель применения языка программирования MQL5, синтаксис которого конечно интересен, но будет нам только в помощь.

На самом деле программирование на языке MQL5 представляет собой яркий пример событийно-ориентированного программирования, так как весь код MQL5-приложения построен на переопределении функций обратного вызова – обработчиков событий клиентского терминала и пользователя. А уже в коде функций обратного вызова можно использовать либо процедурное программирование, либо объектно-ориентированное программирование. Здесь мы рассмотрим оба этих подхода.

Общая структура индикатора

Код индикатора начинается с блока объявления свойств индикатора и различных объектов, используемых индикатором, таких как массивы буферов индикатора, параметры ввода, глобальные переменные, хэндлы используемых технических индикаторов, константы.

Данный блок кода выполняется приложением Торговая Платформа MetaTrader 5 сразу при присоединении индикатора к графику символа.

После блока объявления свойств индикатора, его параметров и переменных, идет описание функций обратного вызова, которые терминал вызывает при наступлении таких событий, как инициализация индикатора после его загрузки, перед деинициализацией индикатора, при изменении ценовых данных, при изменении графика символа пользователем.

Для обработки вышеуказанных событий необходимо описать такие функции как OnInit (), OnDeinit (), OnCalculate () и OnChartEvent ().

В функции OnInit () индикатора, как правило, объявленные в начальном блоке массивы связываются с буферами индикатора, определяя его выводимые значения, задаются цвета индикатора, точность отображения значений индикатора, его подписи и другие параметры отображения индикатора. Кроме того, в функции OnInit () индикатора могут получаться хэндлы используемых технических индикаторов и рассчитываться другие используемые переменные.

В функции OnDeinit () индикатора, как правило, с графика символа удаляются графические объекты индикатора, а также удаляются хэндлы используемых технических индикаторов.

В функции OnCalculate () собственно и производится расчет значений индикатора, заполняя ими объявленные в начальном блоке массивы, которые в функции OnInit () индикатора были связаны с буферами индикатора, данные из которых берутся терминалом для отрисовки индикатора. Кроме того, в функции OnCalculate () могут изменяться цвета индикатора и другие параметры его отображения.

В функции OnChartEvent () могут обрабатываться события, генерируемые другими индикаторами на графике, а также удаление пользователем графического объекта индикатора и другие события, возникающие при работе пользователя с графиком.

На этом код индикатора заканчивается, хотя там могут быть также определены пользовательские функции, которые вызываются из функций обратного вызова OnInit (), OnDeinit (), OnCalculate () и OnChartEvent ().

Свойства индикатора

Цитата из справочника:

Свойства программ (#property). У каждой mql5-программы можно указать дополнительные специфические параметры #property, которые помогают клиентскому терминалу правильно обслуживать программы без необходимости их явного запуска. В первую очередь это касается внешних настроек индикаторов. Свойства, описанные во включаемых файлах, полностью игнорируются. Свойства необходимо задавать в главном mq5-файле. #property идентификатор значение

В качестве первого свойства, как правило, указывается имя разработчика, например:

#property copyright «2009, MetaQuotes Software Corp.»

Далее указывается ссылка на сайт разработчика:

#property link http://www.mql5.com

После этого идет описание индикатора, каждая строка которого обозначается с помощью идентификатора description, например:

#property description «Average Directional Movement Index»

Далее указывается версия индикатора:

#property version «1.00»

На этом, как правило, объявление общих свойств индикатора заканчивается.

Индикатор может появляться в окне терминала двумя способами – на графике символа или в отдельном окне под графиком символа.

Свойство:

#property indicator_chart_window

Определяет отрисовку индикатора на графике символа.

А свойство:

#property indicator_separate_window

Определяет вывод индикатора в отдельное окно.

Одно из самых важных свойств индикатора – это количество буферов для расчета индикатора, например:

#property indicator_buffers 6

Данное свойство тесно связано с двумя другими свойствами индикатора – количеством графических построений и видом графических построений.

Количество графических построений это количество цветных диаграмм, составляющих индикатор.

Например, для индикатора ADX:

#property indicator_plots 3

Индикатор состоит из трех диаграмм (линий) – индикатора направленности +DI, индикатора направленности —DI и самого индикатора ADX.

Вид графических построений – это та графическая форма, из которой составляется график индикатора.

Например, для индикатора ADX:

#property indicator_type1 DRAW_LINE

#property indicator_type2 DRAW_LINE

#property indicator_type3 DRAW_LINE

Таким образом, каждая диаграмма индикатора ADX – это линия.

Графическая форма сопоставляется с графическим построением с помощью номера графического построения, следующего после indicator_type.

Цвет каждого графического построения индикатора задается свойством indicator_colorN.

Например, для индикатора ADX:

#property indicator_color1 LightSeaGreen

#property indicator_color2 YellowGreen

#property indicator_color3 Wheat

Цвет сопоставляется с графическим построением с помощью номера графического построения, следующего после indicator_color.

В справочнике есть таблица Web-цветов для определения цвета графического построения.


С этой книгой читают
Bootstrap представляет собой свободный фреймворк интерфейсов для быстрой и простой Web разработки. Bootstrap предоставляет шаблоны дизайна, основанные на HTML и CSS для разметки, форм, кнопок, таблиц, навигации, диалоговых окон, каруселей изображений и многого другого, а также дополнительные плагины JavaScript. На основе Bootstrap можно легко создавать сайты с «отзывчивым дизайном», одинаково хорошо выглядящие на всех типах устройств, от небольши
В многопроцессорных системах многопоточность решает проблему параллельного выполнения кода с наименьшими затратами.Поэтому многопоточность используется в большинстве реальных приложений.И Java, как и большинство языков программирования, поддерживает многопоточность.Познакомьтесь с реализацией процессов и потоков в Java, с управлением и синхронизацией потоков.Узнайте о пуле потоков, потокобезопасных коллекциях, синхронизаторах и параллельных поток
Эта книга предназначена для тех, кто хочет научиться программировать на языке Java.С этой книгой вы обучитесь объектно-ориентированному программированию на платформе Java SE и научитесь применять принципы ООП на практике.Эта книга охватывает важные аспекты программирования на языке Java, начиная с основ и заканчивая объектно-ориентированным подходом и командной разработкой кода.
Книга содержит 30 тестов по 50 вопросов с ответами на знание Android. Книга предназначена для подготовки к экзаменам и собеседованиям.
Веселый и интересный самоучитель работы на компьютере, оснащенном новейшей операционной системой Windows Vista. В ходе непринужденной беседы с читателем автор научит «укрощать» программы, настраивать и защищать компьютер. Изучение тонкостей ПК не потребует специальной подготовки и знания компьютерных терминов. Для всех, кто побаивается компьютера, но хочет или вынужден на нем работать.
Возможности современных программ и компьютеров, а также их относительная доступность по цене позволяют выполнять серьезную работу по обработке звукового материала – в том числе и профессиональную – не только на специализированной звуковой рабочей станции в студии звукозаписи, но и на персональном компьютере, в домашней студии.В книге, которую вы держите в руках, рассмотрены основные методы обработки звука при помощи персонального компьютера, совм
Компьютерное видео многолико: это и просмотр телепередач, и цифровые видеофильмы, и системы безопасности. В предлагаемом издании освещаются почти все аспекты данной области современных технологий – от начальных этапов оцифровки до ретуши полученных кадров и от простейших плат захвата кадра до систем нелинейного монтажа. Цель книги – дать возможность любому, даже неискушенному пользователю самостоятельно выбрать, установить и настроить необходимые
В книге рассматривается влияние информационных технологий на различные сферы человеческой деятельности: экономику и бизнес, движение денег и организацию связи, промышленное производство и сельское хозяйство, т. е. влияние информационных технологий на весь окружающий человека мир. Каждую главу данной книги можно читать отдельно, что позволяет сосредоточиться на наиболее интересных вопросах.
География и природа Кипра. История Кипра. Исторический анекдот. Флаг и герб Кипра. Святыни Кипра. Кухня Кипра. Язык Кипра. Традиции и современность. Праздники Кипра. Столица Кипра Никосия. Города и достопримечательности Кипра.
География и природа Латвии. История Латвии. Исторический анекдот. Флаг и герб Латвии. Святыни Латвии. Кухня Латвии. Латвийский язык. Традиции и современность. Праздники Латвии. Столица Латвии Рига. Города и достопримечательности Латвии. Юрмала. Лиепая. Радиотелескоп в Ирбене.
История продолжается. Главный герой лишился многого – любимой, друга, страны, принявшей его, Земли. Всё, что ему осталось, это найти своё место в других краях. Сильные и непобедимые враги заставляют и героя становиться сильнее, искать соратников. Игры закончились, пора взрослеть и начать воевать всерьёз. Вся Виктария ещё узнает, кто такие иномеряне и на что они способны.Содержит нецензурную брань.
Пятый роман из цикла книг о медиуме Мелани Миддлтон. Книги можно читать по порядку или как самостоятельные романы. Карен Уайт – многократный лауреат премии «Лучший писатель-романист Америки». Ее романы издаются во всем мире, в них гармонично сочетаются романтика и загадка.Став матерью, Мелани понимает, что она потеряла способность видеть усопших.Она возвращается к работе риелтором, но в первый же день происходит нечто странное. К ней обращается н