Итак, в прошлом выпуске мы вызвали контекстное меню окна «Навигатор» группы «Expert Advisors» и выбрали пункт меню «Create». В результате появилось окно, в котором нам предстоит выбрать тип объекта, который мы хотим создать (см. рис. 1).
Рис. 1. Выберем тип объекта, который мы хотим написать на языке MetaQuotes Language 4
Нас интересует создание эксперта, поэтому выбираем пункт «Expert Advisor». Нажимаем «Далее».
В следующем окне (рис. 2.) установим параметры нового эксперта:
- Name — имя советника (файлу будет присвоено такое же имя с расширением *.mq4;
- Author — автор советника;
- Link — адрес веб-сайта автора советника;
- Parameters — параметры советника, которые можно впоследствии менять при подключении советника к графику;
Рис. 2. Настройка параметров советника
Зададим для тренировки какой-нибудь параметр. Например, MAPeriod. Для этого нажмите кнопку «Add» и настройте каждое поле параметра:
- Name — имя параметра (в нашем примере MAPeriod);
- Type — тип параметра;
- Initial value — начальное значение.
Параметры могут быть следующих типов:
- int — целое число (от -2147483648 до 2147483647);
- bool — логический тип (или ложь — false, или истина — true);
- datetime — дата и время (в формате D’YYYY.MM.DD HH:MM:SS’);
- color — цвет (о формате я расскажу в следующих выпусках);
- double — вещественное число (-1.7 × 10-308 до 1.7 × 10308, точность — 15 значащих цифр);
- string — заключенная в двойные кавычки строка (например, «это строка»).
Нажмем кнопку «Готово». В результате мы увидим заготовку для кода нашего первого эксперта:
//+------------------------------------------------------------------+
//| My First Expert.mq4 |
//| Copyright c 2006, Andrey Vedikhin |
//| http://www.vedikhin.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Andrey Vedikhin"
#property link "http://www.vedikhin.ru"
//---- input parameters
extern int MAPeriod=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+