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

icon

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

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

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

Строим анализатор спектра

Данная статья призвана познакомить читателя с возможным вариантом использования графических объектов языка MQL5. В статье рассматривается индикатор, в котором при помощи графических объектов создана панель управления простейшим анализатором спектра. Статья рассчитана на читателя, знакомого с основами языка MQL5.
Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)
Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)

Графические интерфейсы XI: Интеграция графической стандартной библиотеки (build 16)

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

Использование электронных таблиц для построения торговых стратегий

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

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

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

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

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

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

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

Заблуждения, Часть 2: Статистика - лженаука, или Хроника пикирующего бутерброда

Многочисленные попытки применения методов статистики к объективной реальности, т.е. к финансовым рядам, разбиваются о скалы нестационарности процессов, «толстохвостости» сопутствующих вероятностных распределений и недостаточного объема финансовых данных.В данной публикации я попытаюсь обратиться не к финансовым рядам как таковым, а к их субъективному отражению – в данном случае к тому, как эти ряды пытается оседлать трейдер, т.е. к торговой системе. Выявление статистических закономерностей процесса, описывающего результаты сделок, оказывается довольно увлекательным занятием. В некоторых случаях возможно даже сделать вполне достоверные выводы о модели этого процесса и применить эти выводы к торговой системе.
Комфортная пипсовка
Комфортная пипсовка

Комфортная пипсовка

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

Графические интерфейсы X: Элемент "Время", элемент "Список из чекбоксов" и сортировка таблицы (build 6)

Продолжаем развивать библиотеку для создания графических интерфейсов. На этот раз будут представлены такие элементы, как «Время» и «Список из чекбоксов». Кроме этого, в класс таблицы типа CTable добавлена возможность сортировать данные по возрастанию и убыванию.
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)
Интервью с Леонидом Величковским: "Главный миф о нейронных сетях – сверхприбыльность" (ATC 2010)

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

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

Точки разворота PIVOT POINTS, помогающие определить направление движения рынка

Точка разворота (PIVOT POINT) – линия на графике цены, которая показывает дальнейшую тенденцию движения валютной пары. Если цена находится выше этой линии, то цена имеет тенденцию к росту. Если ниже, соответственно, - к падению.
Alert и Comment для внешних индикаторов (часть вторая)
Alert и Comment для внешних индикаторов (часть вторая)

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

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

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

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

Рецепты MQL5 - обработка события TradeTransaction

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

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

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

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

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

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

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

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

В статье обсуждаются классы CSignal и CSignals, которые будут использоваться в кроссплатформенных торговых советниках. Рассмотрены различия между MQL4 и MQL5 в организации данных, необходимых для оценки полученных торговых сигналов. Итог — код, совместимый с компиляторами обеих версий.
preview
WebSocket для MetaTrader 5

WebSocket для MetaTrader 5

До появления сетевых функций в обновленном MQL5 API, приложения MetaTrader были ограничены в возможности подключаться и взаимодействовать с сервисами на основе протокола WebSocket. Сейчас ситуация изменилась. В этой статье мы рассмотрим реализацию библиотеки WebSocket на чистом MQL5. Будут представлены краткое описание протокола WebSocket и пошаговое руководство по использованию полученной библиотеки.
Обработка ошибок и логирование в MQL5
Обработка ошибок и логирование в MQL5

Обработка ошибок и логирование в MQL5

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

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

В статье описано использование методов теории вероятностей и математической статистики при анализе торговых систем.
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)
Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

Графические интерфейсы II: Элементы "Разделительная линия" и "Контекстное меню" (Глава 2)

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

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

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

Исследование методов свечного анализа (Часть IV): Обновление и дополнение приложения

В этой статье представлена следующая версия приложения Pattern Analyzer. В нем были исправлены некоторые недоработки, добавлены новые возможности, пересмотрено удобство и актуальность текущего интерфейса. При этом были рассмотрены пожелания и идеи из комментариев предыдущих статей. Что в итоге получилось — читайте далее в этой статье.
Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов
Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов

Одновременное отображение сигналов нескольких индикаторов с четырех таймфреймов

При ручной торговле, в отличие от механической, трейдеру необходимо постоянно следить за значениями нескольких индикаторов. Если индикаторов, к примеру, два или три, а для торговли выбран один таймфрейм, то это совсем несложная задача. А как быть, если индикаторов - пять или шесть, а торговая стратегия обязывает учитывать сигналы на нескольких таймфреймах?
MQL5, обработка событий: Изменяем период мувинга "на лету"
MQL5, обработка событий: Изменяем период мувинга "на лету"

MQL5, обработка событий: Изменяем период мувинга "на лету"

Предположим, что на чарт наброшен индикатор простого мувинга с периодом 13. А мы хотим изменить период до 20, но нам не хочется лезть в диалог свойств индикатора и править число 13 на 20: надоело уже пальцы стирать об мышку и клавиатуру. И уж тем более не хочется открывать код индикатора и модифицировать его. Мы хотим сделать все это однократным нажатием одной клавиши - "стрелочки вверх", расположенной рядом с цифровой клавиатурой. В этой публикации мы расскажем, как это сделать.
Применение функции TesterWithdrawal() для моделирования снятия прибыли
Применение функции TesterWithdrawal() для моделирования снятия прибыли

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

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

Библиотека для простого и быстрого создания программ для MetaTrader (Часть XIX): Класс сообщений библиотеки

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

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

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

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

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

Применение OpenCL для тестирования свечных моделей

В данной статье мы рассмотрим алгоритм реализации тестера свечных моделей на языке OpenCL в режиме "OHLC на M1". А также сравним его быстродействие cо встроенным тестером стратегий, запущенным в режиме быстрой и медленной оптимизации.
Прогнозирование временных рядов (Часть 2): метод наименьших квадратов опорных векторов (LS-SVM)
Прогнозирование временных рядов (Часть 2): метод наименьших квадратов опорных векторов (LS-SVM)

Прогнозирование временных рядов (Часть 2): метод наименьших квадратов опорных векторов (LS-SVM)

В статье рассмотрена теория и практическое применение алгоритма прогнозирования временных рядов на основе метода опорных векторов, предложена его реализация на MQL, предоставлены тестовые индикаторы и эксперты. Данная технология до сих пор не была ещё реализована на MQL. Но сначала нам потребуется познакомиться с некоторым математическим аппаратом.
preview
Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5

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

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

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

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

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

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

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

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

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

Эта работа – продолжение и развитие моей предыдущей статьи "Визуальное тестирование прибыльности индикаторов и сигналов". Добавив немного интерактивности в процесс изменения параметров и изменив цели исследования, удалось получить новый инструмент, который не просто показывает, какие будут результаты торговли по используемым сигналам, но и позволит, передвигая виртуальные ползунки-регуляторы значений параметров сигналов на основном графике, сразу же получить и раскладку по сделкам, и график изменения баланса, и конечный результат торговли.
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors
Кроссплатформенный торговый советник: Классы CExpertAdvisor и CExpertAdvisors

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

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

Спать или не спать?

Предлагается альтернатива использованию функции Sleep() при реализации пауз между действиями эксперта. Рассматриваемый подход позволяет более рационально использовать машинное время.
Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру
Оптимальный метод подсчета объема совокупной позиции по заданному магическому номеру

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

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