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

icon

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

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

Новая статья
последние | лучшие
preview
Разбираем примеры торговых стратегий в клиентском терминале

Разбираем примеры торговых стратегий в клиентском терминале

В статье рассмотрим наглядно по блок-схемам логику прилагаемых к терминалу учебных советников, расположенных в папке Experts\Free Robots, торгующих по свечным паттернам.
preview
Простое создание сложных индикаторов с помощью объектов

Простое создание сложных индикаторов с помощью объектов

В статье представлен метод создания сложных индикаторов, позволяющий избежать проблем при работе с несколькими графиками и буферами, а также при объединении данных из нескольких источников.
preview
Нейросети — это просто (Часть 38): Исследование с самоконтролем через несогласие (Self-Supervised Exploration via Disagreement)

Нейросети — это просто (Часть 38): Исследование с самоконтролем через несогласие (Self-Supervised Exploration via Disagreement)

Одной из основных проблем обучения с подкреплением является исследование окружающей среды. Ранее мы уже познакомились с методом исследования на базе внутреннего любопытства. Сегодня я предлагаю посмотреть на ещё один алгоритм — исследование через несогласие.
Моделирование реквотов на тестере и анализ устойчивости советника
Моделирование реквотов на тестере и анализ устойчивости советника

Моделирование реквотов на тестере и анализ устойчивости советника

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

Работа с матрицами, расширение функционала Стандартной библиотеки матриц и векторов

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

Нейросети — это просто (Часть 71): Прогнозирование будущих состояний с учетом поставленных целей (GCPC)

В предыдущих работах мы познакомились с методом Decision Transformer и несколькими производными от него алгоритмами. Мы экспериментировали с различными методами постановки цели. В процессе экспериментов мы работали с различными способами постановки целей, однако изучение моделью уже пройденной траектории всегда оставалось вне нашего внимания. В данной статье я хочу познакомить Вас с методом, который заполняет этот пробел.
preview
Разработка торгового советника с нуля (Часть 25): Обеспечиваем надежность системы (II)

Разработка торгового советника с нуля (Часть 25): Обеспечиваем надежность системы (II)

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

Модель движения цены и ее основные положения (Часть 2): Уравнение эволюции вероятностного поля цены и возникновение наблюдаемого случайного блуждания

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

Теория категорий в MQL5 (Часть 1)

Теория категорий представляет собой разнообразный и расширяющийся раздел математики, который пока относительно не освещен в MQL-сообществе. Эта серия статей призвана осветить некоторые из ее концепций для создания открытой библиотеки и дальнейшему использованию этого замечательного раздела в создании торговых стратегий.
preview
Нейросети — это просто (Часть 39): Go-Explore — иной подход к исследованию

Нейросети — это просто (Часть 39): Go-Explore — иной подход к исследованию

Продолжаем тему исследования окружающей среды в моделях обучения с подкреплением. И данной статье мы рассмотрим ещё один алгоритм Go-Explore, который позволяет эффективно исследовать окружающую среду на стадии обучения модели.
preview
Python, ONNX и MetaTrader 5: Создаем модель RandomForest с предварительной обработкой данных RobustScaler и PolynomialFeatures

Python, ONNX и MetaTrader 5: Создаем модель RandomForest с предварительной обработкой данных RobustScaler и PolynomialFeatures

В этой статье мы создадим модель случайного леса на языке Python, обучим модель и сохраним ее в виде конвейера ONNX с препроцессингом данных. Модель мы далее используем в терминале MetaTrader 5.
preview
Брутфорс-подход к поиску закономерностей (Часть VI): Циклическая оптимизация

Брутфорс-подход к поиску закономерностей (Часть VI): Циклическая оптимизация

В этой статье я покажу первую часть доработок, которые позволили мне не только замкнуть всю цепочку автоматизации для торговли в MetaTrader 4 и 5, но и сделать что-то гораздо интереснее. Отныне данное решение позволяет мне полностью автоматизировать как процесс создания советников, так и процесс оптимизации, а также минимизировать трудозатраты на поиск эффективных торговых конфигураций.
preview
Нейросети — это просто (Часть 23): Создаём инструмент для Transfer Learning

Нейросети — это просто (Часть 23): Создаём инструмент для Transfer Learning

В данной серии статей мы уже не один раз упоминали о Transfer Learning. Но дальше упоминаний пока дело не шло. Я предлагаю заполнить этот пробел и посмотреть поближе на Transfer Learning.
preview
Разработка торговой системы на основе индикатора Gator Oscillator

Разработка торговой системы на основе индикатора Gator Oscillator

Представляю вашему вниманию новую статью из серии, в которой мы учимся строить торговые системы на основе самых популярных индикаторов. На этот раз мы поговорим об индикаторе Gator Oscillator и создадим торговую систему по простым стратегиям.
Графика в библиотеке DoEasy (Часть 90): События стандартных графических объектов. Базовый функционал
Графика в библиотеке DoEasy (Часть 90): События стандартных графических объектов. Базовый функционал

Графика в библиотеке DoEasy (Часть 90): События стандартных графических объектов. Базовый функционал

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

Введение в MQL5 (Часть 1): Руководство по алготрейдингу для начинающих

Данная статья представляет собой руководство по программированию на MQL5 для начинающих. Она открывает дверь в увлекательный мир алготрейдинга. Здесь вы познакомитесь с основами MQL5, языка программирования торговых стратегий в MetaTrader 5, который и станет проводником в мир автоматической торговли. Эта статья — от понимания основ до первых шагов в программировании — призвана раскрыть потенциал алготрейдинга для всех читателей, даже для тех, у кого совершенно нет опыта программирования. Надеюсь, вам понравится это путешествие в мир трейдинга с MQL5.
Видео: Простая автоматизированная торговля – Как создать простой торговый советник с помощью MQL5
Видео: Простая автоматизированная торговля – Как создать простой торговый советник с помощью MQL5

Видео: Простая автоматизированная торговля – Как создать простой торговый советник с помощью MQL5

Большинство слушателей моих курсов считали, что язык MQL5 сложен для понимания. Кроме того, они искали простые способы автоматизации некоторых процессов. В этой статье вы узнаете как сходу начать работать в MQL5 даже без навыков программирования и даже если в прошлом у вас уже были неудачные попытки освоить эту тему.
preview
Разработка торгового советника с нуля (Часть 21): Новая система ордеров (IV)

Разработка торгового советника с нуля (Часть 21): Новая система ордеров (IV)

Наконец-то визуальная система заработает... хотя пока не до конца. Здесь мы закончим вносить основные изменения, которых будет не мало, но они все необходимы, и вся работа будет достаточно интересной.
preview
Нейросети — это просто (Часть 69): Ограничение политики поведения на основе плотности офлайн данных (SPOT)

Нейросети — это просто (Часть 69): Ограничение политики поведения на основе плотности офлайн данных (SPOT)

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

Работа с таймсериями в библиотеке DoEasy (Часть 54): Классы-наследники абстрактного базового индикатора

В статье рассмотрим создание классов объектов-наследников базового абстрактного индикатора. Такие объекты дадут нам доступ к возможностям создавать индикаторные советники, собирать и получать статистику значений данных разных индикаторов и цен. Также создадим коллекцию объектов-индикаторов, из которой можно будет получать доступ к свойствам и данным каждого созданного в программе индикатора.
preview
Оценка ONNX-моделей при помощи регрессионных метрик

Оценка ONNX-моделей при помощи регрессионных метрик

Регрессия – это задача предсказания вещественной величины по непомеченному примеру. Для оценки точности предсказаний регрессионных моделей предназначены так называемые метрики регрессии.
preview
Нейросети — это просто (Часть 63): Предварительное обучение Трансформера решений без учителя (PDT)

Нейросети — это просто (Часть 63): Предварительное обучение Трансформера решений без учителя (PDT)

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

Библиотека численного анализа ALGLIB в MQL5

В этой статье мы кратко рассмотрим библиотеку численного анализа ALGLIB 3.19, ее приложения и новые алгоритмы, позволяющие повысить эффективность анализа финансовых данных.
preview
Разработка пользовательского индикатора True Strength Index с помощью MQL5

Разработка пользовательского индикатора True Strength Index с помощью MQL5

Представляю новую статью о том, как создать пользовательский индикатор. На этот раз мы будем работать с индексом истинной силы - True Strength Index (TSI) и создадим советник на его основе.
preview
Популяционные алгоритмы оптимизации: Оптимизация инвазивных сорняков (Invasive Weed Optimization - IWO)

Популяционные алгоритмы оптимизации: Оптимизация инвазивных сорняков (Invasive Weed Optimization - IWO)

Удивительная способность сорняков выживать в самых разнообразных условиях послужило идеей создания мощного алгоритма оптимизации. IWO — один из лучших среди рассмотренных ранее.
preview
Разработка торгового советника с нуля (Часть 30): CHART TRADE теперь как индикатор?!

Разработка торгового советника с нуля (Часть 30): CHART TRADE теперь как индикатор?!

Сегодня мы снова будем использовать Chart Trade... но теперь как индикатор, который может присутствовать или не присутствовать на графике.
preview
Тестирование и оптимизация стратегий для бинарных опционов в MetaTrader 5

Тестирование и оптимизация стратегий для бинарных опционов в MetaTrader 5

Проверяем и оптимизируем стратегии для бинарных опционов в MetaTrader 5.
preview
Нейросети — это просто (Часть 54): Использование случайного энкодера для эффективного исследования (RE3)

Нейросети — это просто (Часть 54): Использование случайного энкодера для эффективного исследования (RE3)

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

Нейросети — это просто (Часть 48): Методы снижения переоценки значений Q-функции

В предыдущей статье мы познакомились с методом DDPG, который позволяет обучать модели в непрерывном пространстве действий. Однако, как и другие методы Q-обучения, DDPG склонен к переоценки значений Q-функции. Эта проблема часто приводит к обучению агента с неоптимальной стратегией. В данной статье мы рассмотрим некоторые подходы преодоления упомянутой проблемы.
preview
Несколько индикаторов на графике (Часть 05): Превращаем MetaTrader 5 в систему RAD (I)

Несколько индикаторов на графике (Часть 05): Превращаем MetaTrader 5 в систему RAD (I)

Несмотря на то, что многие люди не умеют программировать, они достаточно креативны и имеют отличные идеи, но отсутствие знаний или понимания программирования мешает им сделать некоторые вещи. Давайте посмотрим вместе, как создать Chart Trade, но используя саму платформу MT5, как будто это IDE.
preview
Нейросети — это просто (Часть 60): Онлайн Трансформер решений (Online Decision Transformer—ODT)

Нейросети — это просто (Часть 60): Онлайн Трансформер решений (Online Decision Transformer—ODT)

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

Структуры в MQL5 и способы вывода их данных на печать

В статье рассмотрим структуры MqlDateTime, MqlTick, MqlRates, MqlBookInfo и способы вывода данных этих структур на печать. Для того, чтобы распечатать все поля структуры есть стандартная функция ArrayPrint(), которая выводит в удобном табличном формате данные, содержащиеся в массиве с типом обрабатываемой структуры.
preview
Нейросети — это просто (Часть 42): Прокрастинация модели, причины и методы решения

Нейросети — это просто (Часть 42): Прокрастинация модели, причины и методы решения

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

Анализ циклов с использованием алгоритма Гёрцеля

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

Риск-менеджер для алгоритмической торговли

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

Популяционные алгоритмы оптимизации: Дифференциальная эволюция (Differential Evolution, DE)

В этой статье поговорим об алгоритме, который демонстрирует самые противоречивые результаты из всех рассмотренных ранее, алгоритм дифференциальной эволюции (DE).
preview
DoEasy. Элементы управления (Часть 20): WinForms-объект SplitContainer

DoEasy. Элементы управления (Часть 20): WinForms-объект SplitContainer

Сегодня начнём разрабатывать элемент управления SplitContainer из набора элементов MS Visual Studio. Этот элемент состоит из двух панелей, разделённых вертикальным или горизонтальным перемещаемым разделителем.
preview
Нейросети — это просто (Часть 66): Проблематика исследования в офлайн обучении

Нейросети — это просто (Часть 66): Проблематика исследования в офлайн обучении

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

Пример ансамбля ONNX-моделей в MQL5

ONNX (Open Neural Network eXchange) — открытый стандарт представления нейронных сетей. В данной статье мы покажем возможность одновременного использования двух ONNX-моделей в одном эксперте.
preview
DoEasy. Элементы управления (Часть 3): Создание привязанных элементов управления

DoEasy. Элементы управления (Часть 3): Создание привязанных элементов управления

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