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

icon

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

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

Новая статья
последние | лучшие
Работа с таймсериями в библиотеке DoEasy (Часть 38): Коллекция таймсерий - реалтайм обновление и доступ к данным из программы
Работа с таймсериями в библиотеке DoEasy (Часть 38): Коллекция таймсерий - реалтайм обновление и доступ к данным из программы

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

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

Готовые шаблоны для подключения индикаторов в экспертах (Часть 1): Осцилляторы

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

Консультант-советник трейдера на основе расширенного анализа MACD

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

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

В статье рассмотрим отслеживание модификации значений свойств, удаление и переименование графических объектов в библиотеке.
Интервью с Борисом Одинцовым (ATC 2010)
Интервью с Борисом Одинцовым (ATC 2010)

Интервью с Борисом Одинцовым (ATC 2010)

Борис Одинцов - один из самых ярких участников Чемпионата, преодолевший на третьей торговой неделе планку в $100 000. Стремительный взлет своего эксперта Борис объясняет благоприятным стечением обстоятельств. В этом интервью он рассказывает, каким вещам стоит уделять внимание в трейдинге и о том, какой рынок неблагоприятен для его эксперта.
Александр Ануфренко: "Знал бы, где упасть - перинку бы подстелил" (ATC 2010)
Александр Ануфренко: "Знал бы, где упасть - перинку бы подстелил" (ATC 2010)

Александр Ануфренко: "Знал бы, где упасть - перинку бы подстелил" (ATC 2010)

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

Работа с таймсериями в библиотеке DoEasy (Часть 56): Объект пользовательского индикатора, получение данных от объектов-индикаторов в коллекции

В статье рассмотрим создание объекта пользовательского индикатора для использования в советниках. Немного доработаем классы библиотеки и напишем методы для получения данных от объектов-индикаторов в экспертах.
preview
Изучение MQL5 — от новичка до профи (Часть VI):  Основы написания советников

Изучение MQL5 — от новичка до профи (Часть VI): Основы написания советников

Статья продолжает цикл для начинающих. Здесь будут рассмотрены основные принципы построения советников. Мы создадим два советника: первый будет торговать без индикаторов, отложенными ордерами, второй — на основе стандартного индикатора MA, торгующий с помощью сделок по текущей цене. Здесь я предполагаю, что вы уже не совсем новичок и владеете материалом предыдущих статей относительно свободно.
preview
Управление рисками и капиталом с помощью советников

Управление рисками и капиталом с помощью советников

Эта статья о том, чего вы не найдете в отчете о тестировании, чего следует ожидать при использовании советников, как управлять своими деньгами при использовании роботов и как покрыть значительный убыток, чтобы остаться в трейдинге при автоматизированной торговле.
preview
Несколько индикаторов на графике (Часть 02): Первые эксперименты

Несколько индикаторов на графике (Часть 02): Первые эксперименты

В предыдущей статье "Несколько индикаторов на графике" я представил концепции и основы того, как мы можем использовать несколько индикаторов на графике. В данной статье я представлю и детально объясню исходный код.
preview
Мультибот в MetaTrader: запуск множества роботов с одного графика

Мультибот в MetaTrader: запуск множества роботов с одного графика

В этой статье мы рассмотрим простой шаблон для создания универсального робота в MetaTrader, который можно использовать на нескольких графиках, но прицепив его лишь к одному графику, без необходимости настройки каждого экземпляра робота на каждом отдельном графике.
Как стать участником Automated Trading Championship 2008?
Как стать участником Automated Trading Championship 2008?

Как стать участником Automated Trading Championship 2008?

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

Метод выявления ошибок в коде при помощи комментирования

В статье рассказывается о методе поиска ошибок в коде MQL 4, который основан на комментировании. Данный метод бывает очень полезен при возникновения проблем компилирования из-за ошибок в достаточно крупном коде.
preview
Популяционные алгоритмы оптимизации: Метод Нелдера-Мида, или метод симплексного поиска (Nelder–Mead method, NM)

Популяционные алгоритмы оптимизации: Метод Нелдера-Мида, или метод симплексного поиска (Nelder–Mead method, NM)

Статья представляет полное исследование метода Нелдера-Мида объясняя, как симплекс — пространство параметров функции — изменяется и перестраивается на каждой итерации для достижения оптимального решения, а также описывает способ улучшения этого метода.
preview
Изучение MQL5 — от новичка до профи (Часть II): Базовые типы данных и использование переменных

Изучение MQL5 — от новичка до профи (Часть II): Базовые типы данных и использование переменных

Продолжение серии для начинающих. Здесь мы рассмотрим, как создавать константы и переменные, записывать дату, цвета и другие полезные данные. Научимся создавать перечисления вроде дней недели или стилей линий (сплошная, пунктирная и т.д.). Переменные и выражения - это база программирования. Они обязательно есть в 99% программ, поэтому понимать их критически важно. И поэтому, если вы - новичок в программировании - прошу. Уровень знания программирования: очень базовый - в пределах моей предыдущей статьи (ссылка - в начале).
preview
Магия временных торговых интервалов с инструментом Frames Analyzer

Магия временных торговых интервалов с инструментом Frames Analyzer

Что такое Frames Analyzer? Это подключаемый модуль к любому торговому эксперту для анализа фреймов оптимизации во время оптимизации параметров в тестере стратегий, а также вне тестера посредством чтения MQD-файла или базы данных, которая создаётся сразу после оптимизации параметров. Вы сможете делиться этими результатами оптимизации с другими пользователями, у которых есть инструмент Frames Analyzer, чтобы обсудить полученные результаты оптимизации вместе.
preview
Разработка торговой системы на основе Индекса облегчения рынка MFI от Билла Вильямса

Разработка торговой системы на основе Индекса облегчения рынка MFI от Билла Вильямса

Это новая статья из серии, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов. В этой новой статье мы рассмотрим Индекс облегчения рынка (Market Facilitation Index, MFI), разработанный Биллом Вильямсом.
preview
Работа с таймсериями в библиотеке DoEasy (Часть 50): Мультипериодные мультисимвольные стандартные индикаторы со смещением

Работа с таймсериями в библиотеке DoEasy (Часть 50): Мультипериодные мультисимвольные стандартные индикаторы со смещением

В статье доработаем методы библиотеки для корректного отображения мультисимвольных мультипериодных стандартных индикаторов, линии которых выводятся на график текущего символа со смещением, задаваемым в настройках. А также наведём порядок в методах работы со стандартными индикаторами и уберём в область библиотеки лишний код в итоговой программе-индикаторе.
preview
Рецепты MQL5 — Сервисы

Рецепты MQL5 — Сервисы

В статье описаны разносторонние возможности сервисов — таких MQL5-программ, для которых не нужен график привязки. Приводятся отличия сервисов от других MQL5-программ, подчёркиваются нюансы работы разработчика с сервисами. В качестве примеров читателю предложены различные задачи, охватывающие широкий спектр функционала, который может быть реализован в виде cервиса.
Секреты клиентского терминала MetaTrader 4: Библиотека файлов в MetaEditor
Секреты клиентского терминала MetaTrader 4: Библиотека файлов в MetaEditor

Секреты клиентского терминала MetaTrader 4: Библиотека файлов в MetaEditor

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

Работа с ценами в библиотеке DoEasy (Часть 61): Коллекция тиковых серий символов

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

Прочие классы в библиотеке DoEasy (Часть 69): Класс-коллекция объектов-чартов

С этой статьи начнём разработку класса-коллекции объектов-чартов, который будет хранить в себе список-коллекцию объектов-чартов с их подокнами и индикаторами в них, и даст возможность работы с любыми выбранными чартами и их подокнами, или сразу со списком из нескольких чартов одновременно.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть IX): Совместимость с MQL4 - Подготовка данных
Библиотека для простого и быстрого создания программ для MetaTrader (Часть IX): Совместимость с MQL4 - Подготовка данных

Библиотека для простого и быстрого создания программ для MetaTrader (Часть IX): Совместимость с MQL4 - Подготовка данных

В предыдущих статьях мы начали создавать большую кроссплатформенную библиотеку, целью которой является упростить написание программ для платформ MetaTrader 5 и MetaTrader 4. В восьмой части сделали класс для отслеживания событий модификации рыночных ордеров и позиций. В данной статье начнём доработку библиотеки с целью полной её совместимости с MQL4.
preview
Работа с таймсериями в библиотеке DoEasy (Часть 49): Мультипериодные мультисимвольные многобуферные стандартные индикаторы

Работа с таймсериями в библиотеке DoEasy (Часть 49): Мультипериодные мультисимвольные многобуферные стандартные индикаторы

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

Нейросети — это просто (Часть 30): Генетические алгоритмы

Сегодня я хочу познакомить Вас с немного иным методом обучения. Можно сказать, что он заимствован из теории эволюции Дарвина. Наверное, он менее контролируем в сравнении с рассмотренными ранее методами. Но при этом позволяет обучать и недифференцируемые модели.
preview
Разработка торговой системы на основе Accelerator Oscillator

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

Новая статья из серии, в которой мы учимся создавать торговые системы по показателям самых популярных технических индикаторов. На этот раз будем изучать индикатор Accelerator Oscillator — узнаем, как его использовать и как создавать торговые системы на его основе.
preview
Адаптивные индикаторы

Адаптивные индикаторы

В этой статье мы рассмотрим несколько возможных подходов к созданию адаптивных индикаторов. Адаптивные индикаторы отличаются наличием обратной связи между значениями входных и выходного сигналов. Эта связь позволяет индикатору самостоятельно подстраиваться на оптимальную обработку значений финансового временного ряда.
preview
Работа с таймсериями в библиотеке DoEasy (Часть 58): Таймсерии данных буферов индикаторов

Работа с таймсериями в библиотеке DoEasy (Часть 58): Таймсерии данных буферов индикаторов

В завершении темы работы с таймсериями организуем хранение, поиск и сортировку данных, хранящихся в буферах индикаторов, что позволит в дальнейшем проводить анализ на основе значений индикаторов, создаваемых на основе библиотеки в своих программах. Общая концепция всех классов-коллекций библиотеки позволяет легко находить нужные данные в соответствующей коллекции, и соответственно, это же будет возможным и в создаваемом сегодня классе.
preview
Торговая техника RSI Deep Three Move

Торговая техника RSI Deep Three Move

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

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

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

Управление капиталом в трейдинге

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

Неторгующий эксперт тестирует индикаторы

Все индикаторы можно разделить на две группы: статические - изображение которых на истории остается статичным и не меняется с приходом новых котировок, и динамические - которые отображают свое состояние только для текущего момента времени и полностью переририсовываются при приходе новой цены. Работопригодность статического индикатора видна сразу на графике, а вот как проверить, что динамический индиктор работает правильно? Этому вопросу и посвящена данная статья.
preview
Бегущая строка котировок: улучшенная версия

Бегущая строка котировок: улучшенная версия

Как вам идея оживить базовую версию панели? Первое, что мы сделаем — реализуем возможность добавить на панель изображение, например, логотип актива или любой другой рисунок, чтобы пользователь смог легко и быстро определить, что это за торговый инструмент.
preview
Как обнаруживать тренды и графические паттерны с помощью MQL5

Как обнаруживать тренды и графические паттерны с помощью MQL5

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

Машинное обучение и Data Science (Часть 11): Наивный байесовский классификатор и теория вероятностей в трейдинге

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

Библиотека для простого и быстрого создания программ для MetaTrader (Часть X): Совместимость с MQL4 - События открытия позиции и активации отложенных ордеров

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

Как мы развивали сервис торговых сигналов MetaTrader и социальный трейдинг в целом

Мы активно совершенствуем сервис Сигналы, последовательно избавляемся от прежних недоработок и вносим изменения в существующие механизмы. MetaTrader Signals двухлетней давности и MetaTrader Signals на текущий момент - это словно два различных сервиса.
preview
Дискретное преобразование Хартли

Дискретное преобразование Хартли

В этой статье мы познакомимся с одним из методов спектрального анализа и обработки сигналов - дискретным преобразованием Хартли. С его помощью можно фильтровать сигналы, анализировать их спектр и многое другое. Возможности DHT ничуть не меньше, чем у дискретного преобразования Фурье. Однако, в отличие от него, DHT использует только вещественные числа, что делает его более удобным для реализации на практике, а результаты его применения более наглядными.
preview
Высокочастотная арбитражная торговая система на Python с использованием MetaTrader 5

Высокочастотная арбитражная торговая система на Python с использованием MetaTrader 5

Создаем легальную в глазах брокеров арбитражную систему, которая создает тысячи синтетических цен на рынке Форекс, анализирует их, и успешно торгует в прибыль.
Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок
Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок

Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок

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