Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2593
- Рейтинг:
- Опубликован:
- 2011.11.09 11:12
- Обновлен:
- 2023.03.16 17:42
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
При использовании текстовых графических объектов в индикаторах часто возникает необходимость во входные параметры индикатора выводить возможность изменения типа шрифта текстового графического объекта.
При работе с таким индикатором и желании изменить тип шрифта вполне закономерно набивание его руками в виде строки, входные параметры, но это достаточно неудобно и к тому же сопровождается ошибками. Гораздо практичнее для такой цели использовать свои переменные на основе перечислений и выпадающие списки меню. Именно для решения этой задачи и предназначен этот функциональный модуль.
Как работать с библиотекой можно понять из одного примера. Допустим, мы имеем индикатор (ChartInfo_Old.mq5), который выводит информационную текстовую надпись в одном из углов графика. Вот его входные параметры:
//+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ input string Text="Real"; // Содержание текстовой метки input color TextColor=Red; // Цвет текстовой метки input int FontSize=24; // Размер шрифта input type_font FontType=Font7; // Тип шрифта input ENUM_BASE_CORNER WhatCorner=CORNER_LEFT_LOWER; // Угол расположения input uint Y_=1; // Расположение по вертикали
При наличии такого кода для входных параметров окно входных параметров индикатора будет иметь следующий вид:
Для избавления пользователя индикатора от необходимости набивания руками варианта необходимого ему шрифта, проделываем с кодом следующие, необходимые преобразования:
1. С помощью директивы #include до объявления входных параметров индикатора добавляем содержимое файла GetFontName.mqh:
//+----------------------------------------------+ // Описание перечисления type_font | // Описание класса CFontName | //+----------------------------------------------+ #include <GetFontName.mqh>
2. Меняем строку входного параметра FontType:
input string FontType="Courier New"; // Тип шрифта
на строку
input type_font FontType=Font7; // Тип шрифта
Таким образом мы несколько изменили смысл использования переменной. Смысл же прежней переменной мы воплотим в новой строковой переменной, которую объявим на глобальном уровне
string sFontType;
После этого следует в коде индикатора сделать замену переменной FontType на sFontType. Это необходимо сделать всего в одном месте:
SetTLabel(0,"Info_Label",0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),5,Y_,Text,TextColor,sFontType,FontSize);
Теперь в блоке OnInit() небходимо произвести инициализацию переменной sFontType, для чего следует добавить всего пару строк кода:
CFontName FONT; sFontType=FONT.GetFontName(FontType);
После этого можно откомпилировать исправленный индикатор ChartInfo.mq5
Теперь можно увидеть изменения в окне входных параметров индикатора:
Работать с изменением шрифта во входных параметрах индикатора стало очень просто и удобно.
![IncMFIOnArray](https://c.mql5.com/i/code/library.png)
Класс CMFIOnArray предназначен для расчета значений индикатора MFI (Money Flow Index, MFI) по индикаторному буферу. Приведен пример использования класса.
![IncRSIOnArray](https://c.mql5.com/i/code/library.png)
Класс CRSIOnArray предназначен для расчета значений индикатора RSI (Relative Strength Index, RSI) по индикаторному буферу.
![SpreadInfo](https://c.mql5.com/i/code/indicator.png)
Индикатор SpreadInfo выводит в одном из углов графика текущее значение спреда, его среднее значение и их отношение.
![TrendLineAlert](https://c.mql5.com/i/code/indicator.png)
Индикатор отображает наклонную трендовую линию, с помощью которой задается уровень срабатывания сигнала.