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

icon

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

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

Новая статья
последние | лучшие
preview
Двумерные копулы в MQL5 (Часть 2): Реализация архимедовых копул в MQL5

Двумерные копулы в MQL5 (Часть 2): Реализация архимедовых копул в MQL5

Во второй части серии мы рассматриваем свойства двумерных архимедовых копул и их реализацию в MQL5. Мы также изучаем применение копул для разработки простой стратегии парного трейдинга.
preview
Искусство работы с логами (Часть 10): Подавление повторяющихся логов (suppression)

Искусство работы с логами (Часть 10): Подавление повторяющихся логов (suppression)

Мы создали систему подавления логов в библиотеке Logify. В статье подробно рассматривается, как класс CLogifySuppression уменьшает «шум» в консоли, применяя настраиваемые правила для исключения повторяющихся или незначимых сообщений. Также мы освещаем структуру внешних конфигурационных файлов, механизмы валидации и всестороннее тестирование, обеспечивающие надежность и гибкость сбора логов при разработке ботов и индикаторов.
preview
Рыночные секреты Ларри Уильямса (Часть 11): Индикатор для обнаружения разворотов Smash Day

Рыночные секреты Ларри Уильямса (Часть 11): Индикатор для обнаружения разворотов Smash Day

Мы преобразуем правила разворота Smash Day Ларри Уильямса в пользовательский индикатор MQL5, который отмечает подтвержденные сетапы стрелками. Шаг за шагом в статье показаны привязка буферов, свойства графических построений, заполнение буферов на исторических данных и обновления в реальном времени внутри OnCalculate. Настраиваемое количество предыдущих баров для проверки и наглядное отображение на графике помогают быстро выявлять развороты, соответствующие условиям модели, при этом итоговые торговые решения остаются дискреционными и зависят от контекста.
preview
Рыночные секреты Ларри Уильямса (Часть 4): Автоматизация краткосрочных свинговых максимумов и минимумов в MQL5

Рыночные секреты Ларри Уильямса (Часть 4): Автоматизация краткосрочных свинговых максимумов и минимумов в MQL5

Освойте автоматизацию краткосрочных свинговых паттернов Ларри Уильямса с помощью MQL5. В этом руководстве мы разработаем полностью настраиваемого советника (Expert Advisor, EA), использующего неслучайные рыночные структуры. Мы рассмотрим, как интегрировать надежное управление рисками и гибкую логику выхода, создав прочную основу для системной разработки и бэктестирования торговых стратегий.
preview
Нативная реализация RSA-шифрования на MQL5

Нативная реализация RSA-шифрования на MQL5

В MQL5 отсутствует встроенная асимметричная криптография, из-за чего безопасный обмен данными по незащищённым каналам вроде HTTP становится затруднительным. В этой статье представлена чистая реализация RSA на MQL5 с использованием схемы дополнения PKCS#1 v1.5, позволяющая безопасно передавать сеансовые ключи для AES и небольшие блоки данных без внешних библиотек. Такой подход обеспечивает уровень безопасности, похожий на HTTPS, поверх обычного HTTP и, более того, закрывает важный пробел в защищённой коммуникации для приложений MQL5.
preview
Моделирование рынка: Первые шаги на SQL в MQL5 (IV)

Моделирование рынка: Первые шаги на SQL в MQL5 (IV)

Многие люди склонны недооценивать SQL или даже вообще не использовать его, потому что не до конца понимают, как он на самом деле работает. При выполнении запросов к базе данных SQL мы не всегда ищем универсальный ответ, а в некоторых случаях нам нужен очень конкретный и практичный ответ. Если создать базу данных с надлежащей структурой и моделью данных, в неё можно будет интегрировать практически любые типы информации.
preview
Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование

Пользовательские инструменты отладки и профилирования для разработки на MQL5 (Часть I): Расширенное логирование

Узнайте, как реализовать мощный пользовательский фреймворк для логирования в MQL5, который выходит за рамки простых операторов Print() за счет поддержки уровней серьезности, множества обработчиков вывода и автоматической ротации файлов — и все это с возможностью настройки «на лету». Интегрируйте синглтон CLogger с ConsoleLogHandler и FileLogHandler для захвата контекстных журналов с метками времени как на вкладке «Эксперты», так и в постоянных файлах. Оптимизируйте отладку и трассировку производительности в ваших советниках с помощью понятных, настраиваемых форматов журналов и централизованного управления.
preview
Создание самооптимизирующихся советников на MQL5 (Часть 14): Преобразования данных как параметры настройки регулятора с обратной связью

Создание самооптимизирующихся советников на MQL5 (Часть 14): Преобразования данных как параметры настройки регулятора с обратной связью

Предварительная обработка — это мощный, но часто упускаемый из виду параметр настройки. Он находится в тени своих более крупных собратьев: оптимизаторов и блестящих архитектур моделей. Даже незначительное улучшение показателей в данном случае может иметь непропорционально значительный и кумулятивный эффект на прибыльность и риски. Слишком часто эта в значительной степени неизученная наука сводится к простой рутине, рассматриваемой лишь как средство для достижения цели, тогда как на самом деле именно здесь сигнал может быть непосредственно усилен или с такой же легкостью уничтожен.
preview
Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию

Искусство работы с логами (Часть 9): Применяем паттерн Builder-класса и настраиваем конфигурации по умолчанию

В этой статье демонстрируется, как кардинально упростить использование библиотеки Logify с помощью паттерна "Builder" и автоматических конфигураций по умолчанию. Рассматриваются структура специализированных Builder-классов, приемы работы с ними при помощи интеллектуальной подсказки (автодополнения), а также способы обеспечения функционального логирования даже без ручной настройки. Кроме того, статья описывает доработки для сборки MetaTrader 5 5100.
preview
Создание профессиональной торговой системы на базе Heikin Ashi (Часть 2): Разработка советника

Создание профессиональной торговой системы на базе Heikin Ashi (Часть 2): Разработка советника

В этой статье объясняется, как разработать профессиональный советник (EA) на MQL5 на основе Heikin Ashi. Вы узнаете, как настроить входные параметры, перечисления, индикаторы, глобальные переменные и реализовать основную торговую логику. Вы также сможете выполнить бэктест на золоте, чтобы проверить свою работу.
preview
От начального до среднего уровня: События в объектах (I)

От начального до среднего уровня: События в объектах (I)

В этой статье мы рассмотрим три из шести событий, которые MetaTrader 5 может генерировать при возникновении каких-либо изменений с объектом на графике. Данные события очень полезны с точки зрения взаимодействия с пользователями. Это происходит так, потому что без понимания этих событий нам придётся приложить гораздо больше усилий для поддержания определённой конфигурации в графике при попытке управлять объектами для конкретных целей.
preview
Нейросети в трейдинге: от рыночного шума к устойчивому торговому плану (MomAD)

Нейросети в трейдинге: от рыночного шума к устойчивому торговому плану (MomAD)

В статье рассматривается адаптация идей MomAD к задачам нейросетевого трейдинга. Основное внимание уделено проблеме нестабильности торговых решений, когда модель слишком часто меняет сценарий и разрушает прибыльный план. Описаны теоретические основы Momentum-Aware Planning, расстояния Хаусдорфа и их перенос в латентное пространство рыночных состояний. В практической части реализован базовый OpenCL-механизм оценки расхождения между сценариями.
preview
Искусство ведения логов (Часть 7): Как отображать логи на графике

Искусство ведения логов (Часть 7): Как отображать логи на графике

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

Теория графов: Применение алгоритма поиска в ширину (BFS) в торговой системе

Поиск в ширину (BFS) использует обход по уровням для моделирования структуры рынка как ориентированного графа свингов цен, развивающихся во времени. Анализируя исторические бары или сессии слой за слоем, BFS отдает приоритет недавнему поведению цен, при этом учитывая более глубокую рыночную память.
preview
Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Знакомство с языком MQL5 (Часть 35): Освоение API и функции WebRequest в языке MQL5 (IX)

Узнайте, как обнаруживать действия пользователей в MetaTrader 5, отправлять запросы в API искусственного интеллекта, извлекать ответы и реализовывать прокрутку текста на панели.
preview
Рыночные секреты Ларри Уильямса (Часть 7): Эмпирическое исследование концепции "торгового дня недели"

Рыночные секреты Ларри Уильямса (Часть 7): Эмпирическое исследование концепции "торгового дня недели"

Эмпирическое исследование концепции торгового дня недели по Ларри Уильямсу: как измерять, тестировать и применять временную поведенческую закономерность рынка с помощью MQL5. В статье представлена структурированная методика анализа для анализа win rate (процент прибыльных сделок) и результатов по торговым дням, чтобы улучшать краткосрочные торговые системы.
preview
Создаем объемные 3D бары на MQL5

Создаем объемные 3D бары на MQL5

Переносим 3D-бары из Python в нативный MQL5: вместо plotly и моста к терминалу — сцена на CCanvas3D и DirectX 11 прямо на графике. Цена, время и тиковый объём раскладываются по трём осям, геометрия собирается вручную из вершин и треугольников, а орбитальная камера на событиях мыши даёт интерактивный осмотр без внешних зависимостей.
preview
Разработка инструментария для анализа Price Action (Часть 57): Создание модуля классификации состояния рынка на MQL5

Разработка инструментария для анализа Price Action (Часть 57): Создание модуля классификации состояния рынка на MQL5

В этой статье представлен модуль классификации состояния рынка на MQL5, который интерпретирует поведение цены по данным закрытых свечей. Анализируя сжатие и расширение волатильности, а также согласованность структуры, инструмент классифицирует состояние рынка как сжатие, переходное состояние, расширение или тренд и тем самым формирует четкий контекст для анализа Price Action.
preview
Разработка инструментария для анализа Price Action (Часть 56): Анализ принятия и отвержения на границах сессии с помощью CP

Разработка инструментария для анализа Price Action (Часть 56): Анализ принятия и отвержения на границах сессии с помощью CP

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

Оптимизация трендовой торговли: Торговля по направлению тренда и с учётом его силы

Это специализированный трендовый советник, который выполняет краткосрочный и долгосрочный анализ, принимает торговые решения и исполняет сделки на основе общего тренда и его силы. В статье подробно рассматривается советник, специально разработанный для терпеливых и дисциплинированных трейдеров, способных последовательно придерживаться выбранного торгового направления, открывать сделки и удерживать позиции только тогда, когда рынок движется уверенно и по тренду, не меняя часто своего направленного взгляда на рынок, особенно против тренда, пока не будут достигнуты цели по тейк-профиту.
preview
Переосмысливаем классические стратегии (Часть 20): Современная интерпретация стохастического осциллятора

Переосмысливаем классические стратегии (Часть 20): Современная интерпретация стохастического осциллятора

В этой статье демонстрируется, как стохастический осциллятор (классический технический индикатор) можно использовать не только как инструмент торговли на возврате к среднему. Рассматривая индикатор с другой аналитической точки зрения, мы показываем, как знакомые стратегии могут раскрыть новую практическую ценность и лечь в основу альтернативных торговых правил, включая интерпретации следования за трендом. В конечном счете, в статье рассказывается о том, как каждый технический индикатор в терминале MetaTrader 5 содержит скрытый потенциал и как вдумчивый подход методом проб и ошибок позволяет выявить содержательные интерпретации, которые не лежат на поверхности.
preview
Разработка инструментария для анализа Price Action (Часть 60): Объективное построение трендовых линий по свингам для структурного анализа

Разработка инструментария для анализа Price Action (Часть 60): Объективное построение трендовых линий по свингам для структурного анализа

Мы предлагаем подход к трендовым линиям на основе четких правил, который не опирается на опорные точки индикаторов и использует упорядоченные свинги, полученные непосредственно из ценовых данных. В статье разбираются выявление свингов, проверка их размера по ATR или фиксированным порогам, а также подтверждение восходящих и нисходящих структур, после чего эти правила реализуются на языке MQL5 без перерисовки и с избирательным выводом. Вы получаете четкий и воспроизводимый способ отслеживать структурные уровни поддержки и сопротивления, который надежно работает в разных рыночных условиях.
preview
Статистический арбитраж на основе коинтегрированных акций (заключительная часть): Анализ данных с помощью специализированной БД

Статистический арбитраж на основе коинтегрированных акций (заключительная часть): Анализ данных с помощью специализированной БД

В статье рассказывается, как объединить SQLite (OLTP) с DuckDB (OLAP) для обработки данных статистического арбитража. Колоночный движок DuckDB, оператор ASOF JOIN и встроенные функции для работы с массивами ускоряют выполнение основных задач, таких как сопоставление котировок со сделками и RWEC, при этом зафиксировано увеличение скорости от 2 до 23 раз по сравнению с SQLite при работе с большими массивами данных. Вы получаете более простые запросы и более быструю аналитику, при этом исполнение операций по-прежнему осуществляется в SQLite.
preview
Нейросети в трейдинге: От рыночного шума к устойчивому торговому плану (Окончание)

Нейросети в трейдинге: От рыночного шума к устойчивому торговому плану (Окончание)

Продолжается адаптация MomAD к алгоритмическому трейдингу: собран класс CNeuronMomAD, объединяющий UncAD с модулями согласования и уточнения сценариев (TTM, MPI). Разобраны этапы последовательного обучения модели и тестирование на EURUSD H1 за январь–апрель 2026 года. Статья фокусируется на интеграции в общий вычислительный контур и практических выводах по управлению риском при положительном результате.
preview
Создание  профессиональной торговой системы на основе Heikin Ashi (Часть 1): Разработка пользовательского индикатора

Создание профессиональной торговой системы на основе Heikin Ashi (Часть 1): Разработка пользовательского индикатора

Эта статья — первая часть серии из двух материалов, предназначенной для освоения практических навыков и лучших практик написания пользовательских индикаторов на MQL5. На практическом примере Heikin Ashi в статье рассматривается теория графиков Heikin Ashi, объясняется, как рассчитываются свечи Heikin Ashi, и показывается их применение в техническом анализе. Центральная часть материала — пошаговое руководство по разработке полнофункционального индикатора Heikin Ashi с нуля, с понятными пояснениями, которые помогают читателям разобраться, что именно писать в коде и почему. Эти базовые знания подготовят почву для второй части, где мы создадим советник, торгующий на основе логики Heikin Ashi.
preview
Низкочастотные количественные стратегии в MetaTrader 5: (Часть 1) Настройка OLAP-ориентированного хранилища данных

Низкочастотные количественные стратегии в MetaTrader 5: (Часть 1) Настройка OLAP-ориентированного хранилища данных

В статье описывается практический конвейер данных для количественного анализа на базе хранилища Parquet, секционирования по схеме Hive и DuckDB. Подробно рассматривается перенос выбранных таблиц SQLite в Parquet, структурирование рыночных данных по источнику, символу, таймфрейму и дате, а также запросы к ним с помощью оконных функций SQL. Пример Golden Cross иллюстрирует оценку будущей доходности по нескольким символам. Прилагаемые скрипты Python отвечают за загрузку данных, преобразование и выполнение.
preview
Моделирование рынка: Первые шаги на SQL в MQL5 (II)

Моделирование рынка: Первые шаги на SQL в MQL5 (II)

Хотя многие считают, что мы можем без проблем встраивать SQL-код в другой код, обычно это не так. Причина заключается в том, что SQL-код включается в исполняемый файл в виде строки. И тот факт, что SQL-код внедряется в виде строки, хотя и не вызывает проблем в небольших фрагментах, в итоге это может создать нам немало головной боли.
preview
Рыночные секреты Ларри Уильямса (Часть 6): Оценка пробоев волатильности по свингам рынка

Рыночные секреты Ларри Уильямса (Часть 6): Оценка пробоев волатильности по свингам рынка

В этой статье показано, как спроектировать и реализовать советник для торговли пробоями волатильности по Ларри Уильямсу в MQL5: измерение диапазона свинга, расчет уровней входа на пробой, расчет размера позиции на основе риска и тестирование на реальных рыночных данных.
preview
Разработка инструментария для анализа Price Action (Часть 62): Создание адаптивной системы обнаружения параллельных каналов и пробоев на языке MQL5

Разработка инструментария для анализа Price Action (Часть 62): Создание адаптивной системы обнаружения параллельных каналов и пробоев на языке MQL5

В этой статье представлена адаптивная система обнаружения параллельных каналов и пробоев на языке MQL5. В ней показано, как определяются точки свинга, как строятся и динамически пересчитываются каналы, а также как пробои подтверждаются и визуализируются с помощью сигналов, сохраняющихся на графике. Этот подход объединяет геометрию трендовых линий, фильтрацию на основе ATR и проверку ретеста, обеспечивая надежный анализ Price Action в реальном времени для профессиональной работы с графиками и принятия торговых решений.
preview
MLP (многослойный перцептрон) внутри советника MQL5: Обучение на истории без Python и без файлов весов

MLP (многослойный перцептрон) внутри советника MQL5: Обучение на истории без Python и без файлов весов

Статья показывает, как перенести MLP-фильтр советника GridSurvivor из офлайн-обучения в Python в полностью встроенное обучение в MQL5. Сеть тренируется на истории текущего символа и таймфрейма, периодически переобучается и используется как последний фильтр сигналов. Подход исключает внешние файлы и рассинхрон нормализации, делая советник самодостаточным и воспроизводимым.
preview
Архитектура системы машинного обучения в MetaTrader 5 (Часть 4): Скрытый изъян пайплайна финансового ML — одновременность меток

Архитектура системы машинного обучения в MetaTrader 5 (Часть 4): Скрытый изъян пайплайна финансового ML — одновременность меток

Узнайте, как исправить критический изъян в финансовом машинном обучении, который приводит к переобученным моделям и плохой работе в реальной торговле, — одновременность меток. При использовании метода тройного барьера (triple-barrier) обучающие метки перекрываются во времени, нарушая базовое предположение IID большинства ML-алгоритмов (алгоритмов машинного обучения). В статье показано практическое решение через взвешивание наблюдений: как измерять временное перекрытие торговых сигналов, рассчитывать взвешивание наблюдений с учётом уникальной информации и применять эти веса в scikit-learn для построения более устойчивых классификаторов. Освоение этих техник поможет сделать торговые модели более устойчивыми, надёжными и прибыльными.
preview
Рыночные секреты Ларри Уильямса (Часть 9): Торговые паттерны для получения прибыли

Рыночные секреты Ларри Уильямса (Часть 9): Торговые паттерны для получения прибыли

Эмпирическое исследование краткосрочных торговых паттернов Ларри Уильямса, показывающее, как классические сетапы можно автоматизировать в MQL5, протестировать на реальных рыночных данных и оценить с точки зрения устойчивости, прибыльности и практической ценности для торговли.
preview
Торговые инструменты MQL5 (Часть 22): Построение гистограммы и функции вероятностной массы (PMF) биномиального распределения

Торговые инструменты MQL5 (Часть 22): Построение гистограммы и функции вероятностной массы (PMF) биномиального распределения

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

Искусство работы с логами (Часть 8): Самопереводящиеся записи об ошибках

В этой восьмой части серии «Искусство работы с логами» мы исследуем реализацию многоязычных сообщений об ошибках в Logify — мощной библиотеке логирования для MQL5. Вы узнаете, как структурировать ошибки с контекстом, переводить сообщения на несколько языков и динамически форматировать логи по уровням логирования. И всё это — с чистым, расширяемым и готовым к продакшену дизайном.
preview
Нейросети в трейдинге: Когнитивная инерция в анализе финансовых рынков (модуль прогнозирования)

Нейросети в трейдинге: Когнитивная инерция в анализе финансовых рынков (модуль прогнозирования)

В статье продолжается адаптация фреймворка CogDriver к анализу финансовых рынков. После построения рыночной сцены и временно согласованной памяти переходим к созданию Forecast Head — модуля прогнозирования. Рассматривается механизм рекуррентного уточнения прогноза, сочетание Cross- и Self-Attention, проблема позиционного кодирования и диагностические признаки, помогающие оценивать устойчивость будущей торговой гипотезы.
preview
Моделирование рынка: Position View (IV)

Моделирование рынка: Position View (IV)

Здесь мы начнем объединять различные компоненты или приложения, которые ранее были полностью изолированы друг от друга. Chart Trade, индикатор мыши и советник уже были связаны между собой, однако всё ещё отсутствовал способ прямой визуализации на графике открытых на торговом сервере позиций, которые зачастую обрабатывались через систему встречных ордеров. С этого момента это становится возможным, открывая путь для различных идей и будущих реализаций. Хотя мы только начинаем внедрять эти компоненты в работу, у нас уже появится направление для дальнейшего развития.
preview
Советник для размещения сделок на основе риска с графическим интерфейсом на графике (Часть 1): Проектирование пользовательского интерфейса

Советник для размещения сделок на основе риска с графическим интерфейсом на графике (Часть 1): Проектирование пользовательского интерфейса

Узнайте, как создать аккуратную и профессиональную панель управления на графике в MQL5 для советника, размещающего сделки на основе риска. В этом пошаговом руководстве объясняется, как спроектировать функциональный графический интерфейс, позволяющий трейдерам вводить параметры сделки, рассчитывать размер лота и готовиться к автоматическому размещению ордеров.
preview
Разработка динамического мультивалютного советника (Часть 6): Адаптивная чувствительность к спреду при высокочастотном переключении символов

Разработка динамического мультивалютного советника (Часть 6): Адаптивная чувствительность к спреду при высокочастотном переключении символов

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

От начального до среднего уровня: События в объектах (IV)

В этой статье мы завершим то, что было начато в предыдущей. То есть, полностью интерактивный способ изменения размеров объектов непосредственно на графике. Хотя многие представляют, что для создания подобного потребуется гораздо более глубокое знание MQL5, вы заметите, что с помощью простых концепций и базовых знаний мы можем реализовать способ работы с объектами непосредственно на графике. Это дает очень интересный и увлекательный результат.
preview
Адаптивный индикатор Malaysian Engulfing (Часть 1): Обнаружение паттернов и валидация ретеста

Адаптивный индикатор Malaysian Engulfing (Часть 1): Обнаружение паттернов и валидация ретеста

Реализуем концепцию Malaysian Engulfing в MQL5 с помощью двух согласованных индикаторов. Один применяет строгие правила поглощения по телам свечей для точного обнаружения паттерна; другой использует машину состояний, чтобы отслеживать дальнейшее развитие — откаты и ретесты с учетом заданного окна наблюдения — прямо на графике. В результате получается повторяемый рабочий процесс на основе правил, который заменяет субъективные визуальные оценки программируемой логикой.