MQL5 для чайников - Урок 1: Редактор кода, События, устройство mql5 программ

12 627
16.4
Опубликовано 17 ноября 2021, 19:41
Проверенные и надежные брокеры:
💰 👉 tlap.com/brokeryi

📈 наш сайт 👉 tlap.com
🙋‍♂️ форум 👉 tlap.com/forum
👨‍💻 вк 👉 vk.com/public29468299
🤑 телеграм 👉 t.me/tradelikeaproru
🙈 инстаграм 👉 instagram.com/tradelikeaproru

Приветствую вас, друзья! Эта серия уроков направлена на новичков, которые вообще никогда не пытались учиться программировать. Для тех, кто пробовал, знает уже какой-то язык, особенно Си и mql4, многие из этих уроков будут простыми.

В первом уроке мы рассмотрим отличия MQL5 от 4 версии, устройство редактора кода MetaEditor 5 и основные функции устройства MQL программ.

Что такое MQL5 ?

Mql5 — это объектно-ориентированный язык, в нем можно оперировать сложными типами данных, такими как классы. Он очень сильно похож на C++. В mql5 по сравнению со старой 4 версией присутствует больше обработчиков событий и самих событий, поэтому и возможности написания более сложных алгоритмов выше. Сейчас в 4 версии также появилась возможность применения объектно-ориентированного подхода и еще множество разных плюшек, которые доступны в mql5 изначально, поэтому mql4 сейчас сильно приближен к 5 версии, за исключение нескольких вещей – в mql4 меньше событий, немного меньше функционала в тестере, ну и еще несколько мелочей. Подозреваю, что это было сделано для более плавного перехода на 5 версию. Принципиальное отличие 4 от 5 в том, что по одному инструменту может быть открыта только одна активная позиция. Тогда как в 4 мы оперируем ордерами, которых может быть по одному инструменту множество.

Язык mql – это узкоспециализированный язык, нацеленный на написание торговых стратегий, индикаторов и скриптов для торговли. Собственно, сам код пишется в специальном редакторе MetaTrader. Попасть в него можно, кликнув на иконку редактора в терминале, или же нажать кнопку F4.

Редактор кода MetaEditor позволяет редактировать и писать исходный код программ, создавать и использовать шаблоны для ускорения разработки, компилировать написанный код, запускать отладку, обращаться к встроенной помощи. То есть самые важные, базовые вещи в редакторе присутствуют.

Текст в редакторе подсвечивается разными цветами, что очень удобно. Цвета, фон и размер шрифта можно поменять в настройках программы.

После написания программы ее нужно скомпилировать, перевести в машинный код. Для этого можно нажать на кнопку на панели или на клавишу F7. В журнале можно посмотреть ошибки компиляции и предупреждения, какие файлы включения попали в программу и прочая справочная информация.

Также в редакторе кода есть отладка. Это специальный режим, который позволяет пройтись по коду построчно. В mql4 очень долго его не было, но в итоге отладчик все же добавили. В mql5 он был изначально. Для отладки нажимаем кнопочку “play” или F5. В настройках можно выбрать инструмент и таймфрейм. После нажатия открывается окно настроек совы, управление программой останавливается на указанной нами строке. Перемещаться по строкам можно с помощью F10 или кнопки “шаг с обходом”. Чтобы остановить отладку достаточно нажать кнопку “стоп”.

mql – это событийно ориентированный язык. Это значит, что когда происходит определенное событие, наша программа на него каким-то образом реагирует. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Программа получает события только от графика, на котором она запущена. Все события обрабатываются одно за другим в порядке поступления.

Функция OnInit
Эта служебная функция обрабатывает начало работы советника на графике. Сюда мы пишем все, что должно быть выполнено в момент прикрепления совы к графику — например, какие-то проверки, рисование панелей, подготовка данных и так далее. Выглядит она следующим образом:

int OnInit(void);

Функция возвращает одно из предопределенных значений:

INIT_SUCCEEDED – инициализация прошла успешно;
INIT_FAILED – неудачная инициализация, тестирование нет смысла продолжать из-за неустранимых ошибок;
INIT_PARAMETERS_INCORRECT – предназначен для обозначения программистом некорректного набора входных параметров;
форекс советники валютный рынок трейдинг

00:00 Введение
01:57 Редактор кода MetaEditor
06:39 Настройки MetaEditor
08:51 Отладка
10:44 Шапка программы mql5
11:26 События mql5
13:25 Функция OnInit
17:07 Функция OnDeinit
20:56 Комментарии
23:40 Функция OnTick
24:46 Функция OnTimer
26:58 Функция OnTrade
27:58 Функция OnTradeTransaction
29:21 Функция OnBookEvent
30:11 Функция OnChartEvent
30:32 Функция OnTester
31:00 Функция OnTesterInit
31:10 Функция OnTesterPass
31:28 Функция OnTesterDeinit
31:38 Порядок возникновения событий
36:48 Функция OnCalculate
37:00 Функция OnStart
37:54 Заключение
жизньигрыфильмывесельеавтотехномузыкаспортедаденьгистройкаохотаогородзнанияздоровьекреативдетское