Статьи с примерами программирования на языке MQL5

icon

Самые разнообразные статьи с примерами по созданию индикаторов и торговых роботов для платформы MetaTrader на языке MQL5 ждут вас. К каждой статье приложены исходные коды, которые вы можете открыть в редакторе MetaEditor и запустить самостоятельно.

Эти статьи будут полезны как новичкам в автоматическом трейдинге, так и подготовленным трейдерам с опытом программирования и торговли. Здесь вы найдете не только примеры, но и новые идеи.

Новая статья
последние | лучшие
Графические интерфейсы V: Вертикальная и горизонтальная полоса прокрутки (Глава 1)
Графические интерфейсы V: Вертикальная и горизонтальная полоса прокрутки (Глава 1)

Графические интерфейсы V: Вертикальная и горизонтальная полоса прокрутки (Глава 1)

Продолжаем рассматривать процесс разработки библиотеки для создания графических интерфейсов в среде торговых терминалов MetaTrader. В первой главе пятой части серии разработаем классы для создания таких элементов управления, как вертикальные и горизонтальные полосы прокрутки.
Графические интерфейсы IV: Многооконный режим и система приоритетов (Глава 2)
Графические интерфейсы IV: Многооконный режим и система приоритетов (Глава 2)

Графические интерфейсы IV: Многооконный режим и система приоритетов (Глава 2)

В этой статье мы расширим реализацию библиотеки до возможности создавать многооконные интерфейсы для своих MQL-приложений. Кроме этого, разработаем систему приоритетов на нажатие левой кнопкой мыши на графических объектах. Это нужно, чтобы не столкнуться с проблемами, когда элементы управления неожиданно не отвечают на действия пользователя.
Графические интерфейсы IV: Информационные элементы интерфейса (Глава 1)
Графические интерфейсы IV: Информационные элементы интерфейса (Глава 1)

Графические интерфейсы IV: Информационные элементы интерфейса (Глава 1)

На текущий момент в разрабатываемой библиотеке для создания графических интерфейсов есть форма и несколько элементов управления, которые можно к ней присоединять. Сейчас у нас все готово для рассмотрения вопроса многооконного режима, однако этим мы займемся во второй главе данной статьи. Прежде мы напишем классы, с помощью которых можно будет создавать информационные элементы интерфейса, такие, как «статусная строка» и «всплывающая подсказка».
Графические интерфейсы III: Группы простых и многофункциональных кнопок (Глава 2)
Графические интерфейсы III: Группы простых и многофункциональных кнопок (Глава 2)

Графические интерфейсы III: Группы простых и многофункциональных кнопок (Глава 2)

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

Графические интерфейсы III: Простые и многофункциональные кнопки (Глава 1)

Приступим к рассмотрению такого элемента управления, как кнопка. Будут показаны примеры нескольких классов для создания простой кнопки, кнопок с расширенным функционалом («кнопка с картинкой» и «сдвоенная кнопка»), а также кнопок, которые взаимосвязаны между собой (группы кнопок и «радио-кнопки»). Кроме этого, внесём некоторые дополнения в уже существующие классы элементов управления, чтобы расширить их возможности.
Рецепты MQL5 - Программируем скользящие каналы
Рецепты MQL5 - Программируем скользящие каналы

Рецепты MQL5 - Программируем скользящие каналы

В данной статье представлен способ программирования системы равноудалённых каналов. Рассматриваются некоторые нюансы построения таких каналов. Приводится типизация каналов, предлагается способ универсального типа скользящих каналов. При реализации кода используется инструментарий ООП.
Графические интерфейсы II: Элемент "Главное меню" (Глава 4)
Графические интерфейсы II: Элемент "Главное меню" (Глава 4)

Графические интерфейсы II: Элемент "Главное меню" (Глава 4)

Это завершающая глава второй части серии о графических интерфейсах. В ней мы рассмотрим создание такого элемента управления, как «Главное меню». Будет продемонстрирован процесс его разработки и настройка обработчиков классов библиотеки для правильной реакции на действия пользователя. Также мы рассмотрим, как подключить к пунктам главного меню контекстные меню. Кроме того, затронем тему блокировки неактивных на текущий момент элементов.
Графические интерфейсы II: Настройка обработчиков событий библиотеки (Глава 3)
Графические интерфейсы II: Настройка обработчиков событий библиотеки (Глава 3)

Графические интерфейсы II: Настройка обработчиков событий библиотеки (Глава 3)

В предыдущих статьях были реализованы классы для создания всех составных частей главного меню. Теперь же настало время познакомиться с обработчиками событий в главных базовых классах и в классах созданных элементов управления. Отдельное внимание уделено управлению состоянием графика в зависимости от того, где находится курсор мыши.
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

В этой статье мы создадим элемент «Разделительная линия». Его тоже можно будет использовать не только как независимый элемент интерфейса, но и как часть многих других элементов. После этого у нас будет всё необходимое для разработки класса контекстного меню, которое тоже будет подробно рассмотрено в этой статье. Кроме этого, вносятся необходимые дополнения в класс, который является базой для хранения указателей на все элементы графического интерфейса приложения.
Как быстро добавить панель управления к индикатору и советнику
Как быстро добавить панель управления к индикатору и советнику

Как быстро добавить панель управления к индикатору и советнику

Вы хотите добавить к своему индикатору или советнику графическую панельку для удобного и быстрого управления, но не знаете, как это сделать? В этой статье шаг за шагом я покажу как "прикрутить" панель диалога со входными параметрами к вашей MQL4/MQL5-программе.
Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)
Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)

Графические интерфейсы II: Элемент "Пункт меню" (Глава 1)

В второй части серии будет показан процесс разработки таких элементов интерфейса, как главное меню и контекстное меню. Также затронем тему рисования элементов и для этого создадим специальный класс. Очень широко будет освещен такой вопрос, как управление событиями программы, в том числе и пользовательскими.
Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)
Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)

Универсальный торговый эксперт: Торговля в группе и управление портфелем стратегий (Часть 4)

В заключительной части серии статей о торговом движке CStrategy мы рассмотрим одновременную работу нескольких торговых алгоритмов, научимся загружать стратегии из XML-файлов, а также представим простую панель для выбора экспертов, находящихся внутри одного исполняемого модуля, и управления их торговыми режимами.
Применение контейнеров для компоновки графического интерфейса: класс CGrid
Применение контейнеров для компоновки графического интерфейса: класс CGrid

Применение контейнеров для компоновки графического интерфейса: класс CGrid

В данной статье описан альтернативный метод создания графического интерфейса на основе компоновки и контейнеров при помощи менеджера компоновки — класса CGrid. Класс CGrid представляет собой вспомогательный элемент управления, который действует как контейнер для других контейнеров и элементов управления с применением табличной компоновки.
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)
Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

В предыдущей главе первой части серии о графических интерфейсах в класс формы были добавлены методы, которые позволяют управлять формой посредством нажатия на ее элементах управления. В этой статье протестируем проделанную работу в разных типах MQL-программ, таких как индикаторы и скрипты. А поскольку библиотека задумывалась как кросс-платформенная (в рамках торговых платформ MetaTrader), то проведем тесты также и в MetaTrader 4.
Универсальный торговый эксперт: Пользовательские стратегии и вспомогательные торговые классы (Часть 3)
Универсальный торговый эксперт: Пользовательские стратегии и вспомогательные торговые классы (Часть 3)

Универсальный торговый эксперт: Пользовательские стратегии и вспомогательные торговые классы (Часть 3)

В этой статье мы продолжим описание алгоритмов торгового движка CStrategy. В третьей части серии статей подробно разобраны примеры написания конкретных торговых стратегий с использованием данного подхода. Также большое внимание уделено вспомогательным алгоритмам — системе логирования эксперта и доступу к биржевым данным с помощью обычного индексатора (Close[1], Open[0] и т.п.).
Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)
Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)

Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)

Данная статья продолжает серию заметок, посвященных универсальной модели эксперта. В этой части описывается оригинальная событийная модель на основе централизованной обработки данных, а также рассматривается структура базового класса движка — CStrategy.
Графические интерфейсы I: Функции для кнопок формы и удаление элементов интерфейса (Глава 4)
Графические интерфейсы I: Функции для кнопок формы и удаление элементов интерфейса (Глава 4)

Графические интерфейсы I: Функции для кнопок формы и удаление элементов интерфейса (Глава 4)

В этой главе продолжим развивать класс CWindow, дополняя его методами, которые позволят управлять формой посредством нажатия на ее элементах. Сделаем так, чтобы программу можно было закрыть через кнопку на форме, а также реализуем возможность сворачивания и разворачивания формы при необходимости.
Универсальный торговый эксперт: Торговые режимы стратегий (Часть 1)
Универсальный торговый эксперт: Торговые режимы стратегий (Часть 1)

Универсальный торговый эксперт: Торговые режимы стратегий (Часть 1)

Каждый экспертописатель, независимо от уровня своей подготовки, ежедневно сталкивается с одними и теми же торговыми задачами и алгоритмическими проблемами, которые так или иначе приходится решать для организации надежного торгового процесса. Данная статья описывает возможности торгового движка CStrategy, способного взять на себя решение этих задач и предоставить пользователю удобные механизмы для описания своей торговой идеи.
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

В предыдущей статье серии был начат процесс разработки класса формы для элементов управления. В этой статье продолжим развивать класс, наполняя его методами для перемещения формы в области графика, а также интегрируем этот элемент интерфейса в ядро библиотеки. Кроме этого, настроим всё таким образом, чтобы при наведении курсора на элементы формы изменялся их цвет.
Графические интерфейсы I: Форма для элементов управления (Глава 2)
Графические интерфейсы I: Форма для элементов управления (Глава 2)

Графические интерфейсы I: Форма для элементов управления (Глава 2)

В этой статье создадим первый и самый главный элемент графических интерфейсов — форму для элементов управления. К этой форме можно будет присоединять множество различных элементов управления в любом расположении и в любых комбинациях.
Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)
Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)

Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1)

С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах.
Изучаем класс CCanvas. Сглаживание и тени
Изучаем класс CCanvas. Сглаживание и тени

Изучаем класс CCanvas. Сглаживание и тени

Алгоритм сглаживания класса CCanvas — основа всех построений, в которых используется сглаживание. В статье рассказано о том, как работает этот алгоритм, приведены примеры визуализации его работы. Кроме того, рассмотрено рисование теней графических объектов и разработан подробный алгоритм отрисовки тени на канвасе. Для расчетов применена библиотека численного анализа ALGLIB.
Индикатор "Канат" Эрика Наймана
Индикатор "Канат" Эрика Наймана

Индикатор "Канат" Эрика Наймана

В статье описывается построение индикатора «Канат» по книге Эрика Л. Наймана «Малая энциклопедия трейдера». Этот индикатор показывает направление тренда на основе расчетных величин быков и медведей за указанный период. В статье изложены принципы построения и расчета индикатора с примерами кода, на основе индикатора построен эксперт и произведена оптимизация внешних параметров.
Еще раз о картах Кохонена
Еще раз о картах Кохонена

Еще раз о картах Кохонена

Cтатья описывает приемы работы с картами Кохонена. Она будет интересна как исследователям рынка с начальными навыками программирования на MQL4 и MQL5, так и опытным программистам, испытывающим сложности с подключением карт Кохонена к своим проектам.
Обработка ошибок и логирование в MQL5
Обработка ошибок и логирование в MQL5

Обработка ошибок и логирование в MQL5

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

Применение нечеткой логики в трейдинге средствами MQL4

В данной статье предлагаются примеры применения теории нечетких множеств в трейдинге средствами MQL4. Описывается разработка индикатора и советника с использованием библиотеки FuzzyNet для MQL4.
Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек
Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек

Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек

Язык MQL5 развивается, и в него постоянно добавляются новые функции для работы с данными. С некоторых пор, благодаря нововведениям, стало возможно работать с ZIP-архивами штатными средствами MQL5 без привлечения сторонних библиотек DLL. Данная статья подробно описывает, как это делается, на примере описания класса CZip — универсального инструмента для чтения, создания и модификации ZIP-архивов.
Индикатор для построения графика "шпинделей" (веретён)
Индикатор для построения графика "шпинделей" (веретён)

Индикатор для построения графика "шпинделей" (веретён)

Статья рассматривает построение графика "шпинделей" (spindles) или, как их еще называют, "веретён", его использование в торговых стратегиях и советниках. Вначале обсудим появление графика, его построение и связь с графиком японских свечей. Далее проанализируем реализацию индикатора в программном коде на языке MQL5. Протестируем основанный на индикаторе эксперт и сформулируем торговую стратегию.
Использование утверждений (assertions) при разработке программ на MQL5
Использование утверждений (assertions) при разработке программ на MQL5

Использование утверждений (assertions) при разработке программ на MQL5

В данной статье рассматриваются утверждения (assertions) в рамках языка MQL5. Даются два примера реализации механизма утверждений, а также приводятся общие рекомендации по применению утверждений.
Введение в теорию нечеткой логики
Введение в теорию нечеткой логики

Введение в теорию нечеткой логики

Нечеткая логика расширяет привычные нам границы математической логики и теории множеств. В статье раскрыты основные принципы этой теории, а также описаны две системы нечеткого логического вывода типа Мамдани и Сугено. Приведены примеры реализации нечетких моделей на основе этих двух систем средствами библиотеки FuzzyNet для MQL5.
Price Action. Автоматизация торговли по паттерну "Поглощение"
Price Action. Автоматизация торговли по паттерну "Поглощение"

Price Action. Автоматизация торговли по паттерну "Поглощение"

В статье описывается создание советника для MetaTrader 4, торгующего по паттерну "Поглощение", включая принцип нахождения паттерна, правила установки отложенных и стоп-ордеров. Приведены результаты тестирования и оптимизации.
Применение контейнеров для компоновки графического интерфейса: класс CBox
Применение контейнеров для компоновки графического интерфейса: класс CBox

Применение контейнеров для компоновки графического интерфейса: класс CBox

В данной статье описан альтернативный метод создания графического интерфейса на основе схем компоновки и контейнеров при помощи менеджера компоновки, а именно класса CBox. Класс CBox представляет собой вспомогательное средство управления, которое действует как контейнер основных элементов управления графического интерфейса. Он упрощает составление графических панелей, а иногда и сокращает время написания кода.
Управление терминалом MetaTrader с помощью DLL
Управление терминалом MetaTrader с помощью DLL

Управление терминалом MetaTrader с помощью DLL

В данной статье рассматривается управление элементами интерфейса MetaTrader с использованием вспомогательной DLL-библиотеки на примере изменения настроек рассылки Push-сообщений. К статье приложен исходный код библиотеки и пример скрипта.
Price Action. Автоматизация торговли по внутреннему бару
Price Action. Автоматизация торговли по внутреннему бару

Price Action. Автоматизация торговли по внутреннему бару

В статье описывается создание советника для MetaTrader 4, торгующего по внутреннему бару, включая принцип нахождения внутреннего бара, правила установки отложенных и стоп-ордеров. Приведены результаты тестирования и оптимизации.
Рецепты MQL5 - Пишем свой стакан цен
Рецепты MQL5 - Пишем свой стакан цен

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

Эта статья научит читателей программно работать со стаканом цен, а также подробно опишет принципы работы класса CMarketBook, который органично расширит стандартную библиотеку классов MQL5 и предоставит удобные методы для работы со стаканом.
Способ построения уровней сопротивления и поддержки средствами MQL5
Способ построения уровней сопротивления и поддержки средствами MQL5

Способ построения уровней сопротивления и поддержки средствами MQL5

В данной статье описывается способ нахождения четырех точек-экстремумов для дальнейшего построения по ним уровней сопротивления и поддержки. При нахождении экстремумов на графике валютной пары используется индикатор RSI. Для примера представлен код индикатора, отображающего уровни сопротивления и поддержки.
Рисование стрелочных индикаторов с использованием класса CCanvas
Рисование стрелочных индикаторов с использованием класса CCanvas

Рисование стрелочных индикаторов с использованием класса CCanvas

В автомобилях и самолетах, на производстве и в быту нас окружают стрелочные приборы с круглой шкалой. Они применяются везде, где требуется быстрая реакция оператора на контролируемую величину. В этой статье мы познакомимся с библиотекой стрелочных приборов для MetaTrader 5.
Как обезопасить себя и своего эксперта при торговле на Московской бирже
Как обезопасить себя и своего эксперта при торговле на Московской бирже

Как обезопасить себя и своего эксперта при торговле на Московской бирже

В статье подробно описываются методы работы, призванные обеспечить безопасность совершения торговых операций на биржевых и малоликвидных рынках, на примере срочной секции Московской биржи. Статья является логическим продолжением статьи "Основы биржевого ценообразования на примере срочной секции Московской биржи", в которой даны теоретические основы биржевой торговли, но носит более практический характер.
Торговые идеи на основе направления и скорости движения цен
Торговые идеи на основе направления и скорости движения цен

Торговые идеи на основе направления и скорости движения цен

В данной статье описывается идея, основанная на анализе направления движения цен и их скорости. Производится ее формализация на языке MQL4 в виде тестового торгового советника с целью выяснения жизнеспособности рассматриваемой стратегии. Также с помощью проверки, исследования и оптимизации определяются наилучшие параметры на предоставленном в статье примере.
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным

Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным

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