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

Идентификатор свойства 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 [] — будут пункты:

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

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

Самоучитель UML
Самоучитель UML

Самоучитель UMLПервое издание.В книге рассматриваются основы UML – унифицированного языка моделирования для описания, визуализации и документирования объектно-ориентированных систем и бизнес-процессов в ходе разработки программных приложений. Подробно описываются базовые понятия UML, необходимые для построения объектно-ориентированной модели системы с использованием графической нотации. Изложение сопровождается примерами разработки отдельных диаграмм, которые необходимы для представления информационной модели системы. Цель книги – помочь программистам освоить новую методологию разработки корпоративных программных приложений для последующего применения полученных знаний с использованием соответствующих CASE-инструментов.

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов
Omert@. Руководство по компьютерной безопасности и защите информации для Больших Боссов

Увы, друг мой, защита твоей информации - или хотя бы четкое понимание того, что это такое и как подобная защита должна строиться - это Твое Личное Дело! Не Cosa Nostra (хотя твои проблемы могут стать и Нашим Делом тоже), а Cosa Roba - Твое Дело!  Я знаю, что ты солидный человек, который привык платить, чтобы за него решали проблемы. Однако есть проблемы, которые за тебя никто не решит, - даже за очень большие деньги. Например, заниматься любовью со своей женой должен ты сам. Но кто тебе сказал, что защита твоей информации - это менее интимное дело, и его можно поручить постороннему?  Первая книга по безопасности для Менеджеров, а не для ботаников-компьютерщиков, информации от широко неизвестного благодаря своей репутации эксперта международного класса. Только благодаря ей Большой Босс сможет понять, каким образом он сможет чувствовать себя хотя бы в относительной безопасности!  Ты должен сам знать, что такое безопасность информации! Ни один нанятый специалист не решит это за тебя!  Если ты нанимаешь студента-компьютерщика за двести баксов в месяц и совершенно серьезно считаешь его специалистом по информационной безопасности, - не понятно, как ты вообще смог стать менеджером подобного уровня.

Алекс Экслер , Карл Шкафиц

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT