My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин. Жанр: Прочая околокомпьтерная литература год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное
Дата добавления:
3 январь 2023
Количество просмотров:
187
Читать онлайн
Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин

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

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин - описание и краткое содержание, автор Тимур Машнин, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

Разработка индикаторов и советников с использованием языка программирования MQL5 для платформы MetaTrader 5. Второе издание, исправленное и дополненное.

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

Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - читать книгу онлайн бесплатно, автор Тимур Машнин
диаграммы индикатора, как код стрелки для стиля DRAW_ARROW, смещение стрелок по вертикали для стиля DRAW_ARROW, количество начальных баров без отрисовки и значений в Окне Данных, тип графического построения, признак отображения значений построения в Окне Данных, сдвиг графического построения индикатора по оси времени в барах, стиль линии отрисовки, толщина линии отрисовки, количество цветов, индекс буфера, содержащего цвет отрисовки.

Давайте разберем каждое из этих свойств по порядку на примере индикатора Custom Moving Average.

Изменим свойство indicator_type1 индикатора Custom Moving Average:

#property indicator_type1 DRAW_ARROW

В функции OnInit () добавим вызов функции PlotIndexSetInteger, определяя различный код стрелки для стиля DRAW_ARROW:

PlotIndexSetInteger (0,PLOT_ARROW,2);

В результате получим соответствующий вид стрелки.

Со значением 3 свойства PLOT_ARROW получим другую стрелку.

И так далее, меняя значение свойства, мы будет видеть разные стрелки.

В функции OnInit () добавим вызов функции PlotIndexSetInteger, определяя смещение стрелок по вертикали для стиля DRAW_ARROW:

PlotIndexSetInteger (0,PLOT_ARROW_SHIFT,100);

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

В индикаторе Custom Moving Average для определения количества начальных баров без отрисовки используется вызов функции PlotIndexSetInteger:

PlotIndexSetInteger (0,PLOT_DRAW_BEGIN, InpMAPeriod);

где InpMAPeriod — период скользящей средней.

Идентификатор свойства PLOT_DRAW_TYPE функции PlotIndexSetInteger позволяет программным способом задать свойство индикатора indicator_typeN, например:

PlotIndexSetInteger (0, PLOT_DRAW_TYPE, DRAW_ARROW);

Причем, если одновременно задано свойство indicator_typeN и сделан вызов функции PlotIndexSetInteger с идентификатором PLOT_DRAW_TYPE — действовать будет тип диаграммы, заданный функцией PlotIndexSetInteger.

Убрать отображение текущих значений диаграммы индикатора при наведении курсора мышки в Окне Данных можно с помощью вызова функции PlotIndexSetInteger с идентификатором PLOT_SHOW_DATA.

PlotIndexSetInteger (0, PLOT_SHOW_DATA, false);

В индикаторе Custom Moving Average для определения сдвига графического построения индикатора по оси времени в барах используется вызов функции PlotIndexSetInteger:

PlotIndexSetInteger (0,PLOT_SHIFT, InpMAShift);

Например, при InpMAShift=10, здесь виден сдвиг индикатора по оси времени.

Такой сдвиг делается для имитации предсказательности индикатора.

Идентификатор свойства PLOT_LINE_STYLE функции PlotIndexSetInteger позволяет программным способом задать свойство индикатора indicator_styleN, стиль линии отрисовки, например:

PlotIndexSetInteger (0, PLOT_LINE_STYLE, STYLE_DASHDOT);

Идентификатор свойства PLOT_LINE_WIDTH функции PlotIndexSetInteger позволяет программным способом задать свойство индикатора indicator_widthN, толщину линии отрисовки, например:

PlotIndexSetInteger (0, PLOT_LINE_WIDTH, 2);

Программным способом задать свойство индикатора indicator_colorN позволяет вызов функции PlotIndexSetInteger с идентификаторами PLOT_COLOR_INDEXES и PLOT_LINE_COLOR, например, в случае индикатора MACD:

#property indicator_color1 Silver

Равнозначно

PlotIndexSetInteger (0,PLOT_COLOR_INDEXES,1);

PlotIndexSetInteger (0,PLOT_LINE_COLOR,0,Silver);

Функция PlotIndexSetString позволяет программным способом задать свойство индикатора indicator_labelN. Например, для индикатора MACD это будет выглядеть следующим образом:

#property indicator_label1 «MACD»

#property indicator_label2 «Signal»

Это равнозначно

PlotIndexSetString (0, PLOT_LABEL, «MACD»);

PlotIndexSetString (1, PLOT_LABEL, «Signal»);

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

Функция OnDeinit

Процитируем справочник:

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

— перед переинициализацией в связи со сменой символа или периода графика, к которому прикреплена mql5-программа;

— перед переинициализацией в связи со сменой входных параметров;

— перед выгрузкой mql5-программы.

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

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

То есть помимо диаграммы индикатора, мы можем присоединять к графику символа различные объекты — линии, графические фигуры треугольник, прямоугольник и эллипс, знаки, подписи и др. Об этом мы поговорим позже.

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

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

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

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

Позже мы продемонстрируем применение этих функций.

Функция OnCalculate

Функция OnCalculate () вызывается клиентским терминалом при поступлении нового тика по символу, для которого рассчитывается индикатор.

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

Здесь мы будем пользоваться полной версией функции OnCalculate () как наиболее гибкой и предоставляющей наибольшие возможности.

Единственное, что мы должны отметить об усеченной функции OnCalculate (), это то, что она имеет опцию использования в качестве массива price [] рассчитанного буфера другого индикатора.

Продемонстрируем это на примере индикатора MACD и индикатора Custom Moving Average, который использует как раз усеченную функцию OnCalculate ().

Присоединим сначала индикатор MACD к графику символа, а затем перетащим индикатор MA из папки Индикаторы — Трендовые в окно индикатора MACD.

Затем еще перетащим индикатор Custom Moving Average в окно индикатора MACD, при этом откроется окно параметров индикатора Custom Moving Average:

В списке выбора — что использовать в качестве массива price [] — будут пункты:

Данные предыдущего индикатора

Данные первого индикатора

Здесь пункт Данные первого индикатора означает, что в качестве массива price [] будет использоваться массив ExtMacdBuffer буфера индикатора MACD, а пункт Данные предыдущего индикатора означает, что в качестве массива price [] будет использоваться массив ExtLineBuffer буфера индикатора MA.

Если в функцию OnCalculate индикатора Custom Moving Average добавить:

Print («begin», begin);

То при выборе Данные первого индикатора будет выводиться:

Begin 0

А при выборе Данные предыдущего индикатора будет выводиться:

Begin 12

В первом случае, begin=0, так как для буфера ExtMacdBuffer индикатора MACD функция PlotIndexSetInteger с параметром PLOT_DRAW_BEGIN не вызывается.

А во втором случае, begin=12, так как для буфера ExtLineBuffer индикатора MA вызывается функция PlotIndexSetInteger:

В ней говорится о том, что массив буфера ExtLineBuffer индикатора MA заполняется, начиная с InpMAPeriod-1 бара, соответственно значение переменной begin


Тимур Машнин читать все книги автора по порядку

Тимур Машнин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


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

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.