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

icon

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

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

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

Наивный байесовский классификатор для сигналов набора индикаторов

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

Нечеткая логика в торговых стратегиях

В статье рассматривается пример использования нечеткой логики для построения простой торговой системы, с использованием библиотеки Fuzzy. Предложены варианты улучшения системы путем сочетания нечеткой логики, генетических алгоритмов и нейронных сетей.
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)
Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

Графические интерфейсы I: "Оживление" графического интерфейса (Глава 3)

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

Теория рынка

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

Индикатор для построения графика "Каги"

В статье предложен вариант индикатора графика "Каги" с различными способами построения и дополнительными функциями, рассмотрен принцип построения индикатора и особенности его реализации на MQL5. Представлены наиболее популярные примеры его практического использования в торговле - стратегии торговли по смене Yin/Yang, отталкивание от линии тренда, торговля по каналам и последовательно возрастающие "плечи"/убывающие "талии".
Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5
Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5

Новый индикатор технического анализа Moving Mini-Max и его реализация в MQL5

В статье рассматривается новый индикатор технического анализа Moving Mini-Max, разработанный З.К. Силагадзе в 2008 году. Индикатор основан на модели туннельного эффекта, предложенного Г. Гамовым в теории альфа-распада. Описывается реализация индикатора на MQL5 и возможности его использования в торговле.
Написание биржевых индикаторов с контролем объема на примере индикатора дельты
Написание биржевых индикаторов с контролем объема на примере индикатора дельты

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

В статье рассмотрен алгоритм построения биржевых индикаторов на реальных объемах с использованием функций CopyTicks() и CopyTicksRange(). Также приведены особенности построения таких индикаторов и описаны нюансы их работы в реальном времени и в тестере стратегий.
Автоматическое создание документации к программам на MQL5
Автоматическое создание документации к программам на MQL5

Автоматическое создание документации к программам на MQL5

Большинство Java программистов знакомы с автоматическим созданием документации, которая может быть создана при помощи программы JavaDocs. В мире C++ также есть несколько автоматических генераторов документации, одними из лидеров являются программы Microsoft's SandCastle и Doxygen. В статье описано, как можно использовать программу Doxygen для создания структурированных файлов справки HTML для программ, написанных на MQL5. Результаты данной работы убедили меня использовать Doxygen (или похожие программы) в будущем для создания документации к любому моему коду на MQL5, это значительно облегчает его понимание и использование.
Мини-эмулятор рынка, или Ручной тестер стратегий
Мини-эмулятор рынка, или Ручной тестер стратегий

Мини-эмулятор рынка, или Ручной тестер стратегий

Мини-эмулятор рынка — индикатор, предназначенный для частичной эмуляции работы в терминале. Предположительно, его можно использовать для тестирования "ручных" стратегий анализа и торговли на рынке.
Работа с СУБД MySQL из MQL5 (MQL4)
Работа с СУБД MySQL из MQL5 (MQL4)

Работа с СУБД MySQL из MQL5 (MQL4)

Статья посвящена разработке интерфейса между MQL и СУБД MySQL. В ней рассматриваются существующие на данный момент практические решения и предлагается более удобный вариант исполнения библиотеки для работы с СУБД. В статье дано подробное описание функций, структуры интерфейса, приведены примеры и описаны некоторые тонкости при работе с MySQL. В плане программного решения, к статье прикреплены архивы с динамическими библиотеками, документацией и примерами-скриптами для языков MQL4 и MQL5.
Универсальный тренд с графическим интерфейсом
Универсальный тренд с графическим интерфейсом

Универсальный тренд с графическим интерфейсом

В статье на основе ряда стандартных индикаторов создается универсальный трендовый индикатор. Разрабатывается графический интерфейс для выбора типа индикатора и настройки его параметров. Индикатор отображается в отдельном окне с рядами разноцветных значков.
МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы
МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы

МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы

Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel
Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel

Рецепты MQL5 - Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel

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

Простой пример построения индикатора с использованием нечеткой логики (Fuzzy Logic)

Статья посвящена вопросам практического применения концепции нечеткой логики (fuzzy logic) для анализа финансовых рынков. Предложен пример индикатора, выдающего сигналы на основе двух нечетких правил, основанных на индикаторе Envelopes. Разработанный индикатор использует несколько индикаторных буферов: 7 буферов для расчетов, 5 буферов для вывода графиков и 2 буфера цвета.
Функции для управления капиталом в экспертах
Функции для управления капиталом в экспертах

Функции для управления капиталом в экспертах

Разработка торговой стратегии, в первую очередь, заключается в поиске закономерностей для входа в рынок, выхода из рынка и правил удержания позиций. Если найденные закономерности удается формализовать в правила для автоматической торговли, то перед трейдером возникают вопросы по расчету объемов позиций, вычислению размера маржи и поддержанию безопасного уровня залоговых средств для обеспечения открытых позиций в автоматическом режиме. В этой статье мы напишем на MQL5 простые примеры для выполнения этих расчетов.
Модуль торговых сигналов по системе Билла Вильямса
Модуль торговых сигналов по системе Билла Вильямса

Модуль торговых сигналов по системе Билла Вильямса

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

Создай свои графические панели на MQL5

Удобство пользования MQL5-программой определяется не только её богатой функциональностью, но и продуманным графическим интерфейсом. Визуальное восприятие иногда гораздо важнее, чем быстрая и стабильная работа. Перед вами пошаговое руководство по самостоятельному созданию индикаторных панелей на основе классов Стандартной библиотеки.
Elder-Ray Биржевой рентген (Bulls Power и Bears Power)
Elder-Ray Биржевой рентген (Bulls Power и Bears Power)

Elder-Ray Биржевой рентген (Bulls Power и Bears Power)

Торговая система "Биржевой рентген" на основе индикаторов Bulls Power, Bears Power и Moving Average (EMA — экспоненциальное усреднение). Эту систему описал Александр Элдер в своей книге "Как играть и выигрывать на бирже" (Trading for a living).
Создание новостного торгового советника
Создание новостного торгового советника

Создание новостного торгового советника

Представляю вашему вниманию продолжение статьи "Приобщаемся к объектно-ориентированному программированию в MQL5". Напомню, в статье рассматривалось создание с нуля простого объектно-ориентированного советника, а также были даны некоторые советы по ООП. На этот раз я представлю вам технические основы для создания торгового советника, торгующего на новостях. В своей серии статей я хочу поделиться своими идеями в области ООП, а также раскрыть новую тему – работу с файловой системой.
Создание мультивалютного мультисистемного советника
Создание мультивалютного мультисистемного советника

Создание мультивалютного мультисистемного советника

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

Рецепты MQL5 - История сделок и библиотека функций для получения свойств позиции

Пришло время подвести краткий итог по материалам предыдущих статей о свойствах позиции. В этой статье мы создадим несколько дополнительных функций для получения тех свойств, которые можно получить только после обращения к истории сделок. Мы также познакомимся со структурами данных, что сделает доступ к свойствам позиции и символа еще удобнее.
Библиотека для построения  диаграмм средствами Google Chart API
Библиотека для построения  диаграмм средствами Google Chart API

Библиотека для построения диаграмм средствами Google Chart API

Построение разного рода диаграмм является неотъемлемой частью анализа рыночной ситуации и тестирования торговой системы. Зачастую, чтобы построить красивую наглядную диаграмму приходится организовать вывод данных в файл, после чего использовать его в приложениях типа MS Excel, что не слишком удобно и лишает нас возможности динамического обновления данных. Google Charts API предоставляет средства для создания диаграмм в он-лайн режиме путём отправки специального запроса на сервер. В статье делается попытка автоматизировать процесс создания запроса и получения диаграммы с сервера Google.
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным
Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным

Рецепты MQL5 - Реализуем ассоциативный массив или словарь для быстрого доступа к данным

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

Управление капиталом по Винсу. Реализация в виде модуля Мастера MQL5

Статья написана на основе книги Р.Винса "Математика управления капиталом". В ней рассматриваются эмпирические и параметрические методы нахождения оптимального размера торгового лота, на основе которых написаны торговые модули управления капиталом для мастера MLQ5.
Эконометрический подход к анализу графиков
Эконометрический подход к анализу графиков

Эконометрический подход к анализу графиков

В данной статье рассматриваются эконометрические методы исследования, в частности автокорреляционный анализ и анализ условной дисперсии. Что нам даёт описанный в статье подход? Применение нелинейной GARCH-модели позволяет, во-первых, формально представить исследуемый ряд с математической точки зрения, а во-вторых, создать прогноз на заданное количество шагов.
preview
SQLite: нативная работа с базами данных на SQL в MQL5

SQLite: нативная работа с базами данных на SQL в MQL5

Разработка торговых стратегий связана с обработкой больших объемов данных. Теперь прямо в MQL5 вы можете работать с базами данных с помощью SQL-запросов на основе SQLite. Важным преимуществом данного движка является то, что вся база данных содержится в единственном файле, который находится на компьютере пользователя.
MTF-индикаторы как инструмент технического анализа
MTF-индикаторы как инструмент технического анализа

MTF-индикаторы как инструмент технического анализа

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

Машинное обучение от Яндекс (CatBoost) без изучения Python и R

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

Методы измерения скорости движения цены

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

Курс Монетки и основанный на нем Индикатор Трендовости

Модели случайных блужданий даётся название "Курс Монетки". Приводятся свойства курса монетки с точки зрения трейдера. Предлагается создать симулятор курса на основе курса монетки с трендом. Для отличия реального курса от курса монетки создан индикатор трендовости. Рассматривается трендовость реального курса.
preview
Многослойный перцептрон и алгоритм обратного распространения ошибки

Многослойный перцептрон и алгоритм обратного распространения ошибки

В последнее время, с ростом популярности этих двух методов появилось много библиотек на Matlab, R, Python, C ++ и т.д., которые получают на вход обучающий набор и автоматически создают соответствующую нейронную сеть для вашей задачи. Мы постараемся понять, как работает базовый тип нейронной сети — перцептрон с одним нейроном и многослойный перцептрон — замечательный алгоритм, который отвечает за обучение сети (градиентный спуск и обратное распространение). Эти сетевые модели будут основой для более сложных моделей, существующих на сегодняшний день.
Руководство по написанию DLL для MQL5 на Delphi
Руководство по написанию DLL для MQL5 на Delphi

Руководство по написанию DLL для MQL5 на Delphi

Статья рассматривает механизм написания модудя DLL на популярном языке программирования ObjectPascal в среде разработки Delphi. Изложенный в статье материал ориентирован в первую очередь на начинающих программистов, решающих задачи, выходящие за рамки встроенного языка программирования MQL5, путем подключения внешних DLL модулей.
preview
Использование ресурсов в MQL5

Использование ресурсов в MQL5

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

R-квадрат как оценка качества кривой баланса стратегии

Статья описывает построение пользовательского критерия оптимизации R-квадрат. По этому критерию можно оценить качество кривой баланса стратегии и выбрать наиболее равномерно растущие и стабильные стратегии. Материал описывает принципы его построения и статистические методы, используемые для оценки свойств и качества этой метрики.
Что такое тренды и какова структура рынков — трендовая или флэтовая?
Что такое тренды и какова структура рынков — трендовая или флэтовая?

Что такое тренды и какова структура рынков — трендовая или флэтовая?

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

Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)

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

Рецепты MQL5 - Использование индикаторов для формирования условий торговли в эксперте

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

Практическое применение корреляций в торговле

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

Как подготовить котировки MetaTrader 5 для других программ

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

Научный подход к разработке торговых алгоритмов

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