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

icon

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

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

Новая статья
последние | лучшие
preview
Визуальная оценка результатов оптимизации

Визуальная оценка результатов оптимизации

Разговор в этой статье пойдёт о том, как построить графики всех проходов оптимизации и подобрать оптимальный пользовательский критерий. А также о том, как, имея минимальные знания в MQL5 и большое желание, используя статьи сайта и комментарии на форуме, написать то, что хочется.
Графика в библиотеке DoEasy (Часть 91): События стандартных графических объектов в программе. История изменения имени объекта
Графика в библиотеке DoEasy (Часть 91): События стандартных графических объектов в программе. История изменения имени объекта

Графика в библиотеке DoEasy (Часть 91): События стандартных графических объектов в программе. История изменения имени объекта

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

Работаем со временем (Часть 1): Основные принципы

Рассмотренные в статье функции и код помогут лучше понять принципы обработки времени, смещение времени брокера и перехода на летнее или зимнее время. Точная работа со временем — очень важный аспект трейдинга. Лондонская или нью-йоркская биржа уже открылась или еще нет? Когда начинается и заканчивается торговая сессия на форексе?
Улучшение распознавания свечных паттернов на примере Доджи
Улучшение распознавания свечных паттернов на примере Доджи

Улучшение распознавания свечных паттернов на примере Доджи

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

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

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

Универсальная регрессионная модель для прогнозирования рыночной цены (Часть 2): Функции природных, техногенных и общественных переходных процессов

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

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

Наша библиотека теперь умеет отслеживать появление на графике клиентского терминала стандартных графических объектов, их удаление и модификацию некоторых их параметров. Но для полного "комплекта" нам, конечно же, не хватает возможности создавать стандартные графические объекты из своих программ.
preview
Комбинаторика и теория вероятностей для трейдинга (Часть V): Анализ кривых

Комбинаторика и теория вероятностей для трейдинга (Часть V): Анализ кривых

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

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

На сайте MQL5.com встречаются трейдеры со всего мира — публикуют статьи, бесплатные коды и продукты в Маркете, выполняют работы на фриланс бирже и копируют торговые сигналы. Вы можете общаться с ними на форуме, в трейдерские чатах и каналах MetaTrader.
Графика в библиотеке DoEasy (Часть 88): Коллекция графических объектов — двумерный динамический массив для хранения динамически изменяемых свойств объектов
Графика в библиотеке DoEasy (Часть 88): Коллекция графических объектов — двумерный динамический массив для хранения динамически изменяемых свойств объектов

Графика в библиотеке DoEasy (Часть 88): Коллекция графических объектов — двумерный динамический массив для хранения динамически изменяемых свойств объектов

В статье создадим класс динамического многомерного массива с возможностью изменения количества данных в любом измерении. На основе созданного класса создадим двумерный динамический массив для хранения динамически изменяемых некоторых свойств графических объектов.
Комбинаторика и теория вероятностей для трейдинга (Часть IV): Логика Бернулли
Комбинаторика и теория вероятностей для трейдинга (Часть IV): Логика Бернулли

Комбинаторика и теория вероятностей для трейдинга (Часть IV): Логика Бернулли

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

Стать хорошим программистом (Часть 5): повышаем скорость программирования

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

Разработка торговых роботов при помощи визуального программирования

В статье демонстрируется возможности редактора botbrains.app — no-code платформы для разработки торговых роботов. Чтобы создать торгового робота не нужно программировать — просто перетащите нужные блоки на схему, задайте их параметры и установите связи между ними.
Графика в библиотеке DoEasy (Часть 87): Коллекция графических объектов - контроль модификации свойств объектов на всех открытых графиках
Графика в библиотеке DoEasy (Часть 87): Коллекция графических объектов - контроль модификации свойств объектов на всех открытых графиках

Графика в библиотеке DoEasy (Часть 87): Коллекция графических объектов - контроль модификации свойств объектов на всех открытых графиках

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

Набор инструментов для ручной разметки графиков и торговли (Часть III). Оптимизация и новые инструменты

Развитие темы рисования графических объектов на графиках с помощью сочетаниях клавиш. В библиотеку добавлены новые инструменты, в частности, прямая, которая идёт по произвольным вершинам, и набор прямоугольников, позволяющих оценить как уровень, так и время разворота. Также показана возможность оптимизации кода для улучшения быстродействия. Пример реализации переписан в виде индикатора, что даёт возможность устанавливать Shortcuts рядом с другими программами для торговли. Уровень владения кодом — чуть выше начинающего.
Графика в библиотеке DoEasy (Часть 86): Коллекция графических объектов - контролируем модификацию свойств
Графика в библиотеке DoEasy (Часть 86): Коллекция графических объектов - контролируем модификацию свойств

Графика в библиотеке DoEasy (Часть 86): Коллекция графических объектов - контролируем модификацию свойств

В статье рассмотрим отслеживание модификации значений свойств, удаление и переименование графических объектов в библиотеке.
preview
Рецепты MQL5 – Экономический календарь

Рецепты MQL5 – Экономический календарь

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

Изучаем возможности создания разноцветных свечных графиков

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

Анализ спреда по ценам Bid и Ask в MetaTrader 5

В статье рассказываю об инструменте, который позволит увидеть уровни спреда, т.е. разницу между ценами бид и аск у вашего брокера. Тиковые данные в MetaTrader 5 позволяют проанализировать, какие же исторические значения спредов по ценам бид и аск были на самом деле. При этом не нужно искать текущее значение спреда, потому что его можно получить через отображение линий цен бид и аск.
Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые
Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые

Графика в библиотеке DoEasy (Часть 85): Коллекция графических объектов - добавляем вновь создаваемые

В статье закончим создание классов-наследников класса абстрактного графического объекта и начнём реализацию хранения этих объектов в классе-коллекции. В частности — создадим функционал для добавления в класс-коллекцию вновь создаваемых стандартных графических объектов.
preview
Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5

Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5

Уже доступен пакет Python для разработки интеграции с MQL, что открывает двери для многих возможностей, таких как изучение данных и создание и использование моделей машинного обучения. Эта встроенная интеграция MQL5 в Python открывает для нас много возможностей, которые позволяют построить от простой линейной регрессии до моделей глубокого обучения. Давайте разберемся, как установить и подготовить среду разработки и использовать некоторые библиотеки машинного обучения.
Стать хорошим программистом (Часть 4): повышаем скорость программирования
Стать хорошим программистом (Часть 4): повышаем скорость программирования

Стать хорошим программистом (Часть 4): повышаем скорость программирования

Я полагаю, каждый разработчик хочет писать код быстрее. При этом возможность быстро и эффективно писать код — это не какая-то особая врожденная способность, доступная только избранным. Это навык, которым может овладеть любой программист, независимо от предыдущего опыта и объема набранных на клавиатуре текстов.
Стать хорошим программистом (Часть 3): 5 советов, чтобы лучше программировать на MQL5
Стать хорошим программистом (Часть 3): 5 советов, чтобы лучше программировать на MQL5

Стать хорошим программистом (Часть 3): 5 советов, чтобы лучше программировать на MQL5

Статья обязательна к прочтению для всех, кто хочет улучшить свою карьеру программиста. Цель этой серии статей — помочь любому читателю, даже опытному, улучшить навыки программирования. Описанные в статье идеи работают как для начинающих MQL5-программистов, так и для профессионалов.
Графика в библиотеке DoEasy (Часть 84): Классы-наследники абстрактного стандартного графического объекта
Графика в библиотеке DoEasy (Часть 84): Классы-наследники абстрактного стандартного графического объекта

Графика в библиотеке DoEasy (Часть 84): Классы-наследники абстрактного стандартного графического объекта

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

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

Статья обязательна к прочтению для всех, кто хочет улучшить свою карьеру программиста. Цель этой серии статей — помочь любому читателю, даже опытному, улучшить навыки программирования. Описанные в статье идеи работают как для начинающих MQL5-программистов, так и для профессионалов.
Графика в библиотеке DoEasy (Часть 83): Класс абстрактного стандартного графического объекта
Графика в библиотеке DoEasy (Часть 83): Класс абстрактного стандартного графического объекта

Графика в библиотеке DoEasy (Часть 83): Класс абстрактного стандартного графического объекта

В статье создадим класс абстрактного графического объекта. Этот объект будет основой для создания классов стандартных графических объектов. Свойств у графических объектов много, и сегодня, прежде чем создать класс абстрактного графического объекта, нам необходимо будет сделать объёмную подготовительную работу — прописать эти свойства в перечислениях библиотеки.
preview
Почти конструктор для создания советника

Почти конструктор для создания советника

Предлагаю свой набор торговых функций в виде готового советника. Представленный способ позволяет получать множество торговых стратегий простым добавлением индикаторов и изменением входных параметров.
Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов
Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов

Графика в библиотеке DoEasy (Часть 82): Рефакторинг объектов библиотеки и коллекция графических объектов

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

Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

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

Графика в библиотеке DoEasy (Часть 81): Интегрируем графику в объекты библиотеки

Начинаем интегрирование уже созданных графических объектов в остальные — ранее созданные объекты библиотеки, что в итоге наделит каждый объект библиотеки своим графическим объектом, позволяющим интерактивно взаимодействовать пользователю с программой.
Комбинаторика и теория вероятностей для трейдинга (Часть III): Первая математическая модель
Комбинаторика и теория вероятностей для трейдинга (Часть III): Первая математическая модель

Комбинаторика и теория вероятностей для трейдинга (Часть III): Первая математическая модель

Закономерным продолжением темы стала потребность разработки многофункциональных математических моделей для задач трейдинга. В связи с этим в данной статье я буду описывать весь процесс разработки первой математической модели для описания фракталов с нуля. Данная модель должна стать важным кирпичиком и быть многофункциональной и универсальной, в том числе для того, чтобы нарастить теоретическую базу для дальнейшего развития ветки.
Графика в библиотеке DoEasy (Часть 80): Класс объекта "Кадр геометрической анимации"
Графика в библиотеке DoEasy (Часть 80): Класс объекта "Кадр геометрической анимации"

Графика в библиотеке DoEasy (Часть 80): Класс объекта "Кадр геометрической анимации"

В статье оптимизируем код классов из предыдущих статей и создадим класс объекта кадра геометрической анимации, позволяющего рисовать правильные многоугольники с заданным количеством вершин.
Графика в библиотеке DoEasy (Часть 79): Класс объекта "Кадр анимации" и его объекты-наследники
Графика в библиотеке DoEasy (Часть 79): Класс объекта "Кадр анимации" и его объекты-наследники

Графика в библиотеке DoEasy (Часть 79): Класс объекта "Кадр анимации" и его объекты-наследники

В статье разработаем класс одного кадра анимации и его наследников. Класс будет позволять рисовать фигуры с сохранением и последующим восстановлением фона под нарисованной фигурой.
preview
Кластерный анализ (Часть I): Использование наклона индикаторных линий

Кластерный анализ (Часть I): Использование наклона индикаторных линий

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

Графика в библиотеке DoEasy (Часть 78): Принципы анимации в библиотеке. Нарезка изображений

В статье определим принципы анимации, которые будем использовать в некоторых частях библиотеки, разработаем класс для копирования части изображения и вставки его в указанное место объекта-формы с сохранением и восстановлением той части фона формы, на которую будет накладываться рисунок.
Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень
Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень

Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень

В статье создадим отдельный класс для объекта тени — наследника объекта графического элемента, а также добавим возможность заполнять фон объекта градиентной заливкой.
Комбинаторика и теория вероятностей для трейдинга (Часть II): Универсальный фрактал
Комбинаторика и теория вероятностей для трейдинга (Часть II): Универсальный фрактал

Комбинаторика и теория вероятностей для трейдинга (Часть II): Универсальный фрактал

В данной статье я продолжаю изучать фракталы и очень большое внимание будет уделено обобщению всего материала. А именно, я постараюсь свести все наработок в нечто более компактное и понятное для практического применения в трейдинге.
Графика в библиотеке DoEasy (Часть 76): Объект Форма и предопределённые цветовые темы
Графика в библиотеке DoEasy (Часть 76): Объект Форма и предопределённые цветовые темы

Графика в библиотеке DoEasy (Часть 76): Объект Форма и предопределённые цветовые темы

В статье опишем концепцию построения различных тем оформления GUI в библиотеке, создадим объект "Форма", являющийся потомком объекта класса графического элемента, подготовим данные для создания теней графических объектов библиотеки и дальнейшего развития функционала.
Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе
Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе

Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе

В статье продолжим развитие базового класса-графического элемента всех графических объектов библиотеки, создаваемых на основе класса Стандартной библиотеки CCanvas. Мы создадим методы для рисования графических примитивов и методы вывода текста на объект-графический элемент.
Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas
Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas

Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas

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