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

icon

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

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

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

Как написать индикатор на основе другого индикатора

На MQL5 можно не только создать новый пользовательский индикатор с чистого листа, но и написать индикатор на базе другого, уже существующего индикатора, встроенного в терминал или пользовательского. И тут существует два способа: первый - доработать индикатор, добавить к нему новые вычисления и графические стили, второй - использовать встроенный в терминал индикатор или существующий пользовательский индикатор при помощи функций iCustom() или IndicatorCreate().
Исследование быстродействия скользящих средних в MQL5
Исследование быстродействия скользящих средних в MQL5

Исследование быстродействия скользящих средних в MQL5

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

Написание советника в MQL5 с использованием объектно-ориентированного подхода

Эта статья посвящена использованию объектно-ориентированного подхода для создания советника, рассмотренного в статье "Пошаговое руководство по написанию советников для начинающих". Большинство людей думают, что это сложно, но могу вас заверить, что после прочтения этой статьи вы сможете написать свой собственный советник на основе объектно-ориентированного похода.
Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте
Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте

Использование ORDER_MAGIC для торговли разными экспертами на одном инструменте

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

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

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

Реализация взаимодействия между клиентскими терминалами MetaTrader 5 при помощи именованных каналов (Named Pipes)

Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
Создание эксперта, торгующего на разных инструментах
Создание эксперта, торгующего на разных инструментах

Создание эксперта, торгующего на разных инструментах

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

Принципы экономного пересчета индикаторов

Вызовы пользовательских и технических индикаторов занимают совсем немного места в программном коде механических торговых систем. Зачастую какие-нибудь несколько строчек кода и всего-то. Но подчас именно эти несколько строчек кода съедают львиную долю всех затрат времени, которое будет истрачено на тестирование эксперта. Так что ко всему, что связано с расчетом данных внутри индикаторов, следует относиться гораздо более обстоятельно, чем оно могло бы показаться на первый взгляд. Именно об этом и пойдёт речь в данной статье.
Библиотека для построения  диаграмм средствами Google Chart API
Библиотека для построения  диаграмм средствами Google Chart API

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

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

Как заказать торгового робота на MQL5 и MQL4

Сервис "Фриланс" является самой большой биржей для заказа торговых роботов и технических индикаторов. Сотни профессиональных разработчиков готовы написать торговое приложение для терминала MetaTrader 4/5.
Пошаговое руководство по написанию MQL5-советников для начинающих
Пошаговое руководство по написанию MQL5-советников для начинающих

Пошаговое руководство по написанию MQL5-советников для начинающих

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

Создание и публикация отчетов о результатах торговли, отправка SMS-сообщений

Трейдер не всегда имеет возможность и желание находиться часами перед торговым терминалом. Особенно, если торговая система в той или иной степени формализована и позволяет автоматически идентифицировать некоторые состояния рынка. В данной статье описано, как с помощью советника, индикатора или скрипта сформировать отчет о результатах торговли в виде html-файла и загрузить его по протоколу FTP на WWW-сервер, рассмотрен вопрос отправки уведомлений о торговых событиях на мобильный телефон в виде SMS-сообщений.
Обработка торговых событий в эксперте при помощи функции OnTrade()
Обработка торговых событий в эксперте при помощи функции OnTrade()

Обработка торговых событий в эксперте при помощи функции OnTrade()

В 5-ой версии языка MQL появилась масса нововведений, в том числе работа с событиями различных типов (события таймера, торговые события, пользовательские и т.д.). Возможность обработки событий позволяет создавать совершенно новый тип программ для автоматического и полуавтоматического трейдинга. В этой статье мы рассмотрим торговые события и напишем для функции OnTrade() код, который будет обрабатывать событие Trade.
Новые возможности с MetaTrader 5
Новые возможности с MetaTrader 5

Новые возможности с MetaTrader 5

MetaTrader 4 завоевал популярность у трейдеров по всему миру, и казалось бы, нельзя желать большего. Высокая производительность и стабильность, широкие возможности по написанию индикаторов, экспертов и торгово-информационных систем, возможность выбора любого из нескольких сотен брокеров - вот те основные преимущества, которые выделяют этот терминал на фоне всех остальных. Но время не стоит на месте, и вот мы уже стоим перед выбором - MetaTrader 4 или MetaTrader 5. В этой статье мы опишем основные отличия терминала 5-го поколения от нынешнего фаворита.
Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API
Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API

Создание информационных табло с использованием классов из Стандартной библиотеки и Google Chart API

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

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

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

Генетические алгоритмы - это просто!

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

Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5

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

Пример торговой системы на основе индикатора Heiken-Ashi

В данной статье мы рассмотрим возможности использование индикатора Heiki-Ashi. Создадим на его базе простейшую торговую систему(ТС) и напишим на MQL5 советник. Протестируем ТС на истории с помощью MetaTrader5 Strategy Tester.
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов

В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
Virtual Order Manager для управления ордерами в позициях терминала MetaTrader 5
Virtual Order Manager для управления ордерами в позициях терминала MetaTrader 5

Virtual Order Manager для управления ордерами в позициях терминала MetaTrader 5

Эта библиотека классов может быть добавлена в советники, написанные для MetaTrader 5, чтобы они могли работать с ордерами в рамках подхода, реализованного в MetaTrader 4, а не в рамках позиционно-ориентированного подхода платформы MetaTrader 5. Это достигается путем отслеживания "виртуальных" ордеров в терминале MetaTrader 5, поддержки стопов, невидимых для брокера, и установкой дальних защитных реальных стопов на торговом сервере.
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5

Переход с MQL4 на MQL5

Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
Конструктор трейдера: Drag Trade Library
Конструктор трейдера: Drag Trade Library

Конструктор трейдера: Drag Trade Library

В статье описывается библиотека Drag Trade, содержащая функционал для визуальной торговли. Библиотека легко может быть подключена практически к любому советнику. Ваш советник может превратиться из автомата в автоматизированную торгово-информационную систему добавлением нескольких строчек кода и практически без усилий с Вашей стороны.
MetaTrader 5: Публикация торговых прогнозов и отчетов реальной торговли по e-mail в блогах, социальных сетях и специализированных сайтах
MetaTrader 5: Публикация торговых прогнозов и отчетов реальной торговли по e-mail в блогах, социальных сетях и специализированных сайтах

MetaTrader 5: Публикация торговых прогнозов и отчетов реальной торговли по e-mail в блогах, социальных сетях и специализированных сайтах

Цель данной статьи - представить готовые решения для публикации прогнозов с использованием MetaTrader 5. Рассмотрен ряд идей: от использования специализированных сайтов для публикации торговых отчетов до создания своего собственного блога и финальной интеграции с социальными микроблогами, которые позволяют объединить множество трейдеров, использующих прогнозы. Все представленные здесь решения на 100% бесплатные и могут быть использованы всеми, кто знаком с базовыми понятиями почтовых и ftp-сервисов. Данные методы могут быть легко использованы и в коммерческих сервисах по предоставлению торговых прогнозов.
Использование WinInet.dll для обмена данными между терминалами через Интернет
Использование WinInet.dll для обмена данными между терминалами через Интернет

Использование WinInet.dll для обмена данными между терминалами через Интернет

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

ООП в MQL5 на примерах: обработка кодов ошибок и предупреждений

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

Связь ICQ и эксперта в MQL5

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

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

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

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

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

Создание активных панелей управления на MQL5 для торговли

Статья посвящена разработке активных панелей управления на MQL5. Управление элементами интерфейса осуществляется при помощи механизма обработки событий, есть возможность гибкой настройки свойств элементов управления. Реализована работа с позициями а также возможность выставления, модификации и удаления рыночных и отложенных ордеров.
MQL5 для "чайников": Как проектировать и конструировать классы объектов
MQL5 для "чайников": Как проектировать и конструировать классы объектов

MQL5 для "чайников": Как проектировать и конструировать классы объектов

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

Пример написания игры "Змейка" на MQL5

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

Создание тиковых индикаторов

В этой статье описывается создание двух индикаторов: строящего тиковый график цены и рисующего "тиковые свечи" - свечи, содержащие заданное число тиков. Каждый из рассмотренных индикаторов записывает поступающие значения цен в файл для построения индикаторов при повторном запуске терминала (эти данные также могут использоваться другими приложениями).
Стили рисования в MQL5
Стили рисования в MQL5

Стили рисования в MQL5

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

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

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

Когда нужно использовать указатели в MQL5

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

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

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

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

Идее цифровой фильтрации сигналов посвящаются достаточно объёмные темы обсуждения на форумах по построению торговых систем. В этой статье автор знакомит с процессом превращения кода более простого индикатора SMA из своей статьи "Пользовательские индикаторы в MQL5 для начинающих" в код гораздо более сложного универсального цифрового фильтра. В ней также изложены простейшие приёмы замены текста в коде и методика получения простейших навыков по исправлению ошибок программирования.
MQL5: Анализ и обработка отчетов Commodity Futures Trading Commission (CFTC) в MetaTrader 5
MQL5: Анализ и обработка отчетов Commodity Futures Trading Commission (CFTC) в MetaTrader 5

MQL5: Анализ и обработка отчетов Commodity Futures Trading Commission (CFTC) в MetaTrader 5

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

Знакомство с MQL5: написание простого советника и индикатора

В этой статье проведен краткий обзор языка MQL5, приведен пример написания советника и индикатора. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.