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

icon

Изучайте язык программирования торговых стратегий MQL5 по опубликованным здесь статьям, большая часть которых написана вами - членами сообщества. Все статьи разделены на категории для быстрого поиска ответа по тому или иному аспекту программирования: "Интеграция", "Тестер", "Торговые стратегии" и многое другое.

Следите за новыми публикациями и участвуйте в их обсуждении на форуме!

Новая статья
последние | лучшие
Автоматическое построение линий поддержки и сопротивления
Автоматическое построение линий поддержки и сопротивления

Автоматическое построение линий поддержки и сопротивления

В статье рассматривается автоматическое построение линий поддержки и сопротивления через локальные максимумы и минимумы ценовых графиков. Для определения этих экстремумов применяется всем известный индикатор ZigZag.
Как обезопасить себя и своего эксперта при торговле на Московской бирже
Как обезопасить себя и своего эксперта при торговле на Московской бирже

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

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

Стратегия "Всё или Ничего" на Форексе

Цель данной статьи - создание максимально простой торговой стратегии, реализующей игровой принцип "Всё или Ничего". Задача создания прибыльного советника не ставится, цель - увеличение начального депозита в несколько раз с максимально возможной вероятностью. Возможно ли, ничего не зная о техническом анализе и не используя никаких индикаторов, использовать Форекс для получения большого выигрыша против вероятности всё потерять?
Пользовательские индикаторы в MQL5 для начинающих
Пользовательские индикаторы в MQL5 для начинающих

Пользовательские индикаторы в MQL5 для начинающих

Любой новый предмет для новичка с первого взгляда кажется сложным для понимания. Нам кажется простым и ясным то, что мы уже знаем. Но мы просто не помним, что всем нам когда-то приходилось изучать с нуля, даже родной язык, на котором мы разговариваем. Так и язык MQL5, таящий в себе огромные возможности для написания торговых стратегий, можно начать изучать с базовых понятий и примеров. В этой статье на примере пользовательского индикатора SMA рассматривается взаимодействие технического индикатора с клиентским терминалом MetaTrader 5.
Выцарапываем профит до последнего пипса
Выцарапываем профит до последнего пипса

Выцарапываем профит до последнего пипса

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

Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов

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

Ядерная оценка неизвестной плотности вероятности

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

Реализация автоматического анализа волн Эллиотта на MQL5

Одним из самых популярных методов анализа рынка является волновой анализ. Однако данный процесс является достаточно сложным, что приводит к использованию дополнительных инструментов. Одним из таких инструментов является автоматический разметчик. В данной статье рассматривается создание автоматического анализатора волн Эллиотта на языке MQL5.
Самооптимизация экспертов: Эволюционные и генетические алгоритмы
Самооптимизация экспертов: Эволюционные и генетические алгоритмы

Самооптимизация экспертов: Эволюционные и генетические алгоритмы

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

Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5

MetaTrader 5 позволяет во встроенном тестере стратегий моделировать автоматическую торговлю с помощью экспертов на языке MQL5. Такое моделирование называется тестированием экспертов, и может проводиться с использованием многопоточной оптимизации и одновременно по множеству инструментов. Для проведения тщательного тестирования требуется генерировать тики на основе имеющейся минутной истории. В статье дается подробное описание алгоритма, по которому генерируются тики для исторического тестирования в клиентском терминале MetaTrader 5.
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?

Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах продемонстрировать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Покажу пошаговый процесс создания DLL библиотеки в Visual Studio с примерами передачи разных типов переменных (числа, массивы, строки и т.д.) и защиту клиентского терминала от падений в пользовательских DLL.
Знакомство с методом эмпирической модовой декомпозиции
Знакомство с методом эмпирической модовой декомпозиции

Знакомство с методом эмпирической модовой декомпозиции

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

Пример индикатора, строящего линии поддержки и сопротивления

В статье приводится пример реализации индикатора для построения линий поддержки и сопротивления на основе формализованных условий. Вы сможете не только применить индикатор, но и поймете, насколько просто это реализовать. Теперь вы сможете сами сформулировать те условия для построения линий, которые посчитаете нужными, немного изменив код индикатора под свои нужды.
Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы
Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы

Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы

В статье представлено описание разработанных на MQL5 индикаторов по книге Уильяма Блау (William Blau) "Моментум, направленность и расхождение". Подход Уильяма Блау позволяет достаточно точно и с минимальным запаздыванием аппроксимировать колебания ценовой кривой, выделять тенденцию ценового движения и поворотные точки и устранять ценовой шум. При этом мы можем также получать сигналы о перекупленности/перепроданности рынка, сигналы об окончании тренда и о развороте ценового движения.
Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5

Переход на новые рельсы: пользовательские индикаторы в MQL5

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

Написание советника в MQL5 с использованием объектно-ориентированного подхода

Эта статья посвящена использованию объектно-ориентированного подхода для создания советника, рассмотренного в статье "Пошаговое руководство по написанию советников для начинающих". Большинство людей думают, что это сложно, но могу вас заверить, что после прочтения этой статьи вы сможете написать свой собственный советник на основе объектно-ориентированного похода.
Универсальный индикатор RSI для работы одновременно в двух направлениях
Универсальный индикатор RSI для работы одновременно в двух направлениях

Универсальный индикатор RSI для работы одновременно в двух направлениях

При разработке торговых алгоритмов мы часто сталкиваемся с проблемой: как определить, где начинается и заканчивается тренд/флэт? В этой статье попытаемся создать универсальный индикатор, в котором совместим сигналы для разных типов стратегий. Попробуем максимально упростить получение сигналов на торговые операции в эксперте. Приведем пример того, как объединить несколько разных индикаторов в одном.
ZUP - зигзаг универсальный с паттернами Песавенто. Поиск паттернов
ZUP - зигзаг универсальный с паттернами Песавенто. Поиск паттернов

ZUP - зигзаг универсальный с паттернами Песавенто. Поиск паттернов

Индикаторная платформа ZUP позволяет производить поиск множества известных паттернов, параметры которых уже заданы. Но можно также и подстраивать эти параметры в соответствии со своими требованиями. Есть и возможность создавать новые паттерны с помощью графического интерфейса ZUP и сохранять их параметры в файл. После этого можно быстро проверить, встречаются ли новые паттерны на графиках.
Проекты позволяют создавать прибыльных торговых роботов! Но это не точно
Проекты позволяют создавать прибыльных торговых роботов! Но это не точно

Проекты позволяют создавать прибыльных торговых роботов! Но это не точно

Большая программа начинается с маленького файла, который затем начинает расти в размерах, наполняться множеством функций и объектов. Большинство разработчиков роботов справляется с этой проблемой с помощью включаемых файлов. Но лучше сразу же начинать писать любую программу для трейдинга в проекте — это выгодно во всех отношениях.
Машинное обучение: как метод опорных векторов может быть использован в трейдинге
Машинное обучение: как метод опорных векторов может быть использован в трейдинге

Машинное обучение: как метод опорных векторов может быть использован в трейдинге

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

Оценка и выбор переменных для моделей машинного обучения

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

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

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

Индикатор для построения графика "Крестики - Нолики"

Существует множество типов графиков, которые представляют информацию о текущей ситуации на рынке. Многие из них пришли к нам из далёкого прошлого, и как раз одним из таких является график "Крестики-нолики". В статье описан пример построения графика "Крестики - Нолики" в виде индикатора в реальном времени.
Рецепты MQL5 - Пишем свой стакан цен
Рецепты MQL5 - Пишем свой стакан цен

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

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

Создание нейросетевых торговых роботов на базе MQL5 Wizard и Hlaiman EA Generator

В статье рассматривается метод автоматизированного создания нейросетевых торговых роботов на базе MQL5 Wizard и Hlaiman EA Generator. Узнайте, как легко начать работать с нейронными сетями, минуя длительные этапы изучения теоретических материалов и написания собственного кода.
MQL5: Руководство по тестированию и оптимизации советников
MQL5: Руководство по тестированию и оптимизации советников

MQL5: Руководство по тестированию и оптимизации советников

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

Торговая стратегия '80-20'

В статье описывается создание инструментов (индикатора и советника) для исследования торговой стратегии '80-20'. Правила ТС взяты из книги Линды Рашке и Лоуренса Коннорса "Биржевые секреты. Высокоэффективные стратегии краткосрочной торговли". На языке MQL5 формализованы правила этой стратегии, а созданные на ее основе индикатор и советник протестированы на современной истории рынка.
О методах поиска зон перекупленности/перепроданности. Часть I
О методах поиска зон перекупленности/перепроданности. Часть I

О методах поиска зон перекупленности/перепроданности. Часть I

Зоны перекупленности/перепроданности характеризуют определённое состояние рынка, отличающееся ослаблением динамики цен финансовых инструментов. Причём такое негативное изменение динамики наиболее выражено в заключительной стадии развития тренда любого масштаба. А так как величина прибыли при трейдинге напрямую зависит от возможности охвата максимальной амплитуды тренда, то точность выявления таких зон является важнейшей задачей при торговле любым финансовым инструментом.
Автоматное программирование как новый способ создания автоматических торговых систем
Автоматное программирование как новый способ создания автоматических торговых систем

Автоматное программирование как новый способ создания автоматических торговых систем

Статья посвящена абсолютно новому направлению в программировании советников, индикаторов, скриптов на MQL4 и MQL5. В будущем данный способ программирования постепенно станет базовым стандартом реализации советников для всех трейдеров. А разработчики языка MQL5 и платформы MetaTrader 5 в будущем смогут в стиле автоматного программирования создать новый язык MQL6 и новую платформу MetaTrader 6.
Интервью с Антоном Нелом (ATC 2012)
Интервью с Антоном Нелом (ATC 2012)

Интервью с Антоном Нелом (ATC 2012)

Сегодня мы беседуем с профессиональным разработчиком автоматических торговых систем Антоном Нелом (ROMAN5) из Южно-Африканской Республики. Его советник просто не мог остаться незамеченным. Ворвавшись в первую десятку практически с самого старта Чемпионата, он удерживал первое место более недели.
Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы

Основы программирования на MQL5: Файлы

Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
Индикатор для построения графика "Ренко"
Индикатор для построения графика "Ренко"

Индикатор для построения графика "Ренко"

В статье рассказывается о графике "Ренко" и приведен один из вариантов его реализации на языке MQL5 в виде индикатора. Индикатор имеет множество модификаций, отличающих его от классического графика. Реализовано построение не только в окне индикатора, но и на главном графике. Кроме того, реализовано представление индикатора в виде линий "ZigZag". Приведено несколько примеров стратегий работы с графиком.
Использование фильтра Калмана в прогнозе направления цены
Использование фильтра Калмана в прогнозе направления цены

Использование фильтра Калмана в прогнозе направления цены

Для успешного трейдинга почти всегда необходимы индикаторы, призванные отделить основное ценовое движение от шумовых колебаний. В этой статье рассматривается один из перспективнейших цифровых фильтров — фильтр Калмана. Описано его построение и использование на практике.
Simulink: в помощь разработчику эксперта
Simulink: в помощь разработчику эксперта

Simulink: в помощь разработчику эксперта

Я не являюсь профессиональным программистом. И поэтому принцип «от простого к сложному» имеет для меня первостепенное значение, когда я встречаюсь с таким понятием как МТС, а точнее создание МТС. Что есть для меня простое? Прежде всего это визуализация самого процесса создания системы и логики её функционирования. А также минимум рукописного кода. В данной статье я попробую создать и протестировать МТС на основе матлабовского пакета, а затем напишу эксперт для MetaTrader 5. Причём для тестирования будут использованы исторические данные из МetaTrader 5.
SQL и MQL5: Работаем с базой данных SQLite
SQL и MQL5: Работаем с базой данных SQLite

SQL и MQL5: Работаем с базой данных SQLite

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

Способы вызова индикаторов в MQL5

C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
20 торговых сигналов на MQL5
20 торговых сигналов на MQL5

20 торговых сигналов на MQL5

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

Основы программирования на MQL5 - Строки

В статье рассматривается всё, что можно делать со строками в языке MQL5. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели HedgeTerminal, часть 1
Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели HedgeTerminal, часть 1

Разнонаправленная торговля и хеджирование позиций в MetaTrader 5 с помощью панели HedgeTerminal, часть 1

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

Случайные леса предсказывают тренды

В статье описано использование пакета Rattle для автоматического поиска паттернов, способных предсказывать "лонги" и "шорты" для валютных пар рынка Форекс. Статья будет полезна как новичкам, так и опытным трейдерам.