Тимур Машнин - Язык программирования 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-цветов для определения цвета графического построения.


С этой книгой читают
В многопроцессорных системах многопоточность решает проблему параллельного выполнения кода с наименьшими затратами.Поэтому многопоточность используется в большинстве реальных приложений.И Java, как и большинство языков программирования, поддерживает многопоточность.Познакомьтесь с реализацией процессов и потоков в Java, с управлением и синхронизацией потоков.Узнайте о пуле потоков, потокобезопасных коллекциях, синхронизаторах и параллельных поток
Bootstrap представляет собой свободный фреймворк интерфейсов для быстрой и простой Web разработки. Bootstrap предоставляет шаблоны дизайна, основанные на HTML и CSS для разметки, форм, кнопок, таблиц, навигации, диалоговых окон, каруселей изображений и многого другого, а также дополнительные плагины JavaScript. На основе Bootstrap можно легко создавать сайты с «отзывчивым дизайном», одинаково хорошо выглядящие на всех типах устройств, от небольши
Разработка индикаторов и советников с использованием языка программирования MQL5 для платформы MetaTrader 5. Второе издание, исправленное и дополненное.
Эта книга предназначена для тех, кто хочет научиться программировать на языке Java.С этой книгой вы обучитесь объектно-ориентированному программированию на платформе Java SE и научитесь применять принципы ООП на практике.Эта книга охватывает важные аспекты программирования на языке Java, начиная с основ и заканчивая объектно-ориентированным подходом и командной разработкой кода.
Планшет компании Apple – пожалуй, одно из наиболее известных устройств во всем мире. Осенью 2013 года в продаже появилось последнее поколение этих девайсов – iPad Air. Новинка сразу вызвала волну интереса. И, как выяснилось, не зря – у нового планшета множество достоинств. Какких – вы сможете узнать из этой книги! Кроме того, с помощью этого пособия вы научитесь работать с документами, слушать музыку, смотреть фильмы, игры, в общем – использовать
Майнинг – это процесс добычи криптовалют, который включает в себя решение сложных математических задач с использованием вычислительных ресурсов. С его помощью транзакции в блокчейн-системах становятся безопасными, а новые блоки добавляются в цепочку. В этой книге мы рассмотрим основные аспекты майнинга, в том числе криптотапалками, его виды и преимущества.
В монографии дается краткое и развернутое определение, описываются существенные характеристики ассоциированного сверх-адаптивного интеллекта (АСИ). Приводится теоретическое обоснование АСИ. Рассматриваются эвристические перспективы использования идеи и методологии АСИ в сфере преодоления системного научного и цивилизационного кризиса. Оцениваются конкретные шаги по разработке теории и технологической практики АСИ. Книга полезна для исследователей
Международный научный журнал «Все науки», созданный при OOO «Electron Laboratory» и Научной школе «Электрон», является научным изданием, публикующим последние научные результаты в самых различных областях науки и техники. В настоящем выпуске представлены статьи, признанные достойными для публикации из числа направленных, в ходе I Международной научной конференции «Современные проблемы науки, техники и производства», приуроченная к II-годовщине El
География и природа Кипра. История Кипра. Исторический анекдот. Флаг и герб Кипра. Святыни Кипра. Кухня Кипра. Язык Кипра. Традиции и современность. Праздники Кипра. Столица Кипра Никосия. Города и достопримечательности Кипра.
География и природа Латвии. История Латвии. Исторический анекдот. Флаг и герб Латвии. Святыни Латвии. Кухня Латвии. Латвийский язык. Традиции и современность. Праздники Латвии. Столица Латвии Рига. Города и достопримечательности Латвии. Юрмала. Лиепая. Радиотелескоп в Ирбене.
1568 год.Вот уже 10 лет Русское царство ведет Ливонскую войну. Царь Иван Грозный отправляет в вольный город Рига послов с тайной миссией.Публикуется в авторской редакции с сохранением авторских орфографии и пунктуации.Содержит нецензурную брань.
«Мертвые души» Гоголя не про умерших крестьян, а про живых люди с омертвевшей душой. Они утратили нравственные ориентиры и духовные ценности, заменив их только одним желанием – получить выгоду. Читайте новую версию «Мертвых душ» от современного автора!