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

icon

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

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

Новая статья
последние | лучшие
preview
Непрерывная скользящая оптимизация (Часть 8): Доработка программы и исправление найденных недочетов

Непрерывная скользящая оптимизация (Часть 8): Доработка программы и исправление найденных недочетов

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

Графика в библиотеке DoEasy (Часть 79): Класс объекта "Кадр анимации" и его объекты-наследники

В статье разработаем класс одного кадра анимации и его наследников. Класс будет позволять рисовать фигуры с сохранением и последующим восстановлением фона под нарисованной фигурой.
preview
Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика

Язык визуального программиования ДРАКОН (Drakon) — средство общения для разработчика MQL и заказчика

ДРАКОН — язык визуального программирования, специально разработанный для упрощения взаимодействия между специалистами разных отраслей (биологами, физиками, инженерами...) с программистами в российских космических проектах (например, при создании создание комплекса "Буран"). В этой статье я расскажу о том, как ДРАКОН делает создание алгоритмов доступным и интуитивно понятным, даже если вы никогда не сталкивались с кодом, а также - как заказчику легче объяснить свои мысли при заказе торговых роботов, а программисту - совершать меньше ошибок в сложных функциях.
preview
Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов

Метамодели в машинном обучении и трейдинге: Оригинальный тайминг торговых приказов

Метамодели в машинном обучении: Автоматическое создание торговых систем практически без участия человека — Модель сама принимает решение как торговать и когда торговать.
Андрей Войтенко: "Ошибки программирования стоили мне 15 000" (ATC 2010)
Андрей Войтенко: "Ошибки программирования стоили мне 15 000" (ATC 2010)

Андрей Войтенко: "Ошибки программирования стоили мне 15 000" (ATC 2010)

Андрей Войтенко впервые принимает участие в Чемпионате Automated Trading Championship 2010, но торгует его эксперт вполне по-взрослому. Уже которую неделю советник Андрея идет в первой десятке и не собирается уступать завоеванные позиции конкурентам. В интервью разработчик рассказывает об особенностях своего эксперта, допущенных им ошибках и цене, которую пришлось за них заплатить.
preview
Нейросети — это просто (Часть 29): Алгоритм актор-критик с преимуществом (Advantage actor-critic)

Нейросети — это просто (Часть 29): Алгоритм актор-критик с преимуществом (Advantage actor-critic)

В предыдущих статьях данной серии мы познакомились с 2-мя алгоритмами обучения с подкреплением. Каждый из них обладает своими достоинствами и недостатками. Как часто бывает в таких случаях, появляется идея совместить оба метода в некий алгоритм, который бы вобрал в себя лучшее из двух. И тем самым компенсировать недостатки каждого из них. О таком методе мы и поговорим в этой статье.
preview
Градиентный бустинг в задачах трансдуктивного и активного машинного обучения

Градиентный бустинг в задачах трансдуктивного и активного машинного обучения

В данной статье вы познакомитесь с методами активного машинного обучения на реальных данных, узнаете какие плюсы и минусы они имеют. Возможно, эти методы займут свое место в вашем арсенале моделей машинного обучения. Термин трансдукции был введен Владимиром Наумовичем Вапником, изобретателем машины опорных векторов или SVM (support vector machine).
Разработка торговой системы на основе Стохастика
Разработка торговой системы на основе Стохастика

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

Это очередная статья из обучающей серии, в которой мы знакомимся с различными индикаторами. В этот раз мы обратимся к другому популярному индикатору — Stochastic Oscillator. Изучим его, рассмотрим стратегии на его основе и создадим торговую систему.
Работа с таймсериями в библиотеке DoEasy (Часть 36): Объект таймсерий всех используемых периодов символа
Работа с таймсериями в библиотеке DoEasy (Часть 36): Объект таймсерий всех используемых периодов символа

Работа с таймсериями в библиотеке DoEasy (Часть 36): Объект таймсерий всех используемых периодов символа

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

Фриланс на MQL5.com - лучшее место для разработчика

Разработчикам торговых советников больше не надо искать трейдеров, которым нужны эксперты, - заказчики сами найдут вас. Более того, они уже находят разработчиков, выставляют заказы и оплачивают проделанную работу в сервисе Фриланс на MQL5.com. За 4 года существования сервиса три тысячи трейдеров оплатило свыше 10 000 выполненных работ! Причем активность трейдеров и разработчиков постоянно возрастает.
preview
Сезонность на рынке форекс и возможности ее использования

Сезонность на рынке форекс и возможности ее использования

Каждый современный человек знаком с понятием сезонности, например, все мы привыкли к росту цен свежих овощей в зимний период или подорожанию топлива в сильные морозы, но мало кто знает, что подобные закономерности существуют и на рынке форекс.
preview
Методы Уильяма Ганна (Часть I): Создаем индикатор углов Ганна

Методы Уильяма Ганна (Часть I): Создаем индикатор углов Ганна

В чем суть теории Ганна? Как строятся углы Ганна? Создаем индикатор углов Ганна для MetaTrader 5.
preview
Разработка робота на Python и MQL5 (Часть 1): Препроцессинг данных

Разработка робота на Python и MQL5 (Часть 1): Препроцессинг данных

Разработка торгового робота на основе машинного обучения: подробное руководство. В первой статье цикла осуществлен сбор и подготовка данных и признаков. Для реализации проекта используется язык программирования Python и библиотеки, а также платформа MetaTrader 5.
Итоги MQL5 Маркета за 2 квартал 2013 года
Итоги MQL5 Маркета за 2 квартал 2013 года

Итоги MQL5 Маркета за 2 квартал 2013 года

За полтора года успешной работы MQL5 Маркет стал крупнейшим трейдерским магазином торговых стратегий и технических индикаторов. В нем опубликовано около 800 торговых приложений от 350 разработчиков со всего мира. При этом трейдеры уже купили и установили в свои терминалы MetaTrader 5 свыше 100 000 торговых программ.
Прочие классы в библиотеке DoEasy (Часть 72): Отслеживание и фиксация параметров объектов-чартов в коллекции
Прочие классы в библиотеке DoEasy (Часть 72): Отслеживание и фиксация параметров объектов-чартов в коллекции

Прочие классы в библиотеке DoEasy (Часть 72): Отслеживание и фиксация параметров объектов-чартов в коллекции

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

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

В статье продолжим работу над торговыми запросами и реализуем выставление отложенных ордеров, а также устраним найденные недочёты в работе торгового класса.
preview
Использование класса CCanvas в MQL приложениях

Использование класса CCanvas в MQL приложениях

Статья об использовании класса CCanvas в MQL приложениях с подробным разбором и примерами, что даёт пользователю понимание основ работы с данным инструментом
Графика в библиотеке DoEasy (Часть 78): Принципы анимации в библиотеке. Нарезка изображений
Графика в библиотеке DoEasy (Часть 78): Принципы анимации в библиотеке. Нарезка изображений

Графика в библиотеке DoEasy (Часть 78): Принципы анимации в библиотеке. Нарезка изображений

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

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

Эта статья продолжает серию о построении торговых систем с использованием самых популярных индикаторов. На этот раз мы поговорим об индикаторе ADX (Average Directional Index, Индекс среднего направленного движения). Мы подробно изучим этот индикатор, чтобы понять, чем он может быть полезен в торговле. Также с помощью простых стратегий мы узнаем, как его использовать. Изучая самую суть вещей, мы можем получить больше информации и использовать это с максимальной выгодой.
preview
Несколько индикаторов на графике (Часть 01): Понимание концепций

Несколько индикаторов на графике (Часть 01): Понимание концепций

Сегодня разберем, как можно добавить несколько индикаторов в график одновременно, не занимая при этом отдельную его область. При торговле много трейдеров чувствуют себя более уверенно, если одновременно смотрят на несколько индикаторов (например, RSI, STOCASTIC, MACD, ADX и другие), а в некоторых случаях даже на разные активы, составляющие тот или иной индекс.
preview
Разработка торговой системы на основе индикатора объемов Volumes

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

Представляю вашему вниманию новую статью из серии, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов. Данная статья будет посвящена индикатору Volumes. Объем как понятие является важным факторов в торговле на финансовых рынках, и поэтому обязательно надо его учитывать. В этой статье узнаем, как разработать торговую систему на основе показателей от индикатора объемов Volumes.
Применение псевдошаблонов как альтернатива шаблонов С++
Применение псевдошаблонов как альтернатива шаблонов С++

Применение псевдошаблонов как альтернатива шаблонов С++

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

Еще раз о системе Мюррея

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

Библиотека для простого и быстрого создания программ для MetaTrader (Часть VII): События срабатывания StopLimit-ордеров, подготовка функционала для событий модификации ордеров и позиций

В предыдущих статьях мы начали создавать большую кроссплатформенную библиотеку, целью которой является упростить создание программ для платформы MetaTrader 5 и MetaTrader 4. В шестой части мы научили библиотеку работать с позициями на счетах с типом "неттинг". В данной части сделаем отслеживание событий срабатывания StopLimit-ордеров и подготовим функционал для отслеживания событий модификации рыночных ордеров и позиций.
Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе
Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе

Графика в библиотеке DoEasy (Часть 75): Методы работы с примитивами и текстом в базовом графическом элементе

В статье продолжим развитие базового класса-графического элемента всех графических объектов библиотеки, создаваемых на основе класса Стандартной библиотеки CCanvas. Мы создадим методы для рисования графических примитивов и методы вывода текста на объект-графический элемент.
Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень
Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень

Графика в библиотеке DoEasy (Часть 77): Класс объекта Тень

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

Паттерны, доступные при торговле корзинами валют. Часть III

Это заключительная статья, посвященная паттернам, возникающим при торговле корзинами валютных пар. Рассмотрены трендовые объединенные индикаторы и применение обычных графических построений.
preview
Матрицы и векторы в MQL5

Матрицы и векторы в MQL5

Специальные типы данных matrix и vector позволяют писать код, приближенный к математической записи. Это избавляет от необходимости создавать вложенные циклы и помнить о правильной индексации массивов, которые участвуют в вычислении. Таким образом повышается надежность и скорость разработки сложных программ.
Создание интерактивного приложения для отображения RSS-каналов в MetaTrader 5
Создание интерактивного приложения для отображения RSS-каналов в MetaTrader 5

Создание интерактивного приложения для отображения RSS-каналов в MetaTrader 5

В данной статье рассматривается создание приложения, отображающего RSS-каналы. Мы также рассмотрим аспекты применения Стандартной библиотеки при создании интерактивных программ для MetaTrader 5.
preview
Модель движения цены и ее основные положения (Часть 1): Простейший вариант  модели  и его  приложения

Модель движения цены и ее основные положения (Часть 1): Простейший вариант модели и его приложения

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

Популяционные алгоритмы оптимизации

Вводная статья об алгоритмах оптимизации (АО). Классификация. В статье предпринята попытка создать тестовый стенд (набор функций), который послужит в дальнейшем для сравнения АО между собой, и, даже, возможно, выявления самого универсального алгоритма из всех широко известных.
Графические интерфейсы VIII: Элемент "Файловый навигатор" (Глава 3)
Графические интерфейсы VIII: Элемент "Файловый навигатор" (Глава 3)

Графические интерфейсы VIII: Элемент "Файловый навигатор" (Глава 3)

В предыдущих главах восьмой части серии наша библиотека пополнилась несколькими классами для создания указателей для курсора мыши, календарей и древовидных списков. В настоящей статье рассмотрим элемент «Файловый навигатор», который тоже можно будет использовать в качестве части графического интерфейса MQL-приложения.
preview
Работаем со временем (Часть 2): Функции

Работаем со временем (Часть 2): Функции

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

Эксперименты с нейросетями (Часть 1): Вспоминая геометрию

Нейросети наше все. Проверяем на практике, так ли это. Экспериментируем и используем нестандартные подходы. Пишем прибыльную торговую систему. Простое объяснение.
Работа с таймсериями в библиотеке DoEasy (Часть 45): Мультипериодные индикаторные буферы
Работа с таймсериями в библиотеке DoEasy (Часть 45): Мультипериодные индикаторные буферы

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

В статье начнём доработку объектов-индикаторных буферов и класса коллекции буферов для работы в мультипериодном и мультисимвольном режимах. В данной статье рассмотрим работу объектов-буферов для получения и вывода данных с любого таймфрейма на текущий график текущего символа.
preview
Разработка торговой системы на основе индикатора Force Index

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

Это новая статья из серии, в которой мы учимся создавать торговые системы на основе популярных технических индикаторов. На этот раз будем изучать индикатор Индекса силы (Force Index) и будем учиться создавать на его основе торговые системы.
preview
Эксперименты с нейросетями (Часть 4): Шаблоны

Эксперименты с нейросетями (Часть 4): Шаблоны

Нейросети наше все. Проверяем на практике, так ли это. MetaTrader 5 как самодостаточное средство для использования нейросетей в трейдинге. Простое объяснение.
Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas
Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas

Графика в библиотеке DoEasy (Часть 74): Базовый графический элемент на основе класса CCanvas

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

Стать хорошим программистом (Часть 5): повышаем скорость программирования

Я полагаю, каждый разработчик хочет писать код быстрее. При этом возможность быстро и эффективно писать код — это не какая-то особая врожденная способность, доступная только избранным. Это навык, которым может овладеть любой программист, чем мы и займемся в этой статье.
Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)
Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)

Владимир Цирульник: "Суть моей программы - импровизация!" (ATC 2010)

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