ПРОГРАММИРОВАНИЕ

Курс по MQL5
В этом разделе будут публиковаться статьи по программированию скриптов, индикаторов, торговых систем на языке MQL5 для торговой платформы MetaTrader 5. В качестве дополнения также будут статьи по программированию на языке VBA (Visual Basic Application) в среде Excel 2010.

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

Этот раздел следует рассматривать, как дополнение к Справочному руководству по языку или к тому, что уже есть на сайте разработчиков терминала в виде статей и базы кода. Так как статьи специально написаны от простого к сложному, то их можно рассматривать, как курс по MQL5 для "чайников".

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

Если у Вас ещё не установлен терминал MetaTrader 5, то Вы можете скачать его прямо сейчас: Скачать MetaTrader 5. По этой ссылке можно загрузить всегда самый последний билд торговой платформы.

Ниже представлен список статей с кратким описанием и ссылками. Выбирайте темы, которые Вас заинтересовали и рекомендуйте их другим, если нашли их полезными.




Статьи по программированию на MQL5:


- Введение в MQL5. Вывод информации в печать в разных режимах.

  • Это первая статья по программированию на MQL5 на этом блоге. Я начну с простых примеров, чтобы те, кто только начинает изучать программирование, могли плавно погрузиться в изучение этого языка. Я вспоминаю, как я начинал изучать разработку и программирование торговых систем, и, признаться, мне это было довольно сложно, так как это мой первый язык. Но всё оказалось не так сложно, и уже через несколько месяцев я создал довольно сложную программу.

- Как получить свойства позиции?

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

- Свойства позиции на пользовательской информационной панели

  • На этот раз создадим простого эксперта, который во время ручной торговли будет показывать свойства позиции по текущему символу на пользовательской информационной панели, которая будет собрана из графических объектов. Данные будут обновляться на каждом тике, что уже намного удобнее, чем постоянно запускать вручную скрипт, который описывался в предыдущей статье "Как получить свойства позиции?".

- Изучение свойств позиции в тестере MetaTrader 5

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

- Как устанавливать/модифицировать торговые уровни и не получить ошибку?

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

- История сделок и библиотека функций для получения свойств позиции

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

- Использование индикаторов для формирования условий в эксперте

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

- Разработка схемы для торговой системы типа "Три экрана Элдера" на MQL5

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

- Мультивалютный советник на MQL5. Пример простой, точной и быстрой схемы.

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

- Разработка мультивалютного эксперта с неограниченным количеством параметров

  • В этой статье мы создадим схему, в которой для оптимизации торговой системы будет использоваться единый набор параметров, а количество символов можно использовать сколько угодно. Список символов будем составлять в обычном текстовом файле (*.txt). Входные параметры для каждого символа также теперь будут храниться в файлах. Так мы сможем обойти ограничение терминала на количество входных параметров эксперта.

- Записываем историю сделок в файл и строим графики балансов для каждого символа в Excel

  • Общаясь на многих форумах, я довольно часто приводил в пример результаты тестов на скриншотах с графиков в Microsoft Excel. И многие просили меня объяснить, как же строить эти замечательные графики. Наконец у меня появилось немного времени, чтобы написать статью об этом. 

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

  • Думаю огромное количество трейдеров сломало много копий пытаясь выбрать оптимальные параметры для своей торговой системы. Действительно, мало разработать торговый алгоритм, нужно ещё определиться, как им пользоваться в дальнейшем. Какую бы Вы торговую стратегию не использовали - простую или сложную, используете Вы один инструмент или множество, всё равно в итоге возникает вопрос: "Какие выбрать параметры, чтобы получить прибыль в будущем?".

- Сохраняем результаты оптимизации торгового эксперта по указанным критериям

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

- Озвучиваем торговые события в MetaTrader 5

  • В этой статье рассмотрим такие вопросы, как включение в файл эксперта звуковых файлов и соответственно озвучивание торговых событий. Включение в файл означает, что звуковые файлы будут внутри эксперта, и если передать скомпилированную версию эксперта (*.ex5) другому пользователю, то не нужно будет передавать ему папку со звуковыми файлами и объяснять при этом, в какую директорию их разместить.

- Наблюдение за несколькими таймфреймами в одном окне

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

- Элементы управления в подокне индикатора. Кнопки.

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

- Элементы управления в подокне индикатора. Полоса прокрутки (скроллинг).

  • Продолжим изучение элементов управления и на этот раз рассмотрим такой элемент, как прокрутка (скроллинг). Также, как и в предыдущей статье "Элементы управления в подокне индикатора. Кнопки.", будем работать в подокне индикатора. Предыдущую статью нужно изучить, так как там подробно объяснялось о том, как работать с событиями в функции OnChartEvent() и здесь будет о них только поверхностное упоминание. В этой статье создадим список всех показателей символа, которые только возможно получить с помощью MQL5, и так как список будет довольно большой, чтобы поместиться в подокне, сделаем для него вертикальный скроллинг.

- Разработка мультивалютного индикатора волатильности на MQL5

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

- Разработка мультивалютного индикатора для анализа расхождения цен

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

- Мультивалютный советник и работа с отложенными ордерами на MQL5

  • На этот раз рассмотрим создание мультивалютного советника, торговый алгоритм которого строится на работе с отложенными ордерами Buy Stop и Sell Stop. Схему будем строить для внутридневной торговли/тестов.  




Чтобы быть вовремя уведомленными о пополнениях этого раздела подпишитесь на обновления удобным Вам способом.