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

icon

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

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

Новая статья
последние | лучшие
preview
Учимся у проп-трейдинговых компаний (Часть 1) — Введение

Учимся у проп-трейдинговых компаний (Часть 1) — Введение

В этой вводной статье я расскажу о нескольких уроках, которые можно извлечь из испытаний, которые применяют проп-трейдинговые компании. Это особенно актуально для новичков и тех, кто изо всех сил пытается найти свое место в мире трейдинга. В следующей статье будет рассмотрена реализация кода.
Интервью с Дмитрием Терентьевым (ATC 2012)
Интервью с Дмитрием Терентьевым (ATC 2012)

Интервью с Дмитрием Терентьевым (ATC 2012)

Нужно ли быть программистом, чтобы писать торговых роботов? Должны ли вы провести годы в наблюдении за графиками цен, чтобы понять рынок и почувствовать его пульс? Эти вопросы мы затронули в интервью с Дмитрием Терентьевым (SAFF), чей торговый робот держится на первой странице Чемпионата с самого его начала.
Кроссплатформенный торговый советник: Мани-менеджмент
Кроссплатформенный торговый советник: Мани-менеджмент

Кроссплатформенный торговый советник: Мани-менеджмент

В этой статье обсуждается реализация мани-менеджмента в кроссплатформенном торговом советнике. Классы мани-менеджмента отвечают за расчет размера лота, которым советник войдет в следующую сделку.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXII): Торговые классы - Основной торговый класс, контроль ограничений

В статье начнём создавать основной торговый класс библиотеки и наделим его первую версию функционалом первичной проверки разрешений на проведение торговых операций. Также немного расширим возможности и содержание базового торгового класса.
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

Герой нашего интервью - Леонид Величковский (LeoV) – уже принимал участие в Чемпионатах по автоматическому трейдингу. В 2008 году его мультивалютная нейронная сеть ярко вспыхнула на небосклоне, заработав в определенный момент 110 000 $, но в итоге пала жертвой собственного агрессивного мани-менеджмента. В интервью двухлетней давности Леонид говорил о собственном опыте трейдинга и особенностях работы его советника. В преддверии же Чемпионата ATC 2010 наш герой рассказывает о самых распространенных мифах и заблуждениях, связанных с нейросетями.
Alert и Comment для внешних индикаторов (часть вторая)
Alert и Comment для внешних индикаторов (часть вторая)

Alert и Comment для внешних индикаторов (часть вторая)

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

Кроссплатформенный торговый советник: Сигналы

В статье обсуждаются классы CSignal и CSignals, которые будут использоваться в кроссплатформенных торговых советниках. Рассмотрены различия между MQL4 и MQL5 в организации данных, необходимых для оценки полученных торговых сигналов. Итог — код, совместимый с компиляторами обеих версий.
preview
Методы Уильяма Ганна (Часть II): Создаем индикатор квадрата Ганна

Методы Уильяма Ганна (Часть II): Создаем индикатор квадрата Ганна

Пробуем создать индикатор на основе квадрата 9 Ганна, построенного по квадрированию времени и цены. Напишем код и протестируем индикатор в платформе на разных временных промежутках.
Еще раз о картах Кохонена
Еще раз о картах Кохонена

Еще раз о картах Кохонена

Cтатья описывает приемы работы с картами Кохонена. Она будет интересна как исследователям рынка с начальными навыками программирования на MQL4 и MQL5, так и опытным программистам, испытывающим сложности с подключением карт Кохонена к своим проектам.
Применение функции TesterWithdrawal() для моделирования снятия прибыли
Применение функции TesterWithdrawal() для моделирования снятия прибыли

Применение функции TesterWithdrawal() для моделирования снятия прибыли

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

Оценка риска в последовательности сделок с одним активом

В статье описано использование методов теории вероятностей и математической статистики при анализе торговых систем.
Вот мы и получили долгожданные MetaTrader 5 и MQL5
Вот мы и получили долгожданные MetaTrader 5 и MQL5

Вот мы и получили долгожданные MetaTrader 5 и MQL5

Это очень краткий обзор MetaTrader 5. Я не могу описать все новшества системы за столь короткий период времени - тестирование стартовало 09-09-2009. Это символическая дата, и я уверен, что это будет счастливым числом. Всего несколько дней у меня на руках бета-версия терминала MetaTrader 5 и MQL5. Я не успел опробовать все, что в нем есть нового, но то, что есть, уже впечатляет.
Многопоточный асинхронный WebRequest на MQL5 своими руками
Многопоточный асинхронный WebRequest на MQL5 своими руками

Многопоточный асинхронный WebRequest на MQL5 своими руками

В статье рассмотрена библиотека, позволяющая повысить эффективность работы с HTTP-запросами в MQL5. Выполнение WebRequest в неблокирующем режиме реализовано в дополнительных потоках с использованием вспомогательных графиков и экспертов, обмена пользовательскими событиями и чтения разделяемых ресурсов. Исходные коды прилагаются.
Универсальный шаблон экспертов
Универсальный шаблон экспертов

Универсальный шаблон экспертов

Данная статья поможет начинающим трейдерам создавать гибко-настраиваемые эксперты.
Интерактивная площадка для моделирования случайных результатов
Интерактивная площадка для моделирования случайных результатов

Интерактивная площадка для моделирования случайных результатов

В статье представлена интерактивная площадка, реализованная в виде файла Excel, которая моделирует результаты тестирования советников на исторических данных. Она поможет читателям в исследовании и получении более четкого представления о показателях эффективности отчетов MetaTrader, которые служат для оценки работы торговых систем. Изложение материала организовано таким образом, чтобы дать пользователю возможность окунуться в атмосферу практического опыта.
preview
Биржевая сеточная торговля лимитными ордерами на полном автомате на Московской бирже MOEX

Биржевая сеточная торговля лимитными ордерами на полном автомате на Московской бирже MOEX

Разработка торгового советника на языке торговых стратегий MQL5 для MetaTrader 5 Московской биржи MOEX. Советник будет торговать по сеточной стратегии на терминале MetaTrader 5 на рынках Московской биржи MOEX, которая также включает в себя закрытие позиции по стоп-лоссу или тейк-профиту, удаление отложенных ордеров при наступлении определенных рыночных условий.
Построение излучений индикаторов в MQL5
Построение излучений индикаторов в MQL5

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

В статье рассматриваются излучения индикаторов - новое направление исследования рынка. Принцип построения излучений основан на пересечении линий различных индикаторов - с каждым тиком на графике появляются всё новые и новые точки с различным цветом и формой. Они образуют многочисленные скопления в виде туманностей, облаков, дорожек, линий, дуг и т.п. Эти характерные области точек помогают обнаружить невидимые пружины и силы, которые влияют на движение рыночных цен.
MetaTrader для работы на фондовом рынке - легко!
MetaTrader для работы на фондовом рынке - легко!

MetaTrader для работы на фондовом рынке - легко!

В данной статье поднимается проблема автоторговли на фондовом рынке. Приводится пример интеграции MetaTrader и QUIK. Описаны преимущества MT для решения данной задачи, приводится пример торгового робота, способного выполнять операции на ММВБ.
Синтаксический анализ MQL средствами MQL
Синтаксический анализ MQL средствами MQL

Синтаксический анализ MQL средствами MQL

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

Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру

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

Визуальная оптимизация прибыльности индикаторов и сигналов

Эта работа – продолжение и развитие моей предыдущей статьи "Визуальное тестирование прибыльности индикаторов и сигналов". Добавив немного интерактивности в процесс изменения параметров и изменив цели исследования, удалось получить новый инструмент, который не просто показывает, какие будут результаты торговли по используемым сигналам, но и позволит, передвигая виртуальные ползунки-регуляторы значений параметров сигналов на основном графике, сразу же получить и раскладку по сделкам, и график изменения баланса, и конечный результат торговли.
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов
Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов

Исследование методов свечного анализа (Часть II): Автопоиск новых паттернов

В предыдущей статье были рассмотрены всего 14 паттернов, но, как известно, существуют и другие свечные модели. И чтобы монотонно не рассматривать всё великое многообразие остальных паттернов, было решено пойти другим путем. Теперь вашему вниманию предлагается система поиска и тестирования новых свечных моделей на основе известных типов свечей.
preview
Машинное обучение и Data Science (Часть 07): Полиномиальная регрессия

Машинное обучение и Data Science (Часть 07): Полиномиальная регрессия

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

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

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

Роль статистических распределений в работе трейдера

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

Повышаем эффективность линейных торговых систем

В сегодняшней статье речь пойдет о том, как MQL5-программисты со средним уровнем подготовки могут повысить прибыльность своих линейных торговых систем, используя так называемую технику возведения в степень (technique of exponentiation). Данная техника названа именно так, потому что при ее использовании кривая средств приобретает геометрическую, или экспоненциальную, форму, становясь похожей на параболу. В частности, мы реализуем на языке MQL5 фиксированно-фракционный (Fixed Fractional) метод Ральфа Винса.
Графические интерфейсы X: Элемент "Стандартный график" (build 4)
Графические интерфейсы X: Элемент "Стандартный график" (build 4)

Графические интерфейсы X: Элемент "Стандартный график" (build 4)

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

Графические интерфейсы I: Тестируем библиотеку в программах разных типов и в терминале MetaTrader 4 (Глава 5)

В предыдущей главе первой части серии о графических интерфейсах в класс формы были добавлены методы, которые позволяют управлять формой посредством нажатия на ее элементах управления. В этой статье протестируем проделанную работу в разных типах MQL-программ, таких как индикаторы и скрипты. А поскольку библиотека задумывалась как кросс-платформенная (в рамках торговых платформ MetaTrader), то проведем тесты также и в MetaTrader 4.
MQL5 для начинающих: Антивандальная защита графических объектов
MQL5 для начинающих: Антивандальная защита графических объектов

MQL5 для начинающих: Антивандальная защита графических объектов

Что должна делать ваша программа, если графические панели управления были удалены или изменены кем-то еще? В этой статье мы покажем, как после удаления приложения не иметь на графике "бесхозные" объекты, и как не потерять над ними контроль в случае переименования или удаления созданных программно объектов.
preview
Изучаем возможности создания разноцветных свечных графиков

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

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

Прогнозирование временных рядов с использованием нейронных сетей LSTM: Нормализация цены и токенизация времени

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

Машинное обучение и Data Science — Нейросети (Часть 01): Разбираем нейронные сети с прямой связью

Многие любят, но немногие понимают все операции, лежащие в основе нейронных сетей. В этой статье я постараюсь простым языком объяснить все, что происходит за закрытыми дверями многоуровневого перцептрона с прямой связью Feed Forward.
Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)
Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)

Графические интерфейсы X: Выделение текста в многострочном поле ввода (build 13)

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

Пользовательские индикаторы и инфографика в CCanvas

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

Цветная оптимизация торговых стратегий

В данной статье будет проведен эксперимент по раскрашиванию результатов оптимизации. Как известно, цвет определяется тремя параметрами: уровнями красного, зеленого и синего цветов (RGB от анг. Red — красный, Green — зеленый, Blue — синий). Существуют и другие способы кодирования цвета, но и в них цвет кодируется тремя параметрами. Таким образом, три показателя тестирования можно превратить в один, визуально воспринимаемый человеком, в цвет. На сколько такой показатель будет полезен вы сможете узнать из статьи.
Улучшение распознавания свечных паттернов на примере Доджи
Улучшение распознавания свечных паттернов на примере Доджи

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

Как находить свечные паттерны чаще, чем обычно. За простотой свечных паттернов скрывается и серьезный недостаток, который как раз можно устранить, используя существенно выросшие возможности современных средств автоматизации трейдинга.
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors

Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors

В заключительной статье серии о кроссплатформенном торговом советнике речь пойдет о классах CExpertAdvisor и CExpertAdvisors, которые служат контейнерами для всех ранее описанных компонентов эксперта. Также рассмотрена реализация отслеживания новых баров и сохранения данных.
Работаем с результатами оптимизации через графический интерфейс
Работаем с результатами оптимизации через графический интерфейс

Работаем с результатами оптимизации через графический интерфейс

Продолжаем развивать тему обработки и анализа результатов оптимизации. На этот раз задача состоит в том, чтобы выбрать 100 лучших результатов оптимизации и отобразить их в таблице графического интерфейса. Сделаем так, чтобы пользователь, выделяя ряд в таблице результатов оптимизации, получал мультисимвольный график баланса и просадки на отдельных графиках.
Создание интерактивного советника для полуавтоматической торговли с заданным риском
Создание интерактивного советника для полуавтоматической торговли с заданным риском

Создание интерактивного советника для полуавтоматической торговли с заданным риском

Некоторые трейдеры используют автоматизированные системы торговли, другие совмещают автоматическую торговлю с ручной, основанной на показаниях нескольких индикаторов. Я принадлежу ко второй группе, поэтому возникла необходимость в интерактивном инструменте для динамической оценки рисков и ценовых уровней непосредственно с графика. В данной статье мы представим способ реализации интерактивного советника для полуавтоматической торговли с заданным уровнем соотношения прибыль/риск (Reward/Risk ratio).
Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска
Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска

Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска

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