Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

GetFontName - библиотека для MetaTrader 5

Просмотров:
2570
Рейтинг:
(26)
Опубликован:
2011.11.09 11:12
Обновлен:
2023.03.16 17:42
\MQL5\Include\ \MQL5\Indicators\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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

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

Как работать с библиотекой можно понять из одного примера. Допустим, мы имеем индикатор (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;                                   // Расположение по вертикали

При наличии такого кода для входных параметров окно входных параметров индикатора будет иметь следующий вид:

ChartInfo_Old

Для избавления пользователя индикатора от необходимости набивания руками варианта необходимого ему шрифта, проделываем с кодом следующие, необходимые преобразования:

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

Теперь можно увидеть изменения в окне входных параметров индикатора:

ChartInfo

Работать с изменением шрифта во входных параметрах индикатора стало очень просто и удобно.

IncMFIOnArray IncMFIOnArray

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

IncRSIOnArray IncRSIOnArray

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

SpreadInfo SpreadInfo

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

TrendLineAlert TrendLineAlert

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