Любой эксперт, как мы уже увидели в предыдущей статье, состоит из как минимум трех функций: init(), start() и deinit(). Без понимания, что они делают, невозможно написать своего эксперта, поэтому я в следующей статье подробно эти функции рассмотрю.
Для начала же полезно понять, а что такое функция вообще. Допустим Вы в своей программе часто производите одни и те же действия. Вы можете в каждом месте написать код, который выполняет эти действия. Тем не менее это неудобно и неправильно с нескольких точек зрения:
Таким образом, в любой момент Вы можете описать свою функцию, которая будет выполнять определенные действия:
тип имя ( параметры )Функция может возвращать какое значение любого из стандартных типов (int, bool, datetime, double, color, string - см. описание типов в выпуске "Настраиваем параметры нового эксперта"), либо не возвращать никакого значения (тип void).
Имя функции - это любое понятное Вам имя, которое помогает сразу же вспомнить, что делает эта функция. Имя может состоять из цифр (0-9), латинских прописных и строчных букв (а - z и А - Z, следует помнить, что буквы 'a' и 'A' - совершенно разные символы), символа подчеркивания (_). Первый символ не может быть цифрой. Также имя функции не должно совпадать с зарезервированным словом (т. е. словом, которое имеет особый смысл в языке MetaQuotes Language 4 - но об этом позже).
Пример имени функции: GetConnectionStatus.
Каждой функции могут передаваться определенные параметры. Они указываются через через запятую в круглых скобках после имени функции. Для каждого параметра указывается тип.
Приведем пример описания функции, которая вычисляет наименьшее из двух целых чисел:
int GetMinValue(int a1, int a2)Эта функция возвращает значение типа int (целое число), ее имя - GetMinValue и она имеет два входящих целочисленных параметра: a1 и a2.
Для возврата значения в вызывающую программу используется команда return(значение).
Если в каком-то месте нашего советника нам потребуется вычислить минимальное число из двух, то мы можем вызвать нашу функцию следующим образом: имя(параметры через запятую). Например: GetMinValue(10, 15).
Теперь мы знаем достаточно о функциях, чтобы перейти к подробному рассмотрению трех важнейших функций любого эксперта: init(), start() и deinit().
Есть что сказать? Не стесняйтесь!
Последние статьи:
Видео по теме:
УГОЛОК АДМИНИСТРАТОРА