MQL4 — MQL5. Плавный переход

mql5

Посчитав себя уже достаточно опытным программистом в среде MQL4, решил, значит я, друзья, замахнуться на MQL5. Естественно, самой лучшей практикой является выполнение конкретной задачи.

Объектом моего внимания стал индикатор дивергенции MACD, имеющий наибольшее количество скачиваний и моих бесплатных товаров на маркете.

Сначала, естественно — установка платформы Meta Trader 5. Здесь ничего нового. Процесс абсолютно аналогичен MT4. В терминале внешне все похоже, в редакторе MetaEditor — все так же. Увидел разницу в том, что тестер стратегий вынесен из терминала. Удобно это или нет — пока не знаю, дальше посмотрим. Кстати, для того, чтобы иметь возможноть прогона индикатора или советника в тестере, нужно залогиниться в системе — вперед на регистрацию демо-счета.

Далее переходим к мета-редактору. В отличии от младшей версии, здесь есть возможность создать не пустой шаблон (в моем случае индикатора), а имеется мастер для подготовки индивидуального шаблона. Открываем меню Файл->Создать, выбираем «Пользовательский индикатор» и жмем на кнопку «Далее».

Запуск мастера для создания шаблона индикатора

Запуск мастера для создания шаблона индикатора

В следующем окне вводим параметры. Обязательно здесь ввести имя будущего индикатора. Остальное можно добавить после. Но как-кому. Если параметры уже известны, то удобно их ввести сейчас.

Параметры файла

Параметры файла

В следующем окне выбираем вид вид функции OnCalculate. Имеются 2 варианта с малым и расширенным набором параметров. Кстати, функция start() для пересчета индикатора в MQL5 не доступна. Так же можно выбрать обрабочкиков событий OnTimer и OnChartEvent — мастер добавит эти функции в шаблон.

Выбор обработчиков событий

Выбор обработчиков событий

Последнее окно позволяет выбрать где отображать индикатор — в окне графика или в дополнительном. Кстати, обидно, что нельзя выводить в оба — было бы интересно. Можно задать минимум/максимум и буферы индикатора.

Выбор индикаторных буферов

Выбор индикаторных буферов

После завершения получим заточенный под ваши требования шаблон — исходный файл будущей программы. Дальше коротко о самой программе и различиях ее с MQL4.

Первое, что бросается в глаза — неограниченное количество буферов и расширенный набор типов рисования. Буферы могут иметь 3 типа: данные индикатора, цветовые данные (можно задавать цвета для каждой точки) и расчетные данные. Общее количество буферов может отличаться от тех, что отображаются. Кстати, после, в окне настроек они будут проименованы, а не только указаны по индексу, как в MQL4.

Далее — использование индикаторов. В MQL4 каждая точка каждой серии индикатора высчитывается индивидуально. В MQL5 индикатор создается на старте программы, просчитывая инициализированные данные, после — обновляются только данные того требующие. Это заметное снижение нагрузки на каждом цикле программы. Но имеются и тонкости. На момент запуска цикла пересчета индикатор может быть еще не полностью просчитан — необходимо это контролировать. Данные из индикатора выбираются функцией CopyBuffer, которая их «переворачивает».  Если в индикаторном буфере индекс ноль будет представлять значение на текущем цикле, то после выборки данных во внешний буфер — наоборот.

Формат получения данных из буфера индикатора

Формат получения данных из буфера индикатора

Если вы привыкли использовать буфер в формате тайм-серии, то необходима сменить в нем направление функцией ArraySetAsSeries. Это же самое касается буферов вашего индикатора и массивов high, low, time и т.д., передаваемых в параметры функции OnCalculate. Нужно менять привычные методы обработки массивов или переворачивать их указанной функцией.

Ну вобщем-то и все, в том, что касается различия MQL4 и MQL5 в контексте разработки индикатора. Есть некоторое различие в параметрах функции работы с графическими объектами, но это легко покажет встроенный файл помощи.

Кардинальное отличие между MQL4 и MQL5 имеется в области ведения торговых операций, но это совсем другая история.

Вы можете оставить комментарий, или ссылку на Ваш сайт.
Купить со скидкой тут совсем недорого, звоните.

Оставить комментарий

Вы должны быть авторизованы, чтобы разместить комментарий.