Скачать MetaTrader 5

AutoElliottWaveMaker - инструмент полуавтоматической разметки волн Эллиотта в MetaTrader 5

6 апреля 2012, 11:57
Roman Martynyuk
4
7 825

Введение

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

  • Процесс разметки контролируется человеком;
  • Высокая скорость анализа за счет того, что рассчитывается только часть графика, указанная пользователем.

Данная программа получила название AutoElliottWaveMaker и описывается в данной статье.  AutoElliottWaveMak er является логическим продолжением инструмента ручной разметки волн, который в настоящее время можно приобрести в сервисе Маркет.


1. Объекты программы

Основными объектами программы являются метка и панель меток (рис. 1).

Панель меток

Рис. 1. Панель меток

Панель меток представляет собой последовательность меток одного волнового уровня, расположенных в левой верхней части графика. Положение данной панели, а также расстояние между метками, настраиваются пользователем при помощи входных параметров программы (рис. 2):

  • interval - расстояние между метками на панели меток;
  • x_distance - расположение панели меток по оси X от верхнего левого угла графика;
  • y_distance - расположение панели меток по оси Y от верхнего левого угла графика.

Входные параметры

Рис. 2. Входные параметры программы

Также на панели меток располагается название текущего волнового уровня (рис. 1).

Панель меток можно скрыть/отобразить, нажав клавишу Esc. Чтобы отобразить на панели меток метки предыдущего или следующего волнового уровня, необходимо нажать, соответственно, клавишу Q или W.

Метки с панели меток можно перемещать методом drag and drop. При перемещении метки панель меток восстанавливается в исходное состояние. При удалении метки с панели меток, восстановление панели не происходит. Для этого необходимо перейти на другой волновой уровень и обратно.

Количество и стиль волновых уровней и меток задается в файле Levels.txt, который автоматически создается при первом запуске программы. Файл Levels.txt располагается в папке Files каталога данных терминала MetaTrader 5. Редактируя данный файл, пользователь может изменять стилевое оформление волновых уровней (рис. 3).

Описание уровней

Рис. 3. Содержимое файла Levels.txt

В качестве примера разберем четвертую строку данного файла:

  • SubMinuette - название волнового уровня;
  • i, ii, iii, iv, v, a, b, c, d, e, w, x, y, xx, z - обозначение волновых вершин;
  • Times New Roman - наименование шрифта;
  • 8 - размер шрифта;
  • 15 - высота шрифта в пикселях;
  • 255, 140, 0 - цвет в формате RGB.

При редактировании данного файла устанавливаются следующие ограничения:

  • количество волновых вершин должно быть 15;
  • все обозначения волновых вершин должны быть различными.

Также для правильной работы программы необходимо, чтобы в настройках терминала MetaTrader 5 (Главное меню-Сервис-Настройки-графики) "Макс. баров в окне" стояло значение "Unlimited".


2. Описание процесса разметки волн

Процесс разметки волн Эллиотта происходит в ручном и/или автоматическом режиме.

В свою очередь, ручной режим предполагает два способа установки меток:

  1. Путем их перетаскивания с панели меток;
  2. Щелчками мыши у баров на графике.

Автоматический режим предполагает разметку графика по алгоритму, заложенному в программу. При этом возможен анализ всего графика в целом или его части (от метки до метки), в зависимости от указаний пользователя.


2.1. Ручной режим

При ручной разметке графика метки самостоятельно встают над или под барами и при изменении масштаба графика или его размеров автоматически корректируются. Метки располагаются по старшинству волновых уровней. Таким образом, если над или под одним и тем же баром будут расположены две или более волновые метки, то метка старшего волнового уровня будет расположена, соответственно, выше или ниже метки младшего волнового уровня (рис. 4 и рис. 5).

Расположение меток до разметки

Рис. 4. Расположение меток до разметки

Расположение меток после разметки

Рис. 5. Расположение меток после разметки


На рис. 4 видно, что над баром расположена метка (A) волнового уровня SubMicro. Над тем же баром разместили метку 5 уровнем ниже - SuperMicro. Так уровень SuperMicro меньше, чем SubMicro, то метка 5 расположилась ниже метки (A) (рис. 5).

Также следует учитывать, что при ручной разметке волновые метки располагаются над/под ближайшим баром, который имеет high/low выше/ниже, чем его соседние бары. Данная особенность позволяет более точно позиционировать метки на графике.

Как было сказано выше, в ручном режиме разметка может осуществляться двумя способами. И если с перемещением меток на график с панели меток все более или менее понятно, то процесс разметки щелчками мыши имеет свои особенности.

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

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


2.2. Автоматический режим

Автоматическая разметка графика происходит с помощью управляющих клавиш. Существует три варианта автоматической разметки:

  1. Анализ графика до выделенной метки;
  2. Анализ графика после выделенной метки;
  3. Анализ всего графика, если ни одна из меток не выделена.

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

На рис. 6 показаны две метки, размещенные на графике. Вторая из них выделена. После нажатия клавиши 1 будет произведен анализ части графика между метками. Результат анализа изображен на рис. 7.

До анализа 1

Рис. 6. Исходное состояние графика до нажатия клавиши 1


После анализа 1

Рис. 7. Результат автоматического анализа части графика между метками

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

На рис. 8 показана одна метка, размещенная на графике. Данная метка выделена. После нажатия клавиши 2 будет произведен анализ части графика от метки до конца графика. Результат анализа изображен на рис. 9.

До анализа 2

Рис. 8. Исходное состояние графика до нажатия клавиши 2

После анализа 2

Рис. 9. Результат автоматического анализа части графика от метки до конца графика


Третий вариант анализа будет произведен после нажатия клавиш 1 или 2. При этом все метки на графике сначала будут удалены.

Сразу после автоматического анализа волн Эллиотта доступен просмотр вариантов разметки.

Существует 3 варианта просмотра результатов анализа:

  1. Просмотр вариантов разметки выделенной волны;
  2. Просмотр вариантов разметки волны, следующей за выделенной;
  3. Просмотр вариантов разметки проанализированного участка графика, если ни одна из волновых меток не выделена.

Перемещение по вариантам разметки осуществляется клавишами 3 (показать предыдущий вариант) и 4 (показать следующий вариант) для первого варианта просмотра, клавишами 5 (показать предыдущий вариант) и 6 (показать следующий вариант) для второго варианта просмотра, и любыми из данных клавиш для третьего варианта просмотра.

На рис. 10 показан следующий вариант разметки волны, которая ранее была автоматически размечена и показана на рис. 7.

Следующий вариант разметки

Рис. 10. Следующий вариант разметки выделенной волны

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

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

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

Информация о типе волны

Рис. 11. Информация о типе выделенной волны

Следует сказать, что автоматический анализ осуществляется на основе определенных волновых правил. Правила для идентификации волн хранятся в файле Rules.txt, который создается при первом запуске программы. Данный файл располагается в папке Files папки данных терминала MetaTrader 5.


3. Дополнительные возможности

Каждая метка на графике может входить в определенную группу меток, которую можно выделить. Выделение группы меток происходит путем выделения какой-либо метки на графике и нажатием клавиши Tab. Выделяются все метки, которые входят в группу с выделенной меткой. Повторное нажатие на клавишу Tab снимает все выделения.

Добавление в группу происходит путем выделения какой-либо метки и затем создания новых меток. Новые метки добавляются в группу, в которую входит выделенная метка.

Над каждой выделенной меткой на графике можно производить определенные действия, а именно:

  • Удалять с помощью клавиши Del;
  • Понижать или повышать волновой уровень с помощью клавиш, соответственно, A или S.

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


4. Список клавиатурных команд

На рис. 12 показаны все используемые клавиатурные команды и их описание.

Клавиатурные команды

Рис. 12. Клавиатурные команды


Заключение

В статье была описана первая разработка по полуавтоматическому анализу волн Эллиотта для MetaTrader 5. Данная программа обладает рядом уникальных возможностей:

  • Автоматическая привязка символов волновых вершин у баров на графиках всех временных периодов;
  • Установка символов волновых вершин как перетаскиванием с панели меток, так и последовательными щелчками мыши;
  • Автоматическое расположение символов волновых вершин по старшинству волновых уровней на графиках всех временных периодов;
  • Автоматическое и ручное управление количеством волновых уровней, выводимых на график;
  • Создание собственных стилей разметки волновых уровней;
  • Автоматический анализ волн Эллиотта как всего графика так и его части (от метки до метки);
  • Просмотр вариантов автоматической разметки волн;
  • Возможность редактирования волновых правил;
  • Управление процессом разметки при помощи мыши и клавиатуры.

Данная разработка показывает большие возможности языка MQL5, и, надеюсь, подтолкнет разработчиков на создание сложных и интересных программ.


Комбинатор
Комбинатор | 6 апр 2012 в 13:09
Уже не первый прецедент рекламы в статьях. Это общедозволенная практика или единичные случаи, способствующие "развитию платформы"?
Igor Makanu
Igor Makanu | 6 апр 2012 в 13:13

странно, поместили в раздел статьи мануал по панели ElliottWaveMaker из маркета, т.е. отзывы покупателей будут писаться в этом топике?

если не ошибаюсь, то при приобретении ElliottWaveMaker нельзя получить исходники? если исходники не доступны, то тогда что хотел сказать автор фразой:

... подтолкнет разработчиков на создание сложных и интересных программ.

 какой реализован вид обмена данными между ElliottWaveMaker и пользовательскими экспертами/индикаторами?

Rashid Umarov
Rashid Umarov | 6 апр 2012 в 13:15

Если Вы сделаете что-то эпическое и беспрецендентное, то мы и Вас опубликуем. Мы заинтересованы в раскрытии всего потенциала MQL5.
Комбинатор
Комбинатор | 6 апр 2012 в 13:19
Rosh:
Если Вы сделаете что-то эпическое и беспрецендентное, то мы и Вас опубликуем. Мы заинтересованы в раскрытии всего потенциала MQL5.
Ок, спасибо. Примерно на такой ответ и рассчитывал. Просто не хочется, чтобы раздел статьи плавно превратился в сборище техдокументации для маркета.
Последний крестовый поход Последний крестовый поход

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

Защита MQL5-программ: пароли, ключи, ограничение по времени, удаленная проверка лицензий Защита MQL5-программ: пароли, ключи, ограничение по времени, удаленная проверка лицензий

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

Как опубликовать свой продукт в сервисе Маркет Как опубликовать свой продукт в сервисе Маркет

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

Кто есть кто в MQL5.community? Кто есть кто в MQL5.community?

Сайт MQL5.com хорошо помнит каждого из вас! Сколько ваших тредов стали эпичными, насколько популярными оказались ваши статьи и как часто скачивались ваши программы из Code Base – это лишь небольшая часть того, что помнит о вас MQL5.com. Достижения каждого из вас доступны в профиле, но как выглядит картина в целом? В этой статье мы построим общую картину достижений всех участников MQL5.community.