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

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

При этом такой символ может определяться пользователем.

В функции OnInit также полезно проверить этот входной параметр на корректность.

Например, в коде индикатора MACD пусть определен входной параметр:

input string symbol=" ";

Объявим глобальную переменную:

string name=symbol;

И в функции OnInit произведем проверку – удалим пробелы слева и справа с помощью функции StringTrimRight, и если после этого длина строки name нулевая, возьмем символ с графика, на котором запущен индикатор.

Программная установка свойств индикатора осуществляется с помощью функций IndicatorSetDouble, IndicatorSetInteger, IndicatorSetString, PlotIndexSetDouble, PlotIndexSetInteger, PlotIndexSetString.

Функция IndicatorSetDouble позволяет программным способом определять такие свойства индикатора как indicator_minimum, indicator_maximum и indicator_levelN, например:

IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 50)

является аналогом:

property indicator_level1 50

Функция IndicatorSetInteger позволяет программным способом определять такие свойства индикатора как indicator_height, indicator_levelcolor, indicator_levelwidth, indicator_levelstyle.

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

Свойства индикатора, связанные с уровнями, заменяем на код, используя функцию IndicatorSetInteger.

Функция IndicatorSetInteger также позволяет определить точность индикатора, например:

IndicatorSetInteger(INDICATOR_DIGITS,2);

В результате будут отображаться только два знака после запятой значения индикатора.

Для функции IndicatorSetString нет соответствующих ей свойств индикатора property.

С помощью функции IndicatorSetString можно определить короткое наименование индикатора, например для индикатора MACD:

Это выглядит следующим образом.

И соответственно имя индикатора будет отображаться в окне индикатора как:

MACD (12, 26, 9)

Кроме того, функция IndicatorSetString позволяет установить подписи к уровням индикатора, например для индикатора RSI:

Можно отобразить подписи к уровням Oversold и Overbought.

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

Диаграмма индикатора рисуется от одного непустого значения до другого непустого значения индикаторного буфера, пустые значения пропускаются. Чтобы указать, какое значение следует считать "пустым", необходимо определить это значение в свойстве PLOT_EMPTY_VALUE. Например, если индикатор должен рисоваться по ненулевым значениям, то нужно задать нулевое значение в качестве пустого значения буфера индикатора:

PlotIndexSetDouble(индекс_построения,PLOT_EMPTY_VALUE,0);

Функция PlotIndexSetInteger позволяет программным способом, динамически, задавать такие свойства диаграммы индикатора, как код стрелки для стиля DRAW_ARROW, смещение стрелок по вертикали для стиля DRAW_ARROW, количество начальных баров без отрисовки и значений в Окне Данных, тип графического построения, признак отображения значений построения в Окне Данных, сдвиг графического построения индикатора по оси времени в барах, стиль линии отрисовки, толщина линии отрисовки, количество цветов, индекс буфера, содержащего цвет отрисовки.

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

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

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

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

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

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

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