Введение в MQL5

MQL5 – язык программирования, встроенный в торговую платформу Metatrader (версии 4 и 5). Синтаксис MQL5 близок к языку C.

В недалёком прошлом для 4-й версии платформы использовался язык MQL4, но, начиная с билда 600, язык программирования MQL4 был полностью переработан и достиг уровня MQL5. Теперь писать торговых роботов на MQL4/MQL5 можно в единой среде разработке MetaEditor, используя единый стиль, библиотеки и инструменты отладки.

Для вызова программы MetaEditor из торгового терминала Metatrader (версии 4 или 5) надо выполнить команду главного меню Сервис ‣ Редактор MetaQuotes Language или нажать клавишу F4.

Язык программирования MQL4/5 позволяет писать программы, имеющие различное назначение:

  • Советник (эксперт, Expert Advisor) – программа, которая ведет торговую деятельность по заданному алгоритму. Советник позволяет реализовать торговую систему для автоматической торговли (без участия человека). Советник может совершать сделки, открывать и закрывать позиции, управлять отложенными ордерами.
  • Индикатор (Indicator) – программа, позволяющая представить данные в графическом виде, удобном для анализа.
  • Скрипт (Script) – программа, позволяющая однократно выполнить некоторую последовательность действий.

Пример простейшего советника

После запуска редактора MetaEditor нажмём комбинацию клавиш Ctrl+N, или кнопку Создать на панели инструментов, или выполним команду главного меню Файл ‣ Создать.

В открывшемся окне Мастер MQL выбирем первый режим Советник и нажмём кнопку Далее.

Далее введём имя будущего советника, например, MyEA01, в результате поле Имя будет содержать текст Experts\MyEA01.

Поля Автор и Ссылка заполним произвольным текстом.

В этом же окне нажмём справа кнопку Добавить и напишем имя первого параметра TakeProfit, из раскрывающегося списка выберем тип int (целое число) и в следующем столбце напишем значение по умолчанию 50.

Добавим остальные параметры, чтобы получилось, как указано на рис.1, после чего нажмём кнопку Далее.

../_images/mql5ea-01.png

Рис. 1. Задание параметров советника

В следующем окне не будем ставить никаких галочек и нажмём кнопку Далее.

В последнем окне опять не будем ставить никаких галочек и нажмём кнопку Готово.

Откроется окно редактора кода, в котором уже будет вписан шаблон будущего советника:

//+------------------------------------------------------------------+
//|                                                       MyEA01.mq4 |
//|                                                 ProfiTraders.com |
//|                                          http://profitraders.com |
//+------------------------------------------------------------------+
#property copyright "ProfiTraders.com"
#property link      "http://profitraders.com"
#property version   "1.00"
#property strict
//--- input parameters
input int      TakeProfit = 50;
input int      StopLoss = 25;
input int      PeriodMA = 250;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  }
//+------------------------------------------------------------------+

Как видим, строки, содержащие комментарии, начинаются символами //. Многострочные комментарии выделяются символами /* и */.

Текст программы уже содержит заголовки функций OnInit(), OnDeinit() и OnTick().

Функция OnInit() выполняется при инициализации советника, т.е. сразу после его добавления к графику, а также после смены финансового инструмента или периода графика, к которому привязан советник; после изменения входных параметров советника; после переподключения к другому торговому счёту; после перекомпиляции советника в окне MetaEditor.

Функция OnDeinit() выполняется при деинициализации советника, т.е. перед завершением работы торгового терминала, перед закрытием графика, непосредственно перед сменой финансового инструмента и/или периода графика, при удачной перекомпиляции программы, при смене входных параметров, а также при смене счёта.

Функция OnTick() выполняется при поступлении нового тика (котировки) по символу, к графику которого прикреплён советник. Именно здесь обычно пишется основная часть кода, реализующего логику работы советника.

В старых версиях MQL4 эти три функции назывались init(), deinit() и start().

Нажмём кнопку Компилировать на панели инструментов, чтобы убедиться, что в тексте программы ошибки пока отсутствуют.

В разделе input parameters (входные параметры), перед заголовком функции OnInit() допишем строку:

input double  LotSize = 0.1;  // Размер позиции.

Как видим, параметры советника не обязательно задавать в окне начального мастера, можно сделать это и потом, в тексте программы.

(продолжение следует...)

Ссылки



Комментарии

Комментариев пока нет.

* Обязательные поля
(Не публикуется)
 
Жирный Курсив Подчеркнутый Перечеркнутый Степень Индекс Код PHP Код Кавычки Вставить линию Вставить маркированный список Вставить нумерованный список Вставить ссылку Вставить e-mail Вставить изображение Вставить видео
 
Улыбка Печаль Удивление Смех Злость Язык Возмущение Ухмылка Подмигнуть Испуг Круто Скука Смущение Несерьёзно Шокирован
 
1000
Captcha
Refresh
 
Введите код:
 
Запомнить информацию введенную в поля формы.