Читаем Продвинутое использование торговой платформы MetaTrader 5. Создание индикаторов и торговых роботов на MQL5 и Python. Издание 3-е, исправленное и дополненное полностью

Мы лучше сразу займемся практическим кодированием.

<p>Общая структура индикатора</p>

Для создания основы пользовательского индикатора используем редактор MetaEditor.

Нажмем кнопку меню Создать и в окне мастера выберем Пользовательский индикатор.

Нажмем Далее, введем имя создаваемого индикатора, нажмем Далее и отметим функции, которые мастер должен сгенерировать и в следующем окне нажмем Готово.

В результате будет создан код основы индикатора.

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

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

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

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

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

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

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

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

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

Для компиляции нашего индикатора нажмем кнопку Компилировать редактора, при этом в нижнем окне отобразится результат компиляции.

После компиляции наш индикатор автоматически появится в торговом терминале, и мы сможем присоединить его к графику финансового инструмента.

<p>Свойства индикатора</p>

Давайте более подробно рассмотрим свойства индикатора.

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

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

Включаемый файл указывается с помощью ключевого слова #include, после которого следует путь к включаемому файлу.

Включаемый файл – это часто используемый блок кода. Такие файлы могут включаться в исходные тексты экспертов, скриптов, пользовательских индикаторов и библиотек на этапе компиляции. Использование включаемых файлов более предпочтительно, чем использование библиотек, из-за дополнительных накладных расходов при вызове библиотечных функций.

Включаемые файлы могут находиться в той же директории, что и исходный файл, в этом случае используется директива #include с двойными кавычками. Другое место хранения включаемых файлов – в директории <каталог_терминала>\MQL5\Include, в этом случае используется директива #include с угловыми скобками.

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

#property copyright

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

#property link

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

#property description "Average Directional Movement Index"

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

#property version "1.00"

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

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

Свойство:

#property indicator_chart_window

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

А свойство:

#property indicator_separate_window

Перейти на страницу:

Похожие книги

1С:Предприятие. Зарплата и кадры. Секреты работы
1С:Предприятие. Зарплата и кадры. Секреты работы

Книга посвящена ведению автоматизированного учета заработной платы на предприятиях, в организациях и учреждениях в программе "1С: Предприятие. Зарплата и Кадры". Излагаются принципы работы системы с учетом всех нормативных требований. Представлены сведения об автоматизированном формировании бухгалтерских проводок и аналитических отчетов широкого спектра, ведении первичной документации и многое другое. Обсуждаются схемы движения документов во всех разделах учета заработной платы, аспекты налогового учета и особенности ведения персонифицированного учета в новом плане счетов. Изложение материала сопровождается практическими примерами, позволяющими быстрее понять и усвоить приемы и методы работы с системой "1С: Предприятие". Рассматриваются ошибки и сложности, которые могут возникнуть при работе с программой. Книга открывает широкие возможности для дальнейшего самостоятельного изучения данной темы.Для менеджеров, бухгалтеров и операторов, не имеющих опыта работы с системой "1С: Предприятие"

Дмитрий Николаевич Рязанцев , Наталья Александровна Рязанцева

Финансы / Личные финансы / Финансы и бизнес