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

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

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

Также создадим функцию, в которой будет производиться проверка на невозможность совершить торговую операцию. Функцию для открытия позиции модифицируем так, чтобы эксперт определял режим торговли (Instant Execution и Market Execution).

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

С целями определились. Начнём.

Торговая система AMA 3TF Volume Increase

Торговый советник AMA 3TF AND INCREASE VOL.
Содержание:

1. Параметры торгового эксперта.
2. Сигналы для совершения торговых операций.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Мультитаймфреймовая торговая система AMA 3TF Volume Increase. с возможностью наращивания объёма позиции реализована для использования в торговом терминале MetaTrader 5.

Используется один стандартный индикатор Adaptive Moving Average. Сигналы для открытия позиции производятся по сформировавшимся барам трёх указанных в параметрах эксперта таймфреймах. Можно настроить торговлю на основе двух или одного таймфрейма.

Модификация уровня Trailing Stop производится по максимумам/минимумам текущего ТФ. Как правило, это минимальный таймфрейм указанный в параметрах. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Проверка на увеличение объёма происходит каждый бар текущего таймфрейма. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


Торговая система MACD 3TF Volume Increase

Бесплатный торговый советник MACD 3TF AND INCREASE VOL.
Содержание:

1. Параметры торгового эксперта.
2. Сигналы для совершения торговых операций.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Мультитаймфреймовая торговая система MACD 3TF Volume Increase реализована для использования в торговом терминале MetaTrader 5. Используется один стандартный индикатор MACD.

Сигналы для открытия позиции производятся по сформировавшимся барам трёх указанных в параметрах эксперта таймфреймах. Можно настроить торговлю на основе двух или одного таймфрейма.

Модификация уровня Trailing Stop производится по максимумам/минимумам текущего ТФ. Как правило, это минимальный таймфрейм указанный в параметрах. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Проверка на увеличение объёма происходит каждый бар текущего таймфрейма. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


Торговая система Stochastic 3TF Volume Increase

Мультитаймфреймовая механическая торговая система
Содержание:

1. Параметры торгового эксперта.
2. Сигналы для совершения торговых операций.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Мультитаймфреймовая торговая система с возможностью наращивания объёма позиции для использования в торговом терминале MetaTrader 5. Используется один стандартный индикатор Stochastic. Сигналы для открытия позиции производятся по сформировавшимся барам трёх указанных в параметрах эксперта таймфреймах.

Модификация уровня Trailing Stop производится по максимумам/минимумам текущего таймфрейма. Как правило, это минимальный таймфрейм указанный в параметрах. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Проверка на увеличение объёма происходит каждый бар текущего таймфрейма. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


Торговая система PCH Volume Increase

Механическая торговая система PCH AND INCREASE VOL
Содержание:

1. Параметры торгового эксперта.
2. Сигналы для совершения торговых операций.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Торговая система для использования в торговом терминале MetaTrader 5. Используется один индикатор MultiRange_PCH для формирования сигналов на открытие позиции. Это модифицированная версия индикатора Price Channel.

Сигналы и модификация позиции производятся по сформировавшимся барам текущего таймфрейма. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


Торговая система CCI Volume Increase

Механическая торговая система CCI AND INCREASE VOL
Содержание:

1. Параметры торгового эксперта.
2. Сигналы для совершения торговых операций.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Эта торговая система (эксперт) реализована для торгового терминала MetaTrader 5. В этом эксперте используется индикатор CCI (Commodity Channel Index) для формирования сигналов на открытие позиции. Сигналы и модификация позиции производятся по сформировавшимся барам текущего таймфрейма. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


Торговая система MA Volume Increase

Механическая торговая система MA AND INCREASE VOL.
Содержание:

1. Параметры эксперта.
2. Сигналы.
3. Дополнительные параметры и возможности.
4. Оптимизация параметров и тестирование эксперта.
5. Анализ полученных результатов.
6. Скачать файлы.

Эксперт реализован для торговой платформы MetaTrader 5. Для формирования сигналов используется один индикатор Moving Average. Сигналы на открытие позиции и на её модификацию производятся по сформировавшимся барам текущего таймфрейма. Условие для наращивания объёма позиции рассчитывается от уровня цены последней сделки позиции. Есть возможность включить/выключить Take Profit, Stop Loss, Trailing Stop, переворот позиции и наращивание объёма позиции.

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


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

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

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

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


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

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

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

Очень часто на форуме-(ах) по программированию на MQL можно увидеть вопросы от новичков, касающиеся ошибок при установке/модификации торговых уровней (Stop Loss, Take Profit, отложенные ордера). Думаю уже многие знакомы с сообщением в журнале, в котором в конце строки содержится [Invalid stops]. Создадим функции, в которых нормализуются и проверяются значения для торговых уровней на корректность перед открытием/модификацией позиции.

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

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

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

Изучение свойств позиции в тестере MetaTrader 5В этой статье будем модифицировать эксперта, которого сделали в предыдущей статье "Свойства позиции на пользовательской информационной панели". Рассмотрим ряд вопросов, таких как:

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

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


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

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

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

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