Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2710
- Рейтинг:
- Опубликован:
- 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
Теперь можно увидеть изменения в окне входных параметров индикатора:
Работать с изменением шрифта во входных параметрах индикатора стало очень просто и удобно.

Класс CMFIOnArray предназначен для расчета значений индикатора MFI (Money Flow Index, MFI) по индикаторному буферу. Приведен пример использования класса.

Класс CRSIOnArray предназначен для расчета значений индикатора RSI (Relative Strength Index, RSI) по индикаторному буферу.

Индикатор SpreadInfo выводит в одном из углов графика текущее значение спреда, его среднее значение и их отношение.

Индикатор отображает наклонную трендовую линию, с помощью которой задается уровень срабатывания сигнала.