как сделать мониторинг счета на mql5

FAQ по сервису Сигналы

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

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

Прежде чем задать вопрос, почитайте, пожалуйста, статьи по теме:

Список вопросов

Ответы на вопросы

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

После заполнения этих четырех полей нажмите «Добавить» и вы попадете на страницу вашего вновь созданного Сигнала. Добавьте описание вашего Сигнала и сохраните его.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5
При входе на страницу сигнала вы увидите сообщение об ошибке. Вы можете поправить номер счета, пароль и название торгового сервера по команде «Правка».
как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Далее, через секунду-две появится следующее диалоговое окно, в котором вы должны настроить параметры копирования и нажать кнопку «OK»

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

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

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

На счете Провайдера торгуется инструмент GOLD, у моего брокера есть такой же инструмент, но он называется XAUUSD. Будут ли в таком случае сделки по символу GOLD копироваться на символ XAUUSD?

Если на счете Подписчика найден символ с таким же названием, как и на счете Провайдера, и на этом символе торговля полностью разрешена, то копирование сделок производится именно на этом символе. Если же на найденном символе торговля разрешена только частично либо запрещена, то символ считается неподходящим для копирования и начинается поиск подходящего символа.

Поиск подходящего для копирования символа производится в следующем порядке:

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

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

Пример 1: при наличии у Провайдера позиций по символу EURUSD, а у Подписчика символа EURUSD! (или наоборот) с полным разрешением на торговлю, терминал автоматически распознаёт соответствие и будет копировать сделки.

Пример 2: при наличии у Провайдера позиций по символу EURUSD, а у Подписчика одновременно символов EURUSD! и EURUSD, копирование будет вестись на EURUSD.

Пример 3: при наличии у Провайдера позиций по символу GOLD, а у Подписчика одновременно символа XAUUSD с полным разрешением на торговлю, терминал автоматически распознаёт соответствие и будет копировать сделки.

Пример 4: при наличии у Провайдера позиций по символу GOLD, а у Подписчика одновременно символа XAUUSD с разрешением только на закрытие позиции (неполное разрешение на торговлю), сопоставление считается не найденным и копирования не будет.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

и жмете команду «Правка»
как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Снимаете галку «Включен» и жмете кнопку «Сохранить»

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Должен ли Подписчик держать терминал MetaTrader 4/5 запущенным, чтобы копировать сделки?
Копирование сделок происходит в самом терминале Подписчика, при этом терминал Подписчика должен быть запущен и подключен к соответствующему счету.

Отменять подписку на Сигнал нужно там же, где на него подписался?
Вы можете отменить подписку на Сигнал как на сайте https://www.mql5.com/ru/signals в разделе «Мои подписки», так и прямо из терминала: смотрите раздел Справка по MetaTrader 5 → Пользовательский интерфейс → Инструменты → Сигналы: Отписка от Сигнала. Если подписка была платная, то зарезервированная сумма подписки будет списана с вашего счета в момент отписки в качестве оплаты.

Как мне узнать, на какой Сигнал я подписан в терминале, и как я могу отменить подписку?
Во-первых, при подключении к счету терминал связывается с сигнальным сервером и производит проверку наличия подписок. Если на данном счете есть подписка на Сигнал, то в Журнал будет выведено сообщение об этом. Кроме того, в настройках терминала в разделе Сигналы первой же строчкой синим цветом выводится название Сигнала, на который подписан данный счет.
Во-вторых, есть простой способ, который позволяет сразу же увидеть все свои текущие и законченные подписки на странице Сигналы в разделе Мои подписки. Для этого необходимо предварительно авторизоваться на MQL5.com.

Вся торговая история счета делится на периоды между балансовыми операциями (снятия и пополнения). Сначала вычисляется общий коэффициент прироста (К) путем перемножения коэффициентов, рассчитанных для каждого промежутка между балансовыми операциями (БО), а затем вычисляется общий прирост в процентах.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

В данном случае общий прирост для счета будет рассчитан следующим образом:

Коэффициент прироста К = К1 * K2 * K3 = (6 615/10 000) * (17 847/11 115) * (15 547/14 847) = 1.1

Несмотря на то, что текущий баланс больше начального депозита на 50%, реальный рост за счет торговых операций составляет только 10%.

Как считается прирост за год (YTD), если сумма месячных приростов не совпадает с ним?

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

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Сигнал за 2014 год имел следующие значения прироста по месяцам:

Коэффициент прироста за период находится как (Прирост в процентах) / 100% + 1.0. За январь коэффициент прироста = (14.71%/100%)+1.0 = 1.1471.

Общий коэффициент прироста = 1.1471 * 1.2051 = 1.3823

Чтобы получить годовой процент прироста, необходимо перемножить коэффициенты прироста за каждый месяц, из произведения вычесть 1.0 и затем умножить результат на 100%. Это и будет сложный процент прироста за год (YTD).

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

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

Источник

Мастер MQL5: Создание эксперта без программирования

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Введение

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

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

В MQL5 использование объектно-ориентированного подхода позволяет значительно упростить задачу написания и тестирования автоматических торговых систем.

MetaQuotes Software Corp. разработала классы для реализации торговых стратегий, теперь код советников можно генерировать автоматически прямо в редакторе MetaEditor путем выбора необходимых модулей торговых сигналов (на текущий момент их 20), трейлинга (4) и управления капиталом (5). Комбинируя эти модули, можно получать множество вариантов готовых торговых систем.

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

В этой статье мы рассмотрим процесс автоматической генерации кода советника с использованием Мастера MQL5. И при этом ничего программировать не придется!

1. Создание торгового робота при помощи Мастера MQL5

Конструирование кода советника производится при помощи Мастера MQL5 редактора MetaEditor.

Базовые классы торговых стратегий расположены в каталоге \папка терминала\MQL5\Include\Expert\. Готовые алгоритмы классов торговых сигналов, классов сопровождения открытых позиций и классов управления капиталом и рисками находятся в подкаталогах Signal, Trailing и Money. Мастер MQL5 анализирует файлы в этих каталогах и использует их для генерации кода советника.

Для вызова Мастера MQL5 нужно нажать кнопку «Создать» в панели инструментов, либо выбрать пункт «Создать» в меню «Файл» главного меню (или при помощи Ctrl+N):

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 1. Запуск Мастера MQL5

Далее следует выбрать тип создаваемой программы. В нашем случае выбираем пункт генерации кода советника «Советник (сгенерировать)»:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 2. Выбор типа создаваемой программы

Шаг 1. Общие параметры советника

Появляется диалог настройки общих параметров советника:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 3. Общие параметры советника

Задаем наименование советника, имя автора и ссылку на сайт в полях «Имя», «Автор» и «Ссылка».

В советнике также присутствуют входные параметры:

Следующим шагом выберем модуль торговых сигналов, по которым эксперт будет торговать.

Шаг 2. Выбор модуля торговых сигналов

Алгоритм открытия и закрытия позиций определяется модулем торговых сигналов. Модули торговых сигналов содержат правила открытия/закрытия/переворота позиций.

В Стандартной библиотеке есть готовые модули торговых сигналов:

После нажатия на кнопку «Далее» появится окно выбора набора сигналов, по которым будет торговать советник.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 4. Выбор сигналов для советника

Для того чтобы добавить модуль торговых сигналов в советник, нужно нажать «Добавить». Тип торговых сигналов указывается в пункте «Имя».

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 5. Добавление модуля торговых сигналов и настройка параметров

Каждый тип торговых сигналов имеет свои параметры, которые можно указать в разделе «Параметры». Можно использовать значения, предлагаемые по умолчанию.

После добавления модуля он появится в списке:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 6. Модуль торговых сигналов добавлен в советник

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

Следующим шагом является выбор алгоритма сопровождения открытых позиций (Trailing Stop). Использование трейлинга позволяет сохранить заработанную прибыль.

В Стандартной библиотеке имеется несколько способов сопровождения открытых позиций:

В нашем советнике выберем «Trailing Stop based on fixed Stop Level»:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 7. Выбор алгоритма сопровождения открытых позиций

Данный тип трейлинга подразумевает два параметра: уровни StopLevel и ProfitLevel (в пунктах для котировок с 2-мя и 4-мя знаками после запятой), которые будут использоваться в процессе сопровождения открытых позиций:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 8. Установка параметров выбранного алгоритма сопровождения открытых позиций

Шаг 4. Выбор модуля управления капиталом и рисками

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

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 9. Выбор алгоритма управления капиталом и рисками

Выберем алгоритм торговли фиксированным количеством лотов (Trading with fixed trade volume).

Выбранный нами модуль имеет два параметра:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 10. Установка параметров выбранного алгоритма управления капиталом и рисками

После нажатия кнопки «Готово» в папке \каталог терминала\MQL5\Experts\ появится файл TestExpert.mq5, его имя соответствует наименованию, заданному при создании советника.

2. Структура советника, созданного при помощи Мастера MQL5

Код эксперта, сгенерированный Мастером MQL5, выглядит следующим образом:

Код советника состоит из нескольких секций.

Секция, описывающая свойства программы:

Код класса CExpert, экземпляр которого используется в советнике, располагается в файле Expert.mqh.

В файле SignalCrossEMA.mqh содержится код выбранного нами класса торговых сигналов CSignalMA, в файле TrailingFixedPips.mqh находится код используемого нами класса алгоритма сопровождения открытых позиций CTrailingFixedPips, управление капиталом и рисками будет осуществляться при помощи класса CMoneyFixedLot, содержащегося в файле MoneyFixedLot.mqh.

Далее следуют входные параметры советника:

Первые три параметра (Expert_Title, Expert_MagicNumber и Expert_EveryTick) являются общими, они присутствуют всегда вне зависимости от выбранных алгоритмов торговых сигналов, трейлинга и управления капиталом и риском.

Строковой параметр Expert_Title определяет наименование советника, Expert_MagicNumber задает идентификатор советника (это значение будет использоваться в параметрах торговых запросов), при помощи параметра Expert_EveryTick задается режим работы советника. При Expert_EveryTick=true эксперт будет осуществлять вызов функции обработки (проверка торговых условий, проведение торговых операций, сопровождение открытой позиции) каждый раз при поступлении нового тика по рабочему символу.

После общих параметров советника располагаются входные параметры выбранного алгоритма торговых сигналов, они имеют префикс «Signal_». Например, в выбранном нами модуле CSignalMA период скользящей средней определяется значением параметра Signal_MA_PeriodMA.

Выбранный нами способ сопровождения открытых позиций СTrailingStopFixedPips осуществляет сопровождение открытой позиции на фиксированном расстоянии, определяемом уровнями Stop Loss и Take Profit, значения которых задаются в «обычных» 2/4 знаковых пунктах. При движении цены в направлении открытой позиции на расстояние, большее чем количество пунктов, заданных уровнем Trailing_FixedPips_StopLevel, эксперт модифицирует значение ценовых уровней Stop Loss и Take Profit (при Trailing_FixedPips_ProfitLevel>0).

Входные параметры Money_FixLot_Percent и Money_FixLot_Lots соответствуют параметрам алгоритма торговли с фиксированным лотом, реализованного в классе CMoneyFixedLot. В нашем случае торговля будет производится с фиксированным объемом, равным значению параметра Money_FixLot_Lots.

В классе CMoneyFixedLot также реализован алгоритм управления риском: при получении убытка (в процентах от текущего количества средств), указанного в параметре Money_FixLot_Percent, класс CMoneyFixedLot порекомендует классу эксперта произвести принудительное закрытие убыточной позиции, что и будет сделано.

После входных параметров советника декларируется объект ExtExpert класса CExpert:

Это экземпляр класса торговой стратегии.

Объект ExtExpert, будучи экземпляром класса CExpert, содержит ссылки на объекты-потомки классов CExpertSignal (базовый класс торговых сигналов), CExpertMoney (базовый класс управления капиталом и рисками) и CExpertTrailing (базовый класс сопровождения открытых позиций). Помимо этого, класс CExpert содержит экземпляры классов CExpertTrade, СSymbolInfo, CAccountInfo, CPositionInfo, COrderInfo, а также контейнер CIndicators.

Настройка параметров советника заключается в создании экземпляров соответствующих классов и указании классу ExtExpert ссылок на созданные объекты.

Рассмотрим подробнее функцию инициализации советника OnInit, в которой производится инициализация и настройка свойств класса ExtExpert.

1. Инициализация класса ExtExpert:

Инициализация объекта ExtExpert производится вызовом метода Init, в котором устанавливается символ, таймфрейм, флаг вызова методов обработки на каждом тике, идентификатор эксперта, а также создаются и инициализируются внутренние объекты классов (на этом этапе в качестве объектов сигналов, трейлинга и управления капиталом используются базовые классы CExpertSignal, CExpertMoney, CExpertTrailing).

2. Создание и настройка свойств объекта Signal

Настройка объекта торговых сигналов состоит из нескольких этапов:

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

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

3. Создание и настройка свойств объекта Trailing

Настройка объекта трейлинга также состоит из 4 этапов:

4. Создание и настройка свойств объекта money

Настройка объекта управления капиталом и рисками также состоит из 4 этапов:

5. Инициализация всех индикаторов, используемых в классах

После создания и инициализации объектов торговых сигналов, трейлинга и управления капиталом вызывается метод ValidationSettings() объекта ExtExpert, в котором производится проверка настроек и метод InitIndicators(), в котором производится инициализация индикаторов, используемых в объектах signal, trailing и money.

Обработка событий OnDeinit, OnTick, OnTrade и OnTimer осуществляется вызовом соответствующих методов класса ExtExpert.

С подробностями реализации методов класса CExpert можно ознакомится в коде индикатора, расположенном в файле \папка терминала\MQL5\Include\Expert\expert.mqh

3. Проверка созданного советника в тестере стратегий MetaTrader 5

Если все компоненты Стандартной библиотеки присутствуют, код сгенерированного эксперта успешно компилируется:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 11. Успешная компиляция кода эксперта, созданного Мастером MQL5

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

Работу построенной торговой системы можно проверить при помощи Тестера стратегий терминала MetaTrader 5. На рис. 11 приведены результаты тестирования на исторических данных с параметрами по умолчанию (EURUSD, H1, период тестирования: 2010.01.01-2011.06.01):

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис. 12. Результаты тестирования советника на исторических данных (EURUSD, H1)

Наилучший набор параметров советника можно найти при помощи оптимизации в тестере стратегий терминала MetaTrader 5.

Заключение

Использование классов торговых стратегий значительно упрощает создание и проверку торговых идей. Теперь код эксперта можно конструировать прямо в редакторе MetaEditor при помощи Мастера MQL5 на базе готовых модулей Стандартной библиотеки либо при помощи своих собственных модулей.

Если же вы не хотите или не можете написать собственный модуль торговых сигналов, то всегда можно обратиться в сервис Работа и заказать даже не сам код торгового робота, а только необходимый модуль. Такой подход дает дополнительные преимущества:

Источник

Знакомство с MQL5: написание простого советника и индикатора

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Введение

Язык программирования MetaQuotes Language 5 (MQL5), входящий в торговый терминал MetaTrader 5, обладает новыми возможностями и более высоким быстродействием, по сравнению с языком MetaQuotes Language 4 (MQL4). Эта статья поможет познакомиться с новым языком программирования. В ней приведен пример написания простого советника и индикатора, также описывается язык MQL5 в объеме, необходимом для понимания приведенных примеров.

Более подробную информацию по материалу и полное описание языка можно найти в справочнике MQL5, входящем в комплект MetaTrader 5. Встроенного справочника достаточно для изучения языка. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.

Знакомство с MQL5

Торговая платформа MetaTrader 5 позволяет проводить анализ финансовых инструментов и вести торговлю, как вручную, так и в автоматическом режиме. MetaTrader 5 имеет некоторые отличия от своего предшественника MetaTrader 4, в частности, уточнены такие понятия, как позиция, сделка, ордер.

Язык программирования MQL5, встроенный в торговый терминал MetaTrader 5, позволяет писать программы, имеющие различное назначение:

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

Для написания программы (советника, индикатора или скрипта) необходимо запустить торговый терминал MetaTrader 5 и в меню Сервис выбрать пункт Редактор MetaQuotes Language или нажать клавишу F4.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.1. Вызов редактора MetaEditor

В появившемся окне программы MetaEditor необходимо в меню Файл выбрать пункт Создать или нажать комбинацию клавиш Ctrl+N.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.2. Создание новой программы

Появится окно мастера MQL5, в котором необходимо выбрать тип создаваемой программы.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

На следующем шаге можно указать название программы, данные о ее авторе и параметры, которые будут запрошены у пользователя при запуске.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.4. Задание общих параметров создаваемой программы

После этого создается шаблон программы (советника, индикатора, скрипта), который можно редактировать и наполнять:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.5. Шаблон новой программы

После написания текста программы, ее необходимо скомпилировать. Для этого в меню Файл нужно выбрать пункт Компилировать или нажать клавишу F7:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Программа на языке MQL5 представляет собой набор операторов. Каждый оператор заканчивается символом «точка с запятой (;)». Для удобства, в тексте программы можно указывать комментарии, они располагаются между комбинациями символов «/*» и «*/» или от «//» до конца строки. Язык MQL5 является событийно-ориентированным, это означает, что при наступлении определенных событий (запуск или удаление программы, приход новой котировки, и т.д.) запускается соответствующая функция (подпрограмма), написанная пользователем, которая выполняет определенные действия. В MQL5 существуют следующие предопределенные события:

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

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

Торговая система, используемая в данной статье в качестве примера, основана на том предположении, что утром открываются финансовые организации в Европе, а позже и в США, выходят экономические новости, что приводит к возникновению направленного движения валютной пары EUR/USD. Период графика не имеет значения, но рекомендуется использовать минутный график, так как на нем виден день (или часть дня) и удобно наблюдать за происходящим.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.7. Торговая система

В 7 часов утра (по серверному времени) выставляются отложенные ордера Buy Stop и Sell Stop на расстоянии 1 пункт за диапазоном цен текущего дня (Buy Stop выставляется с учетом спрэда). Уровни StopLoss выставляются за противоположной границей диапазона. После срабатывания ордера, его StopLoss перемещается на простую скользящую среднюю только в том случае, если при этом он окажется в «прибыльной» зоне.

Такое сопровождение позиции имеет преимущество по сравнению с классическим скользящим стопом (Trailing Stop) в том, что удается избежать досрочного закрытия позиции при резких скачках цены, сопровождающихся большими откатами, но, в то же время, это способствует закрытию позиции при завершении направленного и возникновении бокового движения. Простая скользящая средняя вычисляется по данным минутного графика и имеет период усреднения 240.

Уровень фиксации прибыли зависит от текущей волатильности рынка. Для ее определения используется индикатор Average True Range (ATR) с периодом 5, вычисленный по данным дневного графика (таким образом, он показывает средний дневной диапазон цен за последнюю неделю). Для определения уровня TakeProfit длинной позиции, отложим от минимального значения цены текущего дня вверх значение индикатора ATR. Аналогично, для коротких позиций отложим от максимального значения цены текущего дня вниз значение индикатора ATR.

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

Пишем индикатор

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

Если в качестве первого символа в строке используется символ #, то эта строка является директивой препроцессора. Директивы препроцессора служат для указания дополнительных свойств программ, объявления констант, указания включаемых файлов и импортируемых функций. После директив препроцессора, в отличие от всех остальных случаев, символ «точка с запятой (;)» не ставится.

Свойства copyright и link указывают информацию об авторе и его web-страницу, свойство description позволяет задать краткое описание, а свойство version позволяет указать версию программы. При вызове индикатора эта информация будет видна в следующем виде:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.8. Информация об индикаторе

Для индикаторов необходимо указать расположение: на графике цены или в отдельном окне. Это можно сделать, указав свойство indicator_chart_window или indicator_separate_window:

Для каждой из линий индикатора укажем тип линии (свойство indicator_type), цвет (свойство indicator_color), стиль отрисовки (свойство indicator_style) и текстовую метку (свойство indicator_label):

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.9. Описание линий индикатора

С помощью модификатора input укажем внешние переменные, значения которых пользователь сможет задавать при запуске индикатора, их тип и значения по умолчанию:

Если указать в комментарии название параметра, оно будет видно при задании входных параметров вместо названия переменной:

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

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

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

Массивы bu[] и bd[] будут использоваться для данных верхней и нижней линий индикатора. Используем динамические массивы (то есть без указания количества элементов), так как количество элементов заранее неизвестно (для них автоматически будет распределен необходимый размер). В переменной hATR будем хранить хэндл (указатель) встроенного технического индикатора ATR для обращения к нему.

Функция OnInit вызывается при запуске индикатора (наложении его на график).

Тело функции OnCalculate заключено в фигурные скобки. Указываем локальные переменные, используемые в этой функции и их тип.

Скопируем два элемента, так как нас интересует только предпоследний элемент, соответствующий последнему завершенному (закрытому) бару. Последним параметром указывается массив, в который копируются данные.

Оператор for позволяет создать цикл.

На первом месте в операторе for находится оператор, который выполняется один раз перед началом цикла. В данном случае, это оператор присваивания i=prev_calculated. На втором месте находится выражение, в данном случае это i PeriodSeconds возвращает количество секунд во временном периоде, который задается в качестве единственного параметра. Переменная day_t содержит номер дня, к которому относится бар, имеющий индекс i, а переменная day_n содержит номер дня, для которого в данный момент вычисляется максимальное и минимальное значение.

На этом тело функции OnCalculate завершается. Оператором return возвращаем количество баров, для которых вычислено значение индикатора, и закрываем фигурную скобку.

На этом написание индикатора закончено. Для его компиляции выбираем в меню Файл пункт Компилировать или нажимаем клавишу F7. Если в тексте программы отсутствуют ошибки, то компиляция проходит успешно, о чем можно узнать на вкладке Ошибки. При компиляции данного индикатора появляется предупреждение о том, что возможна потеря данных при преобразовании в следующей строке:

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

Когда индикатор написан и скомпилирован, его можно накладывать на график цены в торговом терминале MetaTrader 5 или использовать его в других индикаторах, советниках и скриптах. По ссылке в конце статьи можно загрузить исходный текст этого индикатора.

Пишем советник

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

Назначение этих директив препроцессора уже рассмотрено при написании индикатора. В советнике они работают аналогично.

Укажем значения входных параметров, которые пользователь сможет задать при запуске советника, их тип и значения по умолчанию:

Параметры StartHour и EndHour задают промежуток времени (с которого и по который час), в течение которого должны быть установлены отложенные ордера. Параметр MAper задает период усреднения простой скользящей средней, по которой перемещается StopLoss открытой позиции при ее сопровождении. Параметр Lots задает объем финансового инструмента, который используется при торговле.

Укажем на глобальном уровне переменные, которые будут использоваться в различных функциях:

Функция OnInit выполняется при запуске советника.

Тело функции заключено в фигурные скобки.

Укажем предопределенные структуры данных, которые будут использоваться в советнике:

Укажем локальные переменные, которые будем использовать в функции OnTick и их тип:

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

Занесем в структуру request значения, которые будут общими для большинства случаев вызова функции OrderSend в этой программе:

При помощи функции TimeCurrent получим текущее серверное время (время последней котировки). Единственным параметром этой функции является указатель на структуру, в которую будет занесен результат.

После того, как ценовые данные скопированы в массивы t[], h[] и l[], для них при помощи функции ArraySetAsSeries (уже описанной в этой статье ранее) установим флаг AS_SERIES, чтобы порядок элементов в массивах был как в таймсериях (от текущих цен к более старым):

В переменных lev_h и lev_l вычисляем максимальное и минимальное значение цены текущего дня, перебирая значения минимальных и максимальных цен всех баров, относящихся к текущему дню:

После прибавления к переменной lev_h одного пункта (значение предопределенной переменной _Point равно стоимости одного пункта в единицах цены) и увеличением ее на величину Spread (спрэд, выраженный в единицах цены), получаем цену открытия для отложенного ордера Buy Stop (запись lev_h+=Spread+_Point равносильна записи lev_h=lev_h+Spread+_Point). После вычитания из переменной lev_l одного пункта, получаем цену открытия для отложенного ордера Sell Stop (запись lev_l-=_Point равносильна записи lev_l=lev_l-_Point).

Для массива ma[] устанавливается флаг AS_SERIES, таким образом устанавливаем направление индексации как у таймсерии:

Массивы atr_h и atr_l содержат по одному элементу, поэтому направление индексации для них не имеет значения. Так как значение atr_l[0] будет использоваться для определения уровня TakeProfit короткой позиции, короткие позиции закрываются по цене Ask, а ценовые графики и индикаторы от них построены по цене Bid, к atr_l[0] прибавляем спрэд:

Функция PositionsTotal возвращает общее количество открытых позиций (параметры у этой функции отсутствуют). Нумерация индексов позиций производится с нуля. Создадим цикл, в котором будут перебраны все открытые позиции:

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

Так как, возможно, будет необходимо менять параметры StopLoss и TakeProfit открытых позиций, занесем в элемент структуры request.action значение TRADE_ACTION_SLTP. Далее происходит разделение позиций на длинные и короткие. Для длинных позиций определяется уровень StopLoss.

Для определения возможности установить StopLoss и TakeProfit на требуемых уровнях, проверяем, не окажутся ли они слишком близко от текущей цены. Новое значение StopLoss должно быть ниже текущей цены Bid более, чем на величину STOP_LEVEL. Новое значение TakeProfit должно быть выше текущей цены Bid более, чем на величину STOP_LEVEL. В операциях отношения используется нормализованная разность, так как сравниваемые величины могут отличаться в последних десятичных знаках из-за погрешности, вызванной преобразованием из внутреннего представления чисел типа double в виде двоичного числа с плавающей запятой в десятичное число с плавающей запятой.

Если есть необходимость изменить уровень StopLoss или TakeProfit для открытой позиции, и новые значения допустимы по правилам торговли, заносим новые значения StopLoss и TakeProfit в соответствующие элементы структуры и вызываем функцию OrderSend для отправки данных на торговый сервер.

Функция OrdersTotal возвращает общее количество установленных отложенных ордеров (параметры у этой функции отсутствуют). Нумерация индексов ордеров производится с нуля. Создадим цикл, в котором будут перебраны все установленные отложенные ордера:

Функцией OrderGetTicket выбираем ордер для дальнейшей работы с ним, а также, заносим тикет ордера в переменную ticket. У этой функции в качестве параметра указывается номер ордера в списке ордеров. Функцией OrderGetString получаем символьное имя инструмента, параметром этой функции является идентификатор свойства ордера. Сравниваем символьное имя инструмента с именем инструмента текущего графика, таким образом выбирая ордера только по инструменту, на котором работает советник. Определяем тип ордера при помощи функции OrderGetInteger, параметром этой функции является идентификатор свойства ордера. Ордера Buy Stop и Sell Stop будем обслуживать раздельно.

Если текущий час попадает в диапазон от StartHour до EndHour и цена открытия ордера Buy Stop не превышает верхнюю линию индикатора, корректируем цену открытия ордера и уровень StopLoss (если в этом есть необходимость), иначе удаляем ордер.

Ордера Sell Stop обслуживаются аналогично ордерам Buy Stop.

Теперь займемся установкой отложенных ордеров Buy Stop и Sell Stop, если какой-то из них еще отсутствует. Заносим в элемент структуры request.action значение TRADE_ACTION_PENDING (означающее, что будет установка отложенного ордера).

В функции OnDeinit освобождаем ресурсы, занимаемые индикаторами. Для этого используем функцию IndicatorRelease (она были рассмотрена выше, при написании индикатора).

Запуск и отладка

После того, как советник и индикатор готовы, рассмотрим, как их запускать на исполнение и как проводить отладку при помощи встроенного в MetaEditor отладчика.

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

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.11. Запуск советника

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

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

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

Аналогично советникам и индикаторам запускаются и скрипты.

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

Запустить программу на отладку можно, выбрав в редакторе MetaEditor в меню Отладка пункт Начать или нажав клавишу F5. Программа будет скомпилирована и запущена в отладочном режиме в отдельном окне графика, период которого и символьное имя финансового инструмента можно указать в настройках редактора MetaEditor, выбрав в меню Сервис пункт Настройки, на вкладке Отладка.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

В тексте программы можно устанавливать или убирать точки останова (breakpoints), это можно сделать нажатием клавиши F9, двойным щелчком левой клавиши мыши на сером поле слева от строки программы или выбрав в меню Отладка пункт Переключить точку останова. При отладке выполнение программы будет остановлено перед оператором, на строке которого находится точка останова. В окне Инструменты редактора MetaEditor появится вкладка Отладка.

как сделать мониторинг счета на mql5. Смотреть фото как сделать мониторинг счета на mql5. Смотреть картинку как сделать мониторинг счета на mql5. Картинка про как сделать мониторинг счета на mql5. Фото как сделать мониторинг счета на mql5

Рис.14. Отладка программы

Пошагово выполнять программу можно нажимая клавиши F11, F10 или комбинацию клавиш Shift+F11.

Зеленая стрелка слева от текста программы указывает на строку, которая будет выполняться.

Заключение

В данной статье приведен пример написания простого советника и индикатора, даны основы языка MQL5.

Торговая система, приведенная здесь, выбрана в качестве примера, за ее использование автор ответственности не несет.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *