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

icon

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

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

Новая статья
последние | лучшие
preview
Разрабатываем мультивалютный советник (Часть 20): Приводим в порядок конвейер этапов автоматической оптимизации проектов (I)

Разрабатываем мультивалютный советник (Часть 20): Приводим в порядок конвейер этапов автоматической оптимизации проектов (I)

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

Нейросети в трейдинге: Повышение эффективности Transformer путем снижения резкости (Окончание)

SAMformer предлагает решение ключевых проблем Transformer в долгосрочном прогнозировании временных рядов, включая сложность обучения и слабое обобщение на малых выборках. Его неглубокая архитектура и оптимизация с учетом резкости обеспечивают избегание плохих локальных минимумов. В данной статье мы продолжим реализацию подходов с использованием MQL5 и оценим их практическую ценность.
preview
Скользящая средняя на MQL5 с нуля: Просто и доступно

Скользящая средняя на MQL5 с нуля: Просто и доступно

На простых примерах разберём принципы расчётов скользящих средних, узнаем о способах оптимизации расчётов индикаторов и, соответственно — скользящих средних.
preview
Изучение MQL5 — от новичка до профи (Часть VI):  Основы написания советников

Изучение MQL5 — от новичка до профи (Часть VI): Основы написания советников

Статья продолжает цикл для начинающих. Здесь будут рассмотрены основные принципы построения советников. Мы создадим два советника: первый будет торговать без индикаторов, отложенными ордерами, второй — на основе стандартного индикатора MA, торгующий с помощью сделок по текущей цене. Здесь я предполагаю, что вы уже не совсем новичок и владеете материалом предыдущих статей относительно свободно.
preview
Нейросети в трейдинге: Повышение эффективности Transformer путем снижения резкости (SAMformer)

Нейросети в трейдинге: Повышение эффективности Transformer путем снижения резкости (SAMformer)

Обучение моделей Transformer требует больших объемов данных и часто затруднено из-за слабой способности моделей к обобщению на малых выборках. Фреймворк SAMformer помогает решить эту проблему, избегая плохих локальных минимумов. И повышает эффективность моделей даже на ограниченных обучающих выборках.
preview
Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS): Модификация

Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS): Модификация

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

Объемный нейросетевой анализ как ключ к будущим трендам

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

Нейросети в трейдинге: Оптимизация Transformer для прогнозирования временных рядов (LSEAttention)

Фреймворк LSEAttention предлагает пути совершенствования архитектуры Transformer, и был разработан специально для долгосрочного прогнозирования многомерных временных рядов. Предложенные авторами метода подходы позволяют решить проблемы энтропийного коллапса и нестабильности обучения, характерные для ванильного Transformer.
preview
Торговый инструментарий MQL5 (Часть 1): Разработка EX5-библиотеки для управления позициями

Торговый инструментарий MQL5 (Часть 1): Разработка EX5-библиотеки для управления позициями

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

Быстрый тестер торговых стратегий на Python с использованием Numba

В статье реализован быстрый тестер стратегий для моделей машинного обучения с применением Numba. По скорости он превосходит тестер стратегий на чистом Python в 50 раз. Автор рекомендует использовать эту библиотеку для ускорения математических расчетов и особенно там, где используются циклы.
preview
Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS)

Алгоритм атомарного орбитального поиска — Atomic Orbital Search (AOS)

В статье рассматривается алгоритм AOS (Atomic Orbital Search), который использует концепции атомной орбитальной модели для моделирования поиска решений. Алгоритм основывается на вероятностных распределениях и динамике взаимодействий в атоме. В статье подробно обсуждаются математические аспекты AOS, включая обновление положений кандидатов решений и механизмы поглощения и выброса энергии. AOS открывает новые горизонты для применения квантовых принципов в вычислительных задачах, предлагая инновационный подход к оптимизации.
preview
Построение модели для ограничения диапазона сигналов по тренду (Часть 4): Настройка стиля отображения для каждой трендовой волны

Построение модели для ограничения диапазона сигналов по тренду (Часть 4): Настройка стиля отображения для каждой трендовой волны

В статье показаны возможности мощного языка MQL5 для отрисовки различных стилей индикаторов в MetaTrader 5. Мы также рассмотрим скрипты и их использование в нашей модели.
preview
Нейросети в трейдинге: Гиперболическая модель латентной диффузии (Окончание)

Нейросети в трейдинге: Гиперболическая модель латентной диффузии (Окончание)

Применение анизотропных диффузионных процессов для кодирования исходных данных в гиперболическом латентном пространстве, как это предложено в фреймворке HypDIff, способствует сохранению топологических особенностей текущей рыночной ситуации, и повышает качество её анализа. В предыдущей статье мы начали реализацию предложенных подходов средствами MQL5. И сегодня продолжим начатую работу, доведя ее до логического завершения.
preview
Пошаговая инструкция для торговли по стратегии Break of Structure (BoS)

Пошаговая инструкция для торговли по стратегии Break of Structure (BoS)

Подробное руководство по разработке автоматизированного торгового алгоритма на основе стратегии Break of Structure (BoS, прорыв структуры). Дана подробная информация по всем аспектам создания советника на MQL5 и его тестирования в MetaTrader 5 — от анализа ценовых уровней поддержки и сопротивления до управления рисками
preview
Интеграция скрытых марковских моделей в MetaTrader 5

Интеграция скрытых марковских моделей в MetaTrader 5

В этой статье мы продемонстрируем, как скрытые марковские модели, обученные с использованием Python, могут быть интегрированы в приложения MetaTrader 5. Скрытые марковские модели — это мощный статистический инструмент, используемый для моделирования временных рядов данных, где моделируемая система характеризуется ненаблюдаемыми (скрытыми) состояниями. Фундаментальная предпосылка HMM заключается в том, что вероятность нахождения в заданном состоянии в определенный момент времени зависит от состояния процесса в предыдущем временном интервале.
preview
Обучение многослойного персептрона с помощью алгоритма Левенберга-Марквардта

Обучение многослойного персептрона с помощью алгоритма Левенберга-Марквардта

В статье представлена реализация алгоритма Левенберга-Марквардта для обучения нейронных сетей прямого распространения. Проведен сравнительный анализ результативности с алгоритмами из библиотеки scikit-learn Python. Предварительно обсуждаются более простые методы обучения такие как градиентный спуск, градиентный спуск с импульсом и стохастический градиентный спуск.
preview
Нейросети в трейдинге: Гиперболическая модель латентной диффузии (HypDiff)

Нейросети в трейдинге: Гиперболическая модель латентной диффузии (HypDiff)

Статья рассматривает способы кодирования исходных данных в гиперболическом латентном пространстве через анизотропные диффузионные процессы. Это помогает точнее сохранять топологические характеристики текущей рыночной ситуации и повышает качество ее анализа.
preview
Машинное обучение и Data Science (Часть 23): Почему LightGBM и XGBoost лучше многих ИИ-моделей?

Машинное обучение и Data Science (Часть 23): Почему LightGBM и XGBoost лучше многих ИИ-моделей?

LightGBM и XGBoost — продвинутые методы построения деревьев решений с использованием градиентного бустинга, они обеспечивают превосходную производительность и гибкость, что делает их идеальными для финансового моделирования и алгоритмической торговли. В этой статье мы поговорим о том, как использовать эти инструменты для оптимизации торговых стратегий, повышения точности прогнозов и получения выгоды на финансовых рынках.
preview
Анализ влияния погоды на валюты аграрных стран с использованием Python

Анализ влияния погоды на валюты аграрных стран с использованием Python

Как связана погода и валютный рынок? В классической экономической теории долгое время не признавали влияние таких факторов на поведение рынка. Но все изменилось. Давайте попробуем найти связи в состоянии погоды и положения аграрных валют на рынке.
preview
Разработка системы репликации (Часть 55): Модуль управления

Разработка системы репликации (Часть 55): Модуль управления

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

Нейросети в трейдинге: Модели направленной диффузии (DDM)

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

Возможности SQLite в MQL5: Пример интерактивной панели с торговой статистикой в разрезе символов и магиков

В статье рассмотрим создание индикатора, отображающего на интерактивной панели статистику торговли по счёту и в разрезе символов и торговых стратегий. Код напишем, основываясь на примерах из Документации и статьи о работе с базами данных.
preview
Методы оптимизации библиотеки Alglib (Часть II)

Методы оптимизации библиотеки Alglib (Часть II)

В статье продолжим изучение оставшихся методов оптимизации из библиотеки ALGLIB, уделяя особое внимание их тестированию на сложных многомерных функциях. Это позволит нам не только оценить эффективность каждого из алгоритмов, но и выявить их сильные и слабые стороны в различных условиях.
preview
Возможности Мастера MQL5, которые вам нужно знать (Часть 22): Условные генеративно-состязательные сети (cGAN)

Возможности Мастера MQL5, которые вам нужно знать (Часть 22): Условные генеративно-состязательные сети (cGAN)

Генеративно-состязательные сети — это пара нейронных сетей, которые обучаются друг на друге для получения более точных результатов. Мы рассмотрим условный тип этих сетей в контексте их возможного применения в прогнозировании финансовых временных рядов в рамках класса сигналов советника.
preview
Нейросети в трейдинге: Адаптивное представление графов (NAFS)

Нейросети в трейдинге: Адаптивное представление графов (NAFS)

Предлагаем познакомиться с методом NAFS (Node-Adaptive Feature Smoothing) — это непараметрический подход к созданию представлений узлов, который не требует обучения параметров. NAFS извлекает характеристики каждого узла, учитывая его соседей, и затем адаптивно комбинирует эти характеристики для формирования конечного представления.
preview
Разработка системы репликации (Часть 54): Появление первого модуля

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

В этой статье мы рассмотрим, как собрать первый из действительно функциональных модулей для использования в системе репликации/моделирования, который также будет иметь общее назначение, чтобы служить и другим целям. Мы говорим о модуле индикатора мыши.
preview
Методы оптимизации библиотеки ALGLIB (Часть I)

Методы оптимизации библиотеки ALGLIB (Часть I)

В статье познакомимся с методами оптимизации библиотеки ALGLIB для MQL5. Статья включает простые и наглядные примеры применения ALGLIB для решения задач оптимизации, что сделает процесс освоения методов максимально доступным. Мы подробно рассмотрим подключение таких алгоритмов, как BLEIC, L-BFGS и NS, и на их основе решим простую тестовую задачу.
preview
Упрощаем торговлю на новостях (Часть 2): Управляем рисками

Упрощаем торговлю на новостях (Часть 2): Управляем рисками

В этой статье мы добавим наследование в предыдущий и новый код. Для обеспечения эффективности будет внедрена новая структура базы данных. Кроме того, мы создадим класс по управлению рисками для расчета объемов.
preview
Разрабатываем мультивалютный советник (Часть 19): Создаём этапы, реализованные на Python

Разрабатываем мультивалютный советник (Часть 19): Создаём этапы, реализованные на Python

Пока что мы рассматривали автоматизацию запуска последовательных процедур оптимизации советников исключительно в штатном тестере стратегий. Но что делать, если между такими запусками нам хотелось бы выполнить некоторую обработку уже полученных данных, используя другие средства? Попробуем добавить возможность создания новых этапов оптимизации, выполняемых программами, написанными на Python.
preview
Разработка системы репликации (Часть 53): Всё усложняется (V)

Разработка системы репликации (Часть 53): Всё усложняется (V)

В этой статье мы рассмотрим важную тему, которую мало кто понимает: Пользовательские события. Опасности. Преимущества и ошибки, вызванные такими элементами. Данная тема является ключевой для тех, кто хочет стать профессиональным программистом на MQL5 или любом другом языке. Поэтому мы сосредоточимся на MQL5 и MetaTrader 5.
preview
Модифицированный советник Grid-Hedge в MQL5 (Часть IV): Оптимизация простой сеточной стратегии (I)

Модифицированный советник Grid-Hedge в MQL5 (Часть IV): Оптимизация простой сеточной стратегии (I)

В четвертой части мы вернемся к советникам Simple Hedge и Simple Grid, разработанным ранее. В этот раз будем совершенствовать советник Simple Hedge. Будем использовать математический анализ и подход грубой силы (brute force) чтобы оптимизировать стратегию. Эта статья углубляется в математическую оптимизацию стратегии и закладывает основу для будущего исследования оптимизации на основе кода в последующих частях.
preview
Нейросети в трейдинге: Контрастный Трансформер паттернов (Окончание)

Нейросети в трейдинге: Контрастный Трансформер паттернов (Окончание)

В последней статье нашей серии мы рассмотрели фреймворк Atom-Motif Contrastive Transformer (AMCT), который использует контрастное обучение для выявления ключевых паттернов на всех уровнях — от базовых элементов до сложных структур. В этой статье мы продолжаем реализацию подходов AMCT средствами MQL5.
preview
Разработка системы репликации (Часть 52): Всё усложняется (IV)

Разработка системы репликации (Часть 52): Всё усложняется (IV)

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

Поиск произвольных паттернов валютных пар на Python с использованием MetaTrader 5

Есть ли повторяющиеся паттерны и закономерности на валютном рынке? Я решил создать свою собственную систему анализа паттернов, используя Python и MetaTrader 5. Этакий симбиоз математики и программирования для покорения Форекса.
preview
Разработка системы репликации (Часть 51): Все усложняется (III)

Разработка системы репликации (Часть 51): Все усложняется (III)

В данной статье мы разберемся с одним из самых сложных вопросов сферы программирования на MQL5: как правильно получить ID графика, и почему иногда объекты не строятся на графике. Представленные здесь материалы носят исключительно дидактический характер. Ни в коем случае нельзя рассматривать приложение ни с какой иной целью, кроме как для изучения и освоения представленных концепций.
preview
Высокочастотная арбитражная торговая система на Python с использованием MetaTrader 5

Высокочастотная арбитражная торговая система на Python с использованием MetaTrader 5

Создаем легальную в глазах брокеров арбитражную систему, которая создает тысячи синтетических цен на рынке Форекс, анализирует их, и успешно торгует в прибыль.
preview
Разработка системы репликации (Часть 50): Все усложняется (II)

Разработка системы репликации (Часть 50): Все усложняется (II)

Мы решим проблему ID графиков, но в то же время начнем обеспечивать пользователю возможность использования личного шаблона, ориентированного на анализ того актива, который он хочет изучить и смоделировать. Представленные здесь материалы носят исключительно дидактический характер, ни в коем случае нельзя рассматривать их как приложение с никакой иной целью, кроме изучения и освоения представленных концепций.
preview
Нейросети в трейдинге: Контрастный Трансформер паттернов

Нейросети в трейдинге: Контрастный Трансформер паттернов

Контрастный Transformer паттернов осуществляет анализ рыночных ситуаций, как на уровне отдельных свечей, так и целых паттернов. Что способствует повышению качества моделирования рыночных тенденций. А применение контрастного обучения для согласования представлений свечей и паттернов ведет к саморегуляции и повышению точности прогнозов.
preview
Разработка системы репликации (Часть 49): Все усложняется (I)

Разработка системы репликации (Часть 49): Все усложняется (I)

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

Возможности Мастера MQL5, которые вам нужно знать (Часть 21): Тестирование с данными экономического календаря

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