Одна из функций, которая периодически используется, это функция предствления таймфрэйма в красивый строковый вид. Сам MQL использует для этого целые числа, маскируя их в константах такого вида:
PERIOD_M1.
Итак, заносим в нашу библиотеку первую функцию:
MQL
//////////////////////////////////////////////////////////////////////
// функция выдаёт строчку символов в виде текущего периода
[color=blue;font-weight:bold]int[/color] ПоказатьПериод([color=blue;font-weight:bold]int[/color] ТекущийПериод) {
[color=blue;font-weight:bold]string[/color] ret; // это будем возвращать после назначения
// смотрим - какой период и назначаем соответствующую строчку
[color=blue;font-weight:bold]switch[/color](ТекущийПериод) {
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_M1[/color]: ret=[color=green]"M1"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_M5[/color]: ret=[color=green]"M5"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_M1[/color]5: ret=[color=green]"M15"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_M30[/color]: ret=[color=green]"M30"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_H1[/color]: ret=[color=green]"H1"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_H4[/color]: ret=[color=green]"H4"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_D1[/color]: ret=[color=green]"D1"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_W1[/color]: ret=[color=green]"W1"[/color] ; [color=blue;font-weight:bold]break[/color]:
[color=blue;font-weight:bold]case[/color] [color=navy;]PERIOD_MN1[/color]: ret=[color=green]"MN1"[/color] ; [color=blue;font-weight:bold]break[/color]:
}
[color=blue;font-weight:bold]return[/color](ret);
}
Внимание! Инструкция [color="#3333FF"]switch[/color] использует только целые константы.
Соответствено, PERIOD_M1 и т.д. - это встроенные целые константы, обозначающие период таймфрэйма.
После проверки соответствия, переменной ret назначается строка, обозначающая наше представление периода, а не целое число минут. После чего проверка прерывается ([color="#3333FF"]break[/color]) и с помощью инструкции [color="#3333FF"]return[/color](ret) функция возвращает строчку.
Внимание! У библиотечных функций не должно быть параметров по-умолчанию.
Для использования функцию нужно объявить в вашем модуле:
MQL
#import [color=green]"моя_библиотека.ex4"[/color]
[color=blue;font-weight:bold]int[/color] ПоказатьПериод([color=blue;font-weight:bold]int[/color] ТекущийПериод);
#import
Теперь в вашем модуле эта функция может свободно использоваться:
MQL
[color=blue;font-weight:bold]string[/color] ТекущийПериод = ПоказатьПериод([color=violet;font-weight:bold]Period[/color]());
Для большей информации по используемым функциям, инструкциям, константам выделите текст и нажмите клавишу F1.