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

icon

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

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

Новая статья
последние | лучшие
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5
Использование вычислительных возможностей MATLAB 2018 в MetaTrader 5

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

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

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

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

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

В торговле трейдер использует различные механизмы и взаимосвязи, в том числе и между ордерами. В данной статье предлагается решение по обработке ОСО-ордеров. При этом широко задействованы классы Стандартной библиотеки, а также создаются новые типы данных.
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, эта статья для вас.
Оценка риска в последовательности сделок с одним активом. Продолжение
Оценка риска в последовательности сделок с одним активом. Продолжение

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

Статья развивает идеи, предложенные в предыдущей части и продолжает их рассмотрение. Описаны вопросы распределения доходностей, построения и изучения статистических закономерностей.
Графические интерфейсы II: Элемент "Главное меню" (Глава 4)
Графические интерфейсы II: Элемент "Главное меню" (Глава 4)

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

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

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

Продолжаем рассматривать процесс разработки библиотеки для создания графических интерфейсов в среде торговых терминалов MetaTrader. В первой главе пятой части серии разработаем классы для создания таких элементов управления, как вертикальные и горизонтальные полосы прокрутки.
preview
Фиксированный стоп-лосс на основе ценового действия и RSI ("умный" стоп-лосс)

Фиксированный стоп-лосс на основе ценового действия и RSI ("умный" стоп-лосс)

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

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

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

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

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

Разработка торговых тактик для FOREX

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

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

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

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

Стандартная библиотека MQL5 значительно упрощает жизнь разработчика. Однако она не может удовлетворить все требования абсолютно всех разработчиков в мире, поэтому если вы хотите иметь в своем распоряжении больше пользовательских элементов, вам необходимо расширить ее. В статье описывается интеграция обычного индикатора ZigZag в стандартную библиотеку. В ходе работы мы придерживались принципов разработки, применяемых в компании MetaQuotes.
preview
Биржевая сеточная торговля экспертом со стоповыми отложенными ордерами на Московской бирже (MOEX)

Биржевая сеточная торговля экспертом со стоповыми отложенными ордерами на Московской бирже (MOEX)

Использование сеточного торгового подхода на стоповых отложенных ордерах в эксперте на языке торговых стратегий MQL5 для MetaTrader 5 на Московской бирже (MOEX). При торговле на рынке одной из наиболее простых стратегий является сетка из ордеров, предназначенная для «поимки» рыночной цены.
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVI): Работа с отложенными торговыми запросами - первая реализация (открытие позиций)
Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXVI): Работа с отложенными торговыми запросами - первая реализация (открытие позиций)

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

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

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

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

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

В статье начнём новый раздел библиотеки - торговые классы, и рассмотрим создание единого базового торгового объекта для платформ MetaTrader 5 и MetaTrader 4. Такой торговый объект будет подразумевать при отправке запроса на сервер, что в него переданы уже проверенные и корректные параметры торгового запроса.
Веб-проекты (Часть II): Система авторизации Laravel/Nuxt
Веб-проекты (Часть II): Система авторизации Laravel/Nuxt

Веб-проекты (Часть II): Система авторизации Laravel/Nuxt

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

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

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

Поиск сезонных закономерностей на валютном рынке с помощью алгоритма CatBoost

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

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

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

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

В статье изложены авторские разработки пользовательских функций для более качественного по сравнению с обычным усреднением сглаживания: JJMASeries(), JurXSeries(), JLiteSeries(), ParMASeries(), LRMASeries(), T3Series() и MASeries(). В ней автор расматривает горчую замену этих функций в индикаторах в помощью обращения к функции SmoothXSeries().
Изменение внешних параметров MQL4-программ без перезагрузки
Изменение внешних параметров MQL4-программ без перезагрузки

Изменение внешних параметров MQL4-программ без перезагрузки

Статья описывает метод изменения внешних параметров MQL4-программ на лету без перезагрузки.
preview
Алан Эндрюс и его приемы анализа временных рядов

Алан Эндрюс и его приемы анализа временных рядов

Алан Эндрюс — один из известнейших "просветителей" современного мира в области трейдинга. Его "вилы" включены практически во все современные программы анализа котировок. Но большинство трейдеров не используют и пятой части тех возможностей, что заложены в этом инструменте. А оригинальный курс Эндрюса включает описание не только вил (хотя они всё же главные), но и некоторых других полезных прямых. Эта статья даёт представление о тех изумительных техниках анализа графиков, которым учил Эндрюс в своем оригинальном курсе. Осторожно, много картинок.
Графическое управление внешними параметрами индикаторов
Графическое управление внешними параметрами индикаторов

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

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

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

В этой статье мы изучим новый технический инструмент, который можно использовать в торговле. Это продолжение серии, в которой мы учимся проектировать простые торговые системы. В этот раз мы будем работать с еще одним популярным техническим индикатором — Средний истинный диапазон (Average True Range, ATR).
Show Must Go On... или очередное возвращение к ZigZag'у
Show Must Go On... или очередное возвращение к ZigZag'у

Show Must Go On... или очередное возвращение к ZigZag'у

Об одном очевидном и, одновременно, нестандартном методе построения ZigZag'а и о том, что из этого получилось - индикаторе Мультифреймовый Фрактальный ZigZag, отображающем на одном, рабочем, таймфрейме (ТФ) ZigZag'и, построенные на трех старших. В свою очередь, величины старших ТФ могут быть нестандартными, в диапазоне от M5 до MN1.
Графические интерфейсы VII: Элементы "Таблицы" (Глава 1)
Графические интерфейсы VII: Элементы "Таблицы" (Глава 1)

Графические интерфейсы VII: Элементы "Таблицы" (Глава 1)

В седьмой части серии статей о графических интерфейсах в терминалах MetaTrader будут представлены три типа таблиц: таблица из текстовых меток, таблица из полей ввода и нарисованная таблица. Ещё один важный и часто используемый элемент управления — вкладки, с помощью которых можно скрывать и делать видимыми группы других элементов управления, что позволяет пользователю делать компактные графические интерфейсы в своих MQL-приложениях.
Рецепты MQL5 – Стресс-тестирование торговой стратегии с помощью пользовательских символов
Рецепты MQL5 – Стресс-тестирование торговой стратегии с помощью пользовательских символов

Рецепты MQL5 – Стресс-тестирование торговой стратегии с помощью пользовательских символов

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

Электронные таблицы на MQL5

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

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

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

Графические интерфейсы IX: Элементы "Индикатор выполнения" и "Линейный график" (Глава 2)

Вторая глава девятой части серии будет посвящена элементам «Индикатор выполнения» и «Линейный график». Как всегда, будут показаны подробные примеры того, как можно использовать эти элементы в своих MQL-приложениях.
Расширяем функционал Конструктора стратегий
Расширяем функционал Конструктора стратегий

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

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

Поиск свечных паттернов с помощью MQL5

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

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

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

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

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

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

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

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

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

Разрабатываем мультивалютный советник (Часть 1): Совместная работа нескольких торговых стратегий

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

Графические интерфейсы XI: Поля ввода и комбо-боксы в ячейках таблицы (build 15)

В этом обновлении библиотеки элемент "Таблица" (класс CTable) пополнится новыми опциями. Расширим линейку элементов в ячейках таблицы и на этот раз добавим в неё поля ввода и комбо-боксы. В качестве дополнения в это обновление была добавлена возможность управлять размерами окна пользователем MQL-приложения во время её выполнения.