«MQL5 Программирование»

«MQL5 Программирование» | 09/05/2026 | 1

Добавьте страницу в закладки, чтобы не потерять

Введение, отличия MQL4 и MQL5

Работа с ордерами

Домашнее задание

В качестве домашнего задания я предлагаю написать метод класса Order, который позволит закрыть позицию открытого ордера частично, т.е. если у Вас открыта позиция на 0.5 лота, то функция должна позволить закрыть, к примеру 0.13 лота у открытого ордера.

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

Домашнее задание

  1. Используя методы класса CTrade установить StopLoss и TakeProfit после установки ордера.
  2. Корректно удалить из программы за ненадобностью код, отвечающий за закрытие ордеров в режиме реального времени.

Создаем информационную панель

Домашнее задание

  1. Добавьте в свойства панели информацию о времени открытия позиции.
  2. Измените код советника таким образом, чтобы панель отображалась не справа, а слева (будьте внимательны, одним изменением координат тут не обойтись).

Как написать скрипт для MT5

Домашнее задание

  1. Написать для скрипта функцию открытия позиции на продажу.
  2. Добавить в скрипт функцию закрытия всех рабочих ордеров, находящихся в рынке.

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

Домашнее задание

  1. С целью минимизации убытка добавьте в советник StopLoss.
  2. Добавьте в советник ограничение на время торговли. К примеру, эксперт открывает позиции в ночное время, а в дневное только пытается выйти из просадки методом усреднения.
  3. Предлагаю изменить условия входа в рынок и воспользоваться индикатором Bollindger Bands. Входить в продажи, когда цена пересекает верхнюю границу канала и в покупки при пересечении ценой нижней границы канала.

Пишем мультивалютный советник

Домашнее задание

  1. Мы с вами написали эксперт для торговли на трёх валютных парах, расширьте диапазон торговли, добавив ещё несколько пар, к примеру USDJPYAUDUSD, EURGBP.
  2. Добавьте в советник для каждой валютный пары StopLoss и TakeProfit.
  3. Вместо сигнала от Moving Average используйте сигналы индикатора MACD.
  4. Напишите функцию ErrorDescription и вместо кода ошибки выводите её текстовое описание.

Как написать индикатор для MT5

Домашнее задание

  1. Вместо отображения разности показаний Moving Average сделайте отображение гистограммы на основе индикатора RSI.
  2. На уроках 6 и 7 мы с вами писали советники. Продолжим? Напишите советник, работающий на этом индикаторе. Пусть это будет скальпер-ночник, т.е. одним из параметров которого будет время работы.

Как переписать советник из MQL4 в MQL5

Домашнее задание

Выберите Ваш любимый советник, написанный на языке программирования MQL4 и перепишите его под платформу MQL5, используя встроенные классы языка.

Пишем советник на внешнем индикаторе

Домашнее задание

Понятно, что в этом уроке мы не преследовали цель написать прибыльный советник, поэтому эта задача ляжет на вас. Итак, давайте попробуем:

  1. Раз индикатор, и, соответственно, советник трендовый, то понятно, что стоит исключить из торговли ночное время – время флета. Добавьте в советник ограничение по времени работы – ночью не торгуем.
  2. Предлагаю добавить трейлинг-стоп – а вдруг будет лучше? Слабо?

Пишем универсальный советник для MT4 и MT5

Использование экономического календаря в MT5

Домашнее задание

Итак, функции разработаны и советник написан. Увы, но протестировать его в тестере стратегий не удастся, т.к. функции экономического календаря в нём не поддерживаются. Зато можно поставить эксперта на демо-счёт и понаблюдать за его работой. Давайте доработаем наш советник для большей гибкости:

  1. Добавьте внешний параметр “GMTOffset” или вычислите его автоматически, измените код эксперта с учётом этого параметра.
  2. Добавьте внешний параметр “StartBeforeNews” (время в минутах) для установки отложенных ордеров перед новостями. Доработайте соответствующую функцию.