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

icon

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

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

Новая статья
последние | лучшие
preview
Что можно сделать с помощью скользящих средних

Что можно сделать с помощью скользящих средних

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

Улучшение распознавания свечных паттернов на примере Доджи

Как находить свечные паттерны чаще, чем обычно. За простотой свечных паттернов скрывается и серьезный недостаток, который как раз можно устранить, используя существенно выросшие возможности современных средств автоматизации трейдинга.
Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5
Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5

У начинающих и даже у продвинутых программистов есть различные вредные привычки, которые мешают им стать лучше. В этой статье мы обсудим их и посмотрим, что с ними можно сделать. Статья предназначена для всех, кто хочет стать успешным MQL5-программистом.
Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)
Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)

Графические интерфейсы X: Алгоритм переноса слов в многострочном поле ввода (build 12)

Продолжим развивать элемент "Многострочное поле ввода". Наша задача на этот раз — сделать автоматический перенос слов на следующую строку в случае переполнения по ширине поля ввода или же обратный перенос на предыдущую строку, если появляется такая возможность.
Преимущества MQL5 Сигналов
Преимущества MQL5 Сигналов

Преимущества MQL5 Сигналов

Недавно появившийся в MetaTrader 5 сервис «Торговые сигналы» позволил трейдерам копировать торговые операции любого поставщика сигналов. Пользователь выбирает понравившийся ему сигнал, подписывается на него, и все сделки теперь повторяются на его счете. Не остается внакладе и поставщик, ведь он может установить свою цену на подписку и получать ежемесячно фиксированную плату со своих клиентов.
Технический анализ: Как мы анализируем?
Технический анализ: Как мы анализируем?

Технический анализ: Как мы анализируем?

Данная статья в краткой форме отражает отношение автора к таким явлениям, как перерисовывающие индикаторы, индикаторы Multi-timeframe и представление котировок при помощи японских свечей. Техника программирования в статье не затрагивается, статья носит общий характер.
preview
Изучаем возможности создания разноцветных свечных графиков

Изучаем возможности создания разноцветных свечных графиков

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

Машинное обучение в торговых системах на сетке и мартингейле. Есть ли рыба?

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

Регрессионный анализ влияния макроэкономических данных на изменение цен валют

В статье рассмотрен вопрос применения множественного регрессионного анализа к данным макроэкономической статистики и анализ влияния этих данных на изменение курса валют на примере пары EURUSD. Применение такого анализа позволяет автоматизировать проведение фундаментального анализа, который становится доступным практически каждому, даже начинающим трейдерам.
Интервью с Хуаном Пабло Алонсо Эскобаром (ATC 2012)
Интервью с Хуаном Пабло Алонсо Эскобаром (ATC 2012)

Интервью с Хуаном Пабло Алонсо Эскобаром (ATC 2012)

"Кто испытывает трудности с программированием и не смог принять участие в нынешнем Чемпионате, я могу сказать только одно - со временем все становится намного проще", - заявил Хуан Пабло Алонсо Эскобар (JPAlonso), герой нашего сегодняшнего интервью.
Визуализация результатов оптимизации по выбранному критерию
Визуализация результатов оптимизации по выбранному критерию

Визуализация результатов оптимизации по выбранному критерию

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

Визуализируем оптимизацию торговой стратегии в MetaTrader 5

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

Оптимизировать оптимизацию: несколько простых идей

Процесс оптимизации может потребовать существенные ресурсы вашего компьютера или даже тестерных агентов MQL5 Cloud Network. В этой статье описываются некоторые несложные идеи, которые я использую на практике для облегчения работы или усовершенствования тестера стратегий платформы MetaTrader 5. Эти идеи я подчерпнул из прочитанной документации, форума и статей.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XX): Создание и хранение ресурсов программы
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XX): Создание и хранение ресурсов программы

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

В статье рассмотрим способ хранения данных в исходниках программы и создание из них звуковых и графических файлов. Часто при создании программы, нам требуется использовать звуки и изображения. В языке MQL есть несколько возможностей использования таких данных.
Универсальный торговый эксперт: Доступ к свойствам инструмента (часть 8)
Универсальный торговый эксперт: Доступ к свойствам инструмента (часть 8)

Универсальный торговый эксперт: Доступ к свойствам инструмента (часть 8)

Восьмая часть статьи посвящена описанию класса CSymbol — специального объекта, предоставляющего доступ к произвольному торговому инструменту. Включенный в торговый эксперт, этот класс предоставляет богатый набор свойств произвольного инструмента, делая программирование экспертов еще проще и многофункциональней.
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

После модернизации пакета MATLAB в 2015 году необходимо рассмотреть современный способ создания DLL-библиотек. На примере прогнозирующего индикатора в статье иллюстрируются особенности связывания MetaTrader 5 и MATLAB с использованием современных 64-х разрядных версий платформ, применяемых в настоящее время. Рассмотрение всей последовательности подключения MATLAB позволит разработчику на MQL5 быстрее создавать приложения с расширенными вычислительными возможностями, избегая «подводных камней».
Рецепты MQL5 - ОСО-ордера
Рецепты MQL5 - ОСО-ордера

Рецепты MQL5 - ОСО-ордера

В торговле трейдер использует различные механизмы и взаимосвязи, в том числе и между ордерами. В данной статье предлагается решение по обработке ОСО-ордеров. При этом широко задействованы классы Стандартной библиотеки, а также создаются новые типы данных.
Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска
Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска

Вычисление математических выражений (Часть 1). Парсеры рекурсивного спуска

В статье рассматриваются базовые принципы разбора и вычисления математических выражений, реализованы парсеры рекурсивного спуска, работающие в режимах интерпретатора и быстрых расчетов на основе предварительно построенного синтаксического дерева.
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)
LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)

LifeHack для трейдера: замешиваем ForEach на дефайнах (#define)

Промежуточная ступенька для тех, кто всё ещё пишет на MQL4, но никак не может перейти на MQL5. Мы продолжаем искать возможности для написания кода в стиле MQL4. На этот раз рассмотрим макроподстановку препроцессора - #define.
MQL5-RPC - Удаленный вызов процедур из MQL5: доступ к Web-сервисам и анализ данных Automated Trading Championship 2011
MQL5-RPC - Удаленный вызов процедур из MQL5: доступ к Web-сервисам и анализ данных Automated Trading Championship 2011

MQL5-RPC - Удаленный вызов процедур из MQL5: доступ к Web-сервисам и анализ данных Automated Trading Championship 2011

В этой статье описывается технология MQL5-RPC, которая позволяет осуществлять вызов удаленных процедур из MQL5. Мы разберем основы XML-PRC, ее реализацию на MQL5 и два примера ее практического использования. Первый пример - использование удаленного вызова процедур web-сервиса внешнего сайта, второй пример - клиентская часть XML-RPC сервера, который будет использован для обработки и анализа данных сайта Automated Trading Championship 2011. Если вас интересует вопрос программной реализации экспорта и анализа различных статистических характеристик участников ATC 2011, эта статья для вас.
preview
Советы профессионального программиста (Часть I): Хранение, отладка и компиляция кодов. Работа с проектами и логами

Советы профессионального программиста (Часть I): Хранение, отладка и компиляция кодов. Работа с проектами и логами

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

Применение теории вероятностей на примере торговли на гэпах

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

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

Статья развивает идеи, предложенные в предыдущей части и продолжает их рассмотрение. Описаны вопросы распределения доходностей, построения и изучения статистических закономерностей.
Jeremy Scott - успешный продавец MQL5 Маркета
Jeremy Scott - успешный продавец MQL5 Маркета

Jeremy Scott - успешный продавец MQL5 Маркета

Джереми Скотт (Jeremy Scott), более известный в MQL5.community под ником Johnnypasado, снискал славу на ниве нашего сервиса MQL5 Маркет. Он уже заработал несколько тысяч долларов в Маркете и это далеко не предел. Мы решили внимательнее присмотреться к будущему миллионеру и получить от него инструкцию успеха для продавцов в MQL5 Маркете.
Расширение стандартной библиотеки MQL5 и повторное использование кода
Расширение стандартной библиотеки MQL5 и повторное использование кода

Расширение стандартной библиотеки MQL5 и повторное использование кода

Стандартная библиотека MQL5 значительно упрощает жизнь разработчика. Однако она не может удовлетворить все требования абсолютно всех разработчиков в мире, поэтому если вы хотите иметь в своем распоряжении больше пользовательских элементов, вам необходимо расширить ее. В статье описывается интеграция обычного индикатора ZigZag в стандартную библиотеку. В ходе работы мы придерживались принципов разработки, применяемых в компании MetaQuotes.
Рецепты MQL5 - обработка  события BookEvent
Рецепты MQL5 - обработка  события BookEvent

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

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

Рецепты MQL5 - Уменьшаем эффект подгонки и решаем проблему недостаточного количества котировок

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

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

В статье начнём новый раздел библиотеки - торговые классы, и рассмотрим создание единого базового торгового объекта для платформ MetaTrader 5 и MetaTrader 4. Такой торговый объект будет подразумевать при отправке запроса на сервер, что в него переданы уже проверенные и корректные параметры торгового запроса.
Интервью с Сергеем Панкратьевым (ATC 2012)
Интервью с Сергеем Панкратьевым (ATC 2012)

Интервью с Сергеем Панкратьевым (ATC 2012)

Чемпионат заканчивается, и мы уже повидали на нём много необычных торговых стратегий. Но тем не менее то, что показывает торговый робот Сергея Панкратьева (s75) не может не удивлять - торгуя на всех 12 валютных парах, он практически только покупает. Это не результат какой-то ошибки - просто рынок так сложился.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVI): Работа с отложенными торговыми запросами - первая реализация (открытие позиций)
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVI): Работа с отложенными торговыми запросами - первая реализация (открытие позиций)

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

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

Как правильно выбрать продукт в Маркете для покупки. Пошаговое руководство

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

Инструментарий для быстрой ручной торговли: Базовый функционал

На текущий момент всё больше трейдеров переходят на автоматические системы торговли, которые либо требуют начальную настройку, либо часть из них уже полностью автоматизированы. Тем не менее остается немалая часть трейдеров, которые торгуют руками по старинке. В данной статье создадим набор инструментов для быстрой ручной торговли с помощью горячих клавиш и выполнения типичных торговых действий в один клик.
Графические интерфейсы X: Сортировка, реконструкция таблицы и элементы управления в ячейках (build 11)
Графические интерфейсы X: Сортировка, реконструкция таблицы и элементы управления в ячейках (build 11)

Графические интерфейсы X: Сортировка, реконструкция таблицы и элементы управления в ячейках (build 11)

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

Расширяем функционал Конструктора стратегий

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

Графические интерфейсы V: Вертикальная и горизонтальная полоса прокрутки (Глава 1)

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

Графические интерфейсы II: Элемент "Главное меню" (Глава 4)

Это завершающая глава второй части серии о графических интерфейсах. В ней мы рассмотрим создание такого элемента управления, как «Главное меню». Будет продемонстрирован процесс его разработки и настройка обработчиков классов библиотеки для правильной реакции на действия пользователя. Также мы рассмотрим, как подключить к пунктам главного меню контекстные меню. Кроме того, затронем тему блокировки неактивных на текущий момент элементов.
Андрей Болконский (abolk): "Любой программист знает - программного продукта без багов не бывает"
Андрей Болконский (abolk): "Любой программист знает - программного продукта без багов не бывает"

Андрей Болконский (abolk): "Любой программист знает - программного продукта без багов не бывает"

В сервисе "Работа" Андрей Болконский (abolk) участвует с момента его открытия. На текущий момент на его счету десятки индикаторов и экспертов для платформ MetaTrader 4 и MetaTrader 5. С Андреем мы поговорим о том, что представляет собой сервис с точки зрения программиста.
Графические интерфейсы VIII: Элемент "Календарь" (Глава 1)
Графические интерфейсы VIII: Элемент "Календарь" (Глава 1)

Графические интерфейсы VIII: Элемент "Календарь" (Глава 1)

В восьмой части серии о создании графических интерфейсов в среде торговых терминалов MetaTrader мы рассмотрим сложные составные элементы управления: календари, древовидный список, файловый навигатор. Каждому из этих элементов будут посвящены отдельные статьи, поскольку материал довольно объемный. Итак, в первой главе этой части описывается элемент "Календарь" и его расширенная версия — "Выпадающий календарь".
Инфографика "MQL5.com Freelance: Можно ли тут заработать?"
Инфографика "MQL5.com Freelance: Можно ли тут заработать?"

Инфографика "MQL5.com Freelance: Можно ли тут заработать?"

К четырехлетию «Фриланса» мы подготовили инфографику, которая наглядно демонстрирует итоги деятельности сервиса за все время его существования. Цифры говорят сами за себя: на данный момент выполнено более 10 000 работ общей стоимостью около $600 000, а услугами сервиса воспользовались уже 3 000 заказчиков и 300 разработчиков.
Разработка самоадаптирующегося алгоритма (Часть II): Повышение эффективности
Разработка самоадаптирующегося алгоритма (Часть II): Повышение эффективности

Разработка самоадаптирующегося алгоритма (Часть II): Повышение эффективности

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