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

icon

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

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

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

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

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

Способы вызова индикаторов в MQL5

C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах
MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах

MQL5 для "чайников": Получение значений технических индикаторов в своих экспертах

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

Пользовательские индикаторы в MQL5 для начинающих

Любой новый предмет для новичка с первого взгляда кажется сложным для понимания. Нам кажется простым и ясным то, что мы уже знаем. Но мы просто не помним, что всем нам когда-то приходилось изучать с нуля, даже родной язык, на котором мы разговариваем. Так и язык MQL5, таящий в себе огромные возможности для написания торговых стратегий, можно начать изучать с базовых понятий и примеров. В этой статье на примере пользовательского индикатора SMA рассматривается взаимодействие технического индикатора с клиентским терминалом MetaTrader 5.
Порядок создания и уничтожения объектов в MQL5
Порядок создания и уничтожения объектов в MQL5

Порядок создания и уничтожения объектов в MQL5

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

MQL5.community - Памятка пользователя

Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы
МetaTrader 5. Экспорт котировок в .NET приложение, используя WCF сервисы

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

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

Магия фильтрации

Большинство разработчиков механических торговых систем (МТС), так или иначе, использует фильтрацию торговых сигналов. В статье рассмотрены создание и применение полосовых и дискретных фильтров в советниках для улучшения характеристик МТС.
Индикатор от индикатора в MQL5
Индикатор от индикатора в MQL5

Индикатор от индикатора в MQL5

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

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?

Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах продемонстрировать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Покажу пошаговый процесс создания DLL библиотеки в Visual Studio с примерами передачи разных типов переменных (числа, массивы, строки и т.д.) и защиту клиентского терминала от падений в пользовательских DLL.
Инструмент "Ценовая гистограмма" (Рыночный профиль) и его реализация на MQL5
Инструмент "Ценовая гистограмма" (Рыночный профиль) и его реализация на MQL5

Инструмент "Ценовая гистограмма" (Рыночный профиль) и его реализация на MQL5

Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
Исследование статистики повторяемости направления свечей
Исследование статистики повторяемости направления свечей

Исследование статистики повторяемости направления свечей

Цель статьи - попытаться предсказать поведение рынка на основе статистики повторяемости направления свечей в определенные промежутки времени.
Передача данных между индикаторами - простое решение наболевшей проблемы
Передача данных между индикаторами - простое решение наболевшей проблемы

Передача данных между индикаторами - простое решение наболевшей проблемы

Мы хотим создать среду, которая предоставляла бы возможность обращения к показаниям индикаторов, присоединенных к тому или иному графику терминала, и обладала бы следующими свойствами: отсутствие копирования данных; минимальное вмешательство в код уже имеющихся инструментов при необходимости их «подключения»; реализация преимущественно средствами MQL (естественно, механизм DLL нам все же потребуется, однако, как мы увидим, его использование будет ограничиваться не более чем десятком строк на С++). В статье объясняется, как можно довольно просто создать в терминале MetaTrader программную среду, обеспечивающую средства для доступа к буферам индикаторов из других MQL-программ.
Как написать индикатор в MQL5
Как написать индикатор в MQL5

Как написать индикатор в MQL5

Что представляет собою индикатор? Это набор вычисленных значений, которые мы хотим отобразить на экране монитора удобным для нас образом. Наборы значений представляются в программах в виде массивов. Таким образом, создание индикатора - это написание алгоритма, который обрабатывает одни массивы (массивы цен) и записывает результаты обработки в другие массивы (значения индикаторов). На примере создания индикатора True Strength Index в статье рассказывается, как писать индикаторы на MQL5
Техника оптимизации (тестирования) и некоторые критерии выбора рабочих параметров эксперта
Техника оптимизации (тестирования) и некоторые критерии выбора рабочих параметров эксперта

Техника оптимизации (тестирования) и некоторые критерии выбора рабочих параметров эксперта

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

Проверка некоторых мифов: "Как торгуется азиатская сессия, так весь день и пойдет торговля"

Предлагается проверить некоторые распространенные утверждения - в данном случае проверяется утверждение о том, что "как торгуется азиатская сессия, так и идут торги весь день".
Использование библиотеки FANN2MQL в MetaTrader
Использование библиотеки FANN2MQL в MetaTrader

Использование библиотеки FANN2MQL в MetaTrader

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

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

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

Используем нейронные сети в MetaTrader

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

Переход на новые рельсы: пользовательские индикаторы в MQL5

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

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

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

Alert и Comment для внешних индикаторов. Мультивалютный анализ посредством внешнего сканирования

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

Библиотека матричной алгебры LibMatrix (часть первая)

Автор знакомит читателей с простой библиотекой матричной алгебры. Рассматриваются основные функции и их особенности.
Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4

Особенности работы с числами типа double в MQL4

В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
Проект Meta COT - новые горизонты анализа отчетов CFTC в терминале MetaTrader 4
Проект Meta COT - новые горизонты анализа отчетов CFTC в терминале MetaTrader 4

Проект Meta COT - новые горизонты анализа отчетов CFTC в терминале MetaTrader 4

Статья посвящена вопросам использования при торговле в MetaTrader индикатора открытого интереса (Open Interest), публикуемого CFTC. В ней подробно описан предлагаемый проект, показано как загружать необходимую информацию. С помощью торгового робота, входящего в проект, исследуется эффективность концепции изложенной в статье, делаются итоговые выводы, высказываются конструктивные предложения.
Защищайтесь, господа разработчики!
Защищайтесь, господа разработчики!

Защищайтесь, господа разработчики!

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

Торговля в ночное время – насколько надежна?

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

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

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

Советник для торговли в канале

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

СМС-извещения о состоянии Советника

Организация системы СМС-извещений о статусе торгового Советника, чтобы удаленно всегда знать о критических ситуациях
Файл Lite_EXPERT2.mqh - практические примеры реализации экспертов
Файл Lite_EXPERT2.mqh - практические примеры реализации экспертов

Файл Lite_EXPERT2.mqh - практические примеры реализации экспертов

В этой статье автор продолжает знакомство с функциями файла Lite_EXPERT2.mqh на конкретных примерах построения экспертов. Рассматривается идея использования динамически изменяющихся от сделки к сделке и плавающих отложенных ордеров, определяемых на основе значений индикатора Average True Range (ATR).
Расширенный анализ торгового счета
Расширенный анализ торгового счета

Расширенный анализ торгового счета

В статье подробно рассказывается об автоматической системе анализа любого торгового счета в терминале MetaTrader 4. Рассматриваются технические стороны создаваемого отчёта и интерпретация полученных результатов. После детального рассмотрения отчёта делаются выводы по улучшению факторов торговли. Для анализа применяется скрипт MQLab™ Graphic Report.
Alert и Comment для внешних индикаторов (часть вторая)
Alert и Comment для внешних индикаторов (часть вторая)

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

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

Тестирование и оптимизация советников

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

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

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

Файл Lite_EXPERT2.mqh - функциональный конструктор экспертописателя

Эта статья является продолжением цикла статей "Эксперты на основе популярных торговых систем и алхимия оптимизации торгового робота". В ней автор знакомит читателей с более универсальной библиотекой функций файла Lite_EXPERT2.mqh
Графическое управление внешними параметрами индикаторов
Графическое управление внешними параметрами индикаторов

Графическое управление внешними параметрами индикаторов

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

Тестирование экспертов на нестандартных таймфреймах

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

К вопросу об управлении капиталом

В статье рассмотрены некоторые аспекты, возникающие при использовании различных систем управления капиталом, применительно к ФОРЕКС. Приведены данные экспериментов с моделью процесса торговли, в которой при совершении торговых сделок используются разные методы управления капиталом (Money Management - ММ).
Принцип суперпозиции и интерференции финансовых инструментов
Принцип суперпозиции и интерференции финансовых инструментов

Принцип суперпозиции и интерференции финансовых инструментов

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