Справка по MetaTrader 5

Оптимизация стратегий

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

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

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

К тестеру стратегий может быть подключено неограниченное количество агентов, работающих удаленно. Помимо этого в тестере стратегий доступна для использования огромная сеть облачных вычислений MQL5 Cloud Network. Она объединяет тысячи агентов по всему миру, и эта вычислительная мощь доступна любому пользователю торговой платформы.

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

Как провести оптимизацию #

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

Посмотреть видео: Бесплатное тестирование советников и индикаторов перед покупкой

Посмотреть видео: Бесплатное тестирование советников и индикаторов перед покупкой

Посмотрите краткое видео, как протестировать торгового робота перед покупкой в Маркете. Для тестирования в Маркете имеются специальные демо-версии, которые можно проверить в Тестере стратегий. О том, как это делается мы и расскажем в этом видео.

Быстрый выбор задачи оптимизации #

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

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

Выберите одну из типовых задач на стартовой странице, чтобы быстро перейти к тестированию

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

Ниже будут рассмотрены все доступные параметры оптимизации.

Выбор торгового робота для тестирования #

Выполните команду "Тестировать Тестировать" в контекстном меню нужного советника в окне "Навигатор".

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

После этого советник будет выбран в тестере стратегий.

Включение необходимых символов в окне "Обзор рынка" для мультивалютных экспертов #

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

История по используемым инструментам закачивается тестером из торговой платформы (не с торгового сервера!) автоматически при первом обращении к данному инструменту. С торгового сервера докачивается только недостающая история.

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

Включение необходимых символов в окне "Обзор рынка" для мультивалютных экспертов

Выбор настроек оптимизации #

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

Выбор настроек тестирования

Символ и период

Выберите основной график для тестирования и оптимизации. Выбор символа необходим для срабатывания событий OnTick(), заложенных внутри экспертов. Также выбранные символ и период влияют на специальные функции в коде советника, которые используют параметры текущего графика (например, Symbol() и Period()). Иными словами, здесь выбирается график, к которому был бы присоединен советник.

Интервал

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

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

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

Форвард-период

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

На первой части периода проводится оптимизация советника. После этого отбираются лучшие прогоны (10% при полном переборе параметров или 25% при генетическом алгоритме), и только они запускаются на форвард-периоде. Результаты лучших прогонов при оптимизации на обоих периодах затем можно сравнить на вкладках "Результаты оптимизации" и "Результаты форвард тестирования".

Режим торговли

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

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

Обратите внимание, задержка работает только для операций, совершаемых экспертом (выставление ордеров, изменение стоп-уровней, и т.д.). Например, если эксперт работает отложенными ордерами, то задержка будет применяться только к самой операции выставления ордера, но не во время его срабатывания (в реальных условиях срабатывание происходит на сервере, сетевой задержки нет).

Без задержки

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

Произвольная задержка

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

Таким образом, вероятность задержки исполнения на 0-8 секунд составляет 90%, а вероятность задержки на 9-18 секунд составляет 10%.

Фиксированная задержка

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

Режим генерации тиков

Выберите один из режимов генерации тиков:

  • Все тики — наиболее точный, но и наиболее медленный режим моделирования. В нем моделируются все тики.
  • Каждый тик на основе реальных тиков — максимально приближенный к реальным условиям режим. Используются реальные тики, накопленные брокером по финансовым инструментам. Моделирование не осуществляется. Тиковые данные имеют большой размер, при первом запуске тестирования их скачивание с сервера брокера может занять продолжительное время.
  • OHLC на М1 — в данном режиме моделируются лишь 4 цены каждого минутного бара — цены Open, High, Low и Close.
  • Только цены открытия — в данном режиме моделируются также цены OHLC, однако для тестирования/оптимизации используется лишь цена открытия.
  • Математические вычисления — в данном режиме тестер не будет подкачивать исторические данные, информацию о символах и не будет генерировать тики. Будут вызваны только функции OnInit(), OnTester() и OnDeinit(). Таким образом тестер можно использовать для различных математических вычислений, где требуется подбор параметров.

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

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

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

Начальный депозит и плечо

Укажите объем начального депозита для тестирования и оптимизации советника. По умолчанию используется валюта депозита счета, который в данный момент подключен, но вы можете указать любую другую. При этом учитывайте, что для корректного тестирования на счете должны быть доступны кросс-курсы для пересчета прибыли и маржи в указанную валюту депозита. В качестве кросс-курсов могут быть использованы только инструменты с типом расчета "Forex" или "Forex No Leverage".

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

Быстрый переход к редактированию советника

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

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

Используйте это меню для удобного управления настройками тестера: сохраняйте наборы настроек для разных экспертов в виде ini-файлов, чтобы потом возвращаться к ним в пару кликов. Вы также можете скопировать текущие настройки оптимизации в буфер обмена, просто нажав Ctrl+C. Далее отредактируйте их в любом текстовом редакторе, скопируйте и загрузите в тестер, нажав Ctrl+V.

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

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

Собственные настройки символа для тестирования

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

Расширенные настройки тестирования

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

Оптимизация

Выберите режим оптимизации:

  • Медленная (полный перебор параметров) — перебор всех возможных комбинаций выбранных входных параметров.
  • Быстрая (генетический алгоритм) — поиск оптимальных входных параметров на основе генетического алгоритма.
  • Все символы, выбранные в окне "Обзор рынка" — тестирования одного и того же набора входных параметров, но на разных торговых инструментах.

Более подробная информация о доступных режимах приведена в отдельном разделе.

Критерий оптимизации

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

  • Следует понимать, что указание символа не означает, что тестер будет использовать только эти исторические данные. Информацию по всем символам, задействованным в советнике, тестер загружает себе автоматически.
  • Перед началом тестирования/оптимизации в платформу автоматически загружаются все доступные ценовые данные по символу основного графика. При медленном интернет-соединении это может занять продолжительное время.
  • Скачивание всех данных происходит однократно, при последующих запусках загружается лишь недостающая информация.
  • Для тестирования/оптимизации можно выбрать только те символы, которые включены в данный момент в окне "Обзор рынка".
  • Во время тестирования и оптимизации ценовые данные по всем необходимых символам скачиваются с сервера автоматически.
  • Тестирование начинается и заканчивается в 00ч.00м.00с. указанных дней. Однако начальная дата тестирования/оптимизации включается в период тестирования, а конечная дата не включается. Тестирование заканчивается на последнем тике предыдущего дня. Также нельзя указать конечную дату больше текущей. В таком случае тестирование все равно будет проведено по текущую дату (не включая ее).

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

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

  • Настройки тестера стратегий запоминаются в момент запуска тестирования/оптимизации.
  • При штатной остановке оптимизации (кнопкой "Стоп") сохраняются все ранее рассчитанные проходы. При возобновлении оптимизации, процесс будет продолжен с места остановки.

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

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

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

Выбор входных параметров для оптимизации

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

Наборы параметров. Чтобы вы могли в любой момент вернуться к текущим настройкам MQL5-программы, сохраните набор параметров через контекстное меню:

  • Чтобы сохранить набор в виде set-файла на компьютере, нажмите "Сохранить". Такие файлы можно переносить между платформами на разных компьютерах, передавать другими пользователям.
  • Чтобы сохранить набор для последующего удобного использования в текущей платформе, нажмите "Сохранить набор". Сохраненные таким образом параметры будут доступны в подменю "Загрузить версию". Их можно в любой момент применить, просто выбрав из списка.

Расширенные настройки тестирования #

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

Расширенные настройки тестирования позволяют моделировать различные торговые условия на счетах у брокеров

Общие настройки

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

Маржа

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

Настройки маржи

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

Уровень средств на счете, при достижении которого он переходит в состояние Margin call.

Уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).

В данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:

  • Не использовать нереализованную прибыль/убыток — не учитывать открытые позиции при расчете.
  • Использовать нереализованную прибыль/убыток — использовать при расчете убыток и прибыль по открытым позициям.
  • Использовать нереализованную прибыль — использовать только прибыль.
  • Использовать нереализованный убыток — использовать только убыток.

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

  • Использовать дневную фиксированную прибыль/убыток — учитывать прибыль и убыток, зафиксированные в течение торгового дня, в свободной марже.
  • Использовать дневной фиксированный убыток — учитывать только убыток, зафиксированный в течение торгового дня, в свободной марже. В течение дня накопленная прибыль фиксируется в отдельном поле счета ("Заблокировано"). По окончании торгового дня накопленная прибыль освобождается (обнуляется) и отражается на балансе счета (учитывается в свободной марже).

Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.

Комиссия

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

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

Чтобы использовать настройки комиссии текущего торгового счета, включите опцию "Использовать предопределенные комиссии".

Настройки комиссий

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

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

Комиссию можно взимать немедленно после каждой совершенной сделки или же накапливать в течение торгового дня или месяца и затем взимать единой операцией:

  • Немедленное — комиссии начисляются немедленно при каждом совершении сделки. Размер комиссии, начисляемой немедленно, отображается в поле "Комиссия" сделок. При немедленном начислении уровни комиссий указываются в объеме (не в обороте).
  • Ежедневное — сумма комиссий накапливается в течение дня в специальном поле состояния счета "Заблокировано". В конце дня накопленная сумма списывается со счета отдельной балансовой операцией (сделка с типом Daily commission или Daily agent commission).
  • Ежемесячное — сумма комиссий накапливается в течение месяца в специальном поле состояния счета "Заблокировано". В конце месяца накопленная сумма начисляется/списывается со счета отдельной балансовой операцией (сделка с типом Monthly commission или Monthly agent commission).

Также комиссию можно взимать в зависимости от объема каждой сделки или от ежедневного или ежемесячного оборота. От выбранного варианта зависит, объемы чего указываются в полях "От" и "До" — сделки или оборота.

  • Объем — уровни комиссии задаются по объему (количеству лотов) каждой совершенной торговой операцией сделки. Например, если задать уровни 0 — 10 и 12 — 20, сделка объемом 15 лотов попадет во второй уровень комиссии. Этот вариант используется, если выбран режим "Ежедневно", "Ежемесячно" или "Немежденно".
  • Оборот в деньгах — уровни комиссии задаются по обороту в деньгах за выбранный период (день или месяц). Например, заданы уровни 0 — 500, 501 — 1000, начисление производится ежемесячно. Пока общая стоимость операций не превышает 500 единиц, будет взиматься комиссия в соответствии с первым уровнем. Как только денежный оборот превысит значение 500, комиссия за последудющие сделки будет взиматься в соответствии со вторым уровнем.
    По умолчанию, оборот в деньгах рассчитывается в валюте депозита: рассчитывается стоимость каждой сделки, а затем эта стоимость приводится к валюте депозита. Например, стоимость позиции Buy 1 lot EURUSD при размере контракта 100 000 составляет 100 000 EUR. Если вы используете валюту депозита USD, стоимость позиции будет сконвертирована по курсу EURUSD на момент совершение сделки (в данном случае, по цене сделки).
  • Оборот в объеме — уровни комиссии задаются по совокупному объему торговых операций (количество лотов) за выбранны период (день или месяц).

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

По сделкам разворота в режиме "Сделки входа" комиссия взимается только с объема вновь открытой позиции, в режиме "Сделки выхода" — только с закрытого объема. Для сделок на закрытие позиции встречной (Close By) действуют следующие правила:

  • При настройках "Сделки входа/выхода" и "Сделки входа" комиссия со сделок Close By не взимается, так как она уже удержана со сделок, образовавших обе позиции. Например, комиссия взимается в размере 1 USD за каждую сделку. При совершении сделок входа Buy 1.00 EURUSD и Sell 1.00 EURUSD с клиента будет удержана комиссия в размере 2 USD. При закрытии позиции 1.00 EURUSD позицией Sell 1.00 EURUSD с клиента не будет удержана комиссия.
  • При настройке "Сделки выхода" комиссия взимается с обеих сделок Close By, ее итоговое значение записывается в основную сделку выхода (в которой указана прибыль/убыток). Например, комиссия взимается в размере 1 USD за каждую сделку. При совершении сделок входа Buy 1.00 EURUSD и Sell 1.00 EURUSD с клиента не будет удержана комиссия. При закрытии позиции 1.00 EURUSD позицией Sell 1.00 EURUSD будет удержана комиссия в размере 2 USD. В первой сделке out by будет указана комиссия 2 USD, во второй сделке out by комиссия будет указана как нулевая.

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

Максимальный объем сделки (оборота), с которого будет взиматься данная комиссия; Настраиваемые диапазоны не должны пересекаться. В противном случае, комиссия будет начислена по всем диапазонам, в которые попадет торговая операция.

Объем комиссионных сборов. Единицы измерения зависят от способа начисления комиссии, выбираемого в поле "Режим".

Минимальный объем взимаемой комиссии. Единицы, в которых указывается значение, зависят от выбранного способа начисления (в базовой валюте, валюте группы, пунктах и т.д.). Чтобы не ограничивать минимальный размер комиссии, установите значение 0.

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

Единицы расчета комиссионных соборов:

  • Валюта депозита — комиссионные сборы будут рассчитываться в валюте депозита, указанной для группы.
  • Базовая валюта — комиссионные сборы будут рассчитываться в базовой валюте символа, по которому совершена сделка.
  • Валюта прибыли — комиссионные сборы будут рассчитываться в валюте прибыли символа, по которому совершена сделка.
  • Валюта маржи — комиссионные сборы будут рассчитываться в валюте расчета маржевых требований, указанной для символа, по которому совершена сделка.
  • Пункты — комиссия будет начисляться в пунктах цены символа, по которому совершаются сделки. Стоимость пункта рассчитывается как прибыль по аналогично направленной позиции объемом 1 лот при разнице цен закрытия и открытия в 1 пипс (пункт).
  • Проценты — этот способ расчета позволяет взимать комиссию в процентах от реальной стоимости сделки или оборота. Стоимость вычисляется в базовой валюте символа как произведение его цены, размера контракта и объема в лотах (для всех фьючерсных и опционных инструментов: объем в лотах * размер тика / цена тика). По умолчанию, рассчитанная в базовой валюте стоимость сделки/оборота конвертируется в валюту депозита, и от полученного значения рассчитывается итоговая комиссия (указанный процент).

Тип начисления комиссии:

  • За сделку — при выборе данного типа комиссионные сборы будут взиматься с каждой совершенной сделки.
  • За объем — данный тип начисления позволяет взимать комиссию с объема (с каждого лота) совершаемых сделок. Учитывается только исполненный объем торговых запросов.

Собственные настройки символа тестирования #

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

Меняйте любые настройки основного символа тестирования для проверки стратегии в разных торговых условиях

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

Если настройки инструмента изменены, вы увидите специальную иконку

Запуск оптимизации #

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

Где посмотреть результаты оптимизации #

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

Подробная информация о показателях представлена в разделе "Отчет о тестировании".

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

Результаты оптимизации

Для каждого прохода оптимизации выводятся следующие показатели:

  • Проход — номер прохода.
  • Результат — итоговое значение параметра, являющегося критерием оптимизации, по которому отбираются наилучшие проходы.
  • Прибыль — полученная прибыль/убыток по результатам прохода.
  • Всего трейдов — общее количество трейдов (сделок, которые привели к фиксации прибыли или убытка), совершенных за данный проход.
  • Прибыльность — отношение общей прибыли к общему убытку в процентах. Единица означает, что сумма прибылей равна сумме убытков.
  • Матожидание выигрыша — этот статистически рассчитываемый показатель отражает среднюю прибыльность/убыточность одной сделки.
  • Просадка — относительная просадка средств, наибольший убыток в процентах от максимального значения средств. Снятие средств(Withdrawal) советником во время оптимизации учитывается при расчете просадки.
  • Фактор восстановления —  данный показатель отображает рискованность стратегии, какой суммой советник рискует чтобы заработать полученную прибыль. Он вычисляется как отношение полученной прибыли к максимальной просадке.
  • Коэффициент Шарпа — данный показатель характеризует эффективность и стабильность стратегии. Он отображает соотношение среднеарифметической прибыли за время удержания позиции к стандартному отклонению от нее. В дополнение, здесь учитывается значение безрисковой ставки, являющейся прибылью по вкладу соответствующей суммы на банковский депозит.
  • Оптимизируемый параметр(ы) — в дополнение к общим статистическим показателям здесь отображаются значения входных переменных установленные для данного прохода.

При помощи команд контекстного меню можно скрывать/показывать некоторые из вышеуказанных столбцов. Для удобства включите опцию "Автопереключение на результаты" после завершения оптимизации тестер стратегий будет автоматически переключаться на вкладку результатов. Аналогичная команда доступна в контекстном меню вкладки "Журнал".

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

  • где не было ни одной сделки
  • где робот показал убытки
  • где просадка более 50%
  • где фактор восстановления ниже 1
  • где коэффициент Шарпа меньше 0.5

Для удобного визуального анализа проходов таблица результатов оптимизации раскрашивается:

  • Баланс — синим цветом раскрашиваются значения выше начального депозита, красным — ниже.
  • Прибыль — синим цветом раскрашиваются значения выше нуля, красным — ниже.
  • Матожидание выигрыша — синим цветом раскрашиваются значения выше нуля, красным — ниже.
  • Просадка — от зеленого (0-5%) до красного (выше 30%).
  • Коэффициент Шарпа — от зеленого (больше 2) до красного (ниже 0).
  • Фактор восстановления — от зеленого (больше 2) до красного (ниже 1).
  • Если оптимизация проходила с форвард-тестированием, то в данной вкладке отображаются соответствующие значения параметра оптимизации (критерия оптимизации) для бэк-теста и форвард-теста. Переключение между режимами просмотра результатов бэк-тестирования и форвард-тестирования осуществляется с помощью контекстного меню.
  • Двойное нажатие левой кнопкой мыши на одном из результатов оптимизации запускает тестирование советника с параметрами этого прогона (при условии, что оптимизация закончена).
  • Во время генетической оптимизации возможна ситуация, когда очередной проход (член популяции) имеет абсолютно идентичные входные параметры (гены) с ранее протестированным проходом. В таком случае на вкладке результатов данный проход не отображается, поскольку имеет идентичный результат тестирования. Однако на графике оптимизации отображаются все проходы без исключения для того, чтобы показать процесс поиска наилучшего результата.
  • Если строка прохода оптимизации имеет красный фон, это означает, что во время работы советника произошла ошибка. Соответствующая запись также выводится в журнал тестера ("tested with error").

Кэш оптимизации #

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

Кэш оптимизации хранится в папке [каталог данных платформы]\Tester\cache в виде бинарных файлов отдельно для каждого набора оптимизируемых параметров каждого эксперта. Файлы именуются по следующему правилу: ExpertName.Symbol.Period.StartDate.EndDate.GenerationModeOptimizationMode.Hash.opt. Здесь:

  • ExpertName — наименование оптимизируемого эксперта.
  • Symbol — символ.
  • Period — таймфрейм (M1,H1,...).
  • StartDate — начальная дата оптимизации.
  • EndDate — конечная дата оптимизации.
  • GenerationModeрежим генерации тиков: 0 — "Все тики", 1 — "Каждый тик на основе реальных тиков", 2 — "OHLC на M1", 3 — "Только цены открытия", 4 — "Математические вычисления".
  • OptimizationModeтип оптимизации: 0 — "Медленная (полный перебор параметров)", 1 — "Быстрая (генетический алгоритм)", 2 — "Все символы, выбранные в окне 'Обзор рынка' ".
  • Hash — хэш-производная от всех вышеперечисленных параметров, используется для поиска кэш-файлов.

Благодаря кэш-файлам, вы всегда можете посмотреть результаты ранее выполненных оптимизаций. Откройте вкладку "Результаты оптимизации", выберите эксперта и файл с кэшем оптимизации:

Просмотр результатов ранее выполненных оптимизаций

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

Здесь же вы можете изменить критерий оптимизации, выбранный при запуске оптимизации. Он отображается в колонке "Результат" и определяет качество тестируемого набора входных параметров. Чем больше значение критерия оптимизации, тем лучше оценивается результат тестирования с данным набором параметров. Выберите нужный критерий из списка в верхней части вкладки, и тестер автоматически пересчитает все значения в колонке "Результат".

Для анализа в сторонних программах, например, Office Excel, отчет оптимизации можно сохранить в виде файла командой "Экспортировать в XML Экспортировать в XML" в контекстном меню. Также в контекстном меню доступны команды для экспорта и импорта кэш-файлов. Используйте их для переноса результатов оптимизации между разными платформами.

  • Для оптимального использования дискового пространства кэш-файлы автоматически удаляются, если к ним не обращались в течение 30 дней.
  • При генетической оптимизации промежуточные результаты сохраняются в кэше после расчета каждого поколения (файл папка_данных_платформы/tester/cache/*.gen). Таким образом, процесс генетической оптимизации можно прерывать в любой момент. Даже если процесс генетической оптимизации будет прерван из-за внешних причин (например, отключения электричества), оптимизация будет автоматически продолжена с последнего рассчитанного поколения при последующем запуске. Кэш генетической оптимизации хранится до изменения настроек оптимизации или до завершения процесса оптимизации.
  • При штатной остановке оптимизации (кнопкой "Стоп") сохраняются все ранее рассчитанные проходы. При возобновлении оптимизации, процесс будет продолжен с места остановки.

Визуальное представление результатов оптимизации #

Тестер стратегий в торговой платформе обладает мощной системой визуализации результатов оптимизации. Откройте вкладку "График оптимизации". Здесь доступно несколько видов графиков, переключаться между ними можно через контекстное меню.

Нулевая линия (плоскость)

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

График с результатами и Линейный график (1D) #

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

График с результатами и Линейный график (1D)

На линейном графике (1D) отображается изменение параметра, являющегося критерием оптимизации (вертикальная ось) в зависимости от одного из оптимизируемых параметров, выбранного для отображения на горизонтальной оси. Чтобы выбрать параметр для отображения на горизонтальной оси, используйте команду "Ось X" в контекстном меню.

Плоский график (2D) и Объемный график (3D) #

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

Плоский график (2D) и Объемный график (3D)

В трехмерном режиме просмотра на осях X и Y откладываются изменения выбранных параметров, по которым проходила оптимизация. Изменения критерия оптимизации отображаются по вертикальной оси Z, а также при помощи цветового градиента.

Чтобы выбрать параметры для отображения на горизонтальной и вертикальной осях, используйте команды "Ось X" и "Ось Y" в контекстном меню.

Управление 3D графиком при помощи мышью

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

Управление 3D графиком при помощи клавиатуры

Действие

Клавиши

Включение/выключение координатной сетки.

G

Переключение между сплошной заливкой и заливкой при помощи линий.

Пробел

Движение камеры верх (график перемещается вниз).

Стрелка вверх

Движение камеры вниз (график перемещается вверх).

Стрелка вниз

Движение камеры вправо (график перемещается влево).

Стрелка вправо

Движение камеры влево (график перемещается вправо).

Стрелка влево

Приближение камеры (увеличение графика).

Плюс

Отдаление камеры (уменьшение графика).

Минус

Вращение графика на себя вокруг горизонтальной оси.

Home

Вращение графика от себя вокруг горизонтальной оси.

Page Up

Вращение графика вокруг вертикальной оси против часовой стрелки.

End

Вращение графика вокруг вертикальной оси по часовой стрелке.

Page Down

Перемещение нулевой плоскости вверх на единицу.

Ctrl+Стрелка вверх

Перемещение нулевой плоскости вниз на единицу.

Ctrl+Стрелка вниз

Перемещение нулевой плоскости вверх на 10 единиц.

Ctrl+Page Up

Перемещение нулевой плоскости вниз на 10 единиц.

Ctrl+Page Down

Перемещение нулевой плоскости в максимальное значение графика.

Ctrl+Home

Перемещение нулевой плоскости в минимальное значение графика.

Ctrl+End

Увеличение прозрачности нулевой плоскости.

Ctrl+Плюс

Уменьшение прозрачности нулевой плоскости.

Ctrl+Минус

Установить максимальную прозрачность нулевой плоскости (исчезает).

Ctrl+Стрелка вправо

Установить минимальную прозрачность нулевой плоскости (становится непрозрачной).

Ctrl+Стрелка влево

Вернуться к настройкам графика по умолчанию.

Клавиша "5" на цифровой клавиатуре.

Форвард тестирование для проверки робота на неоптимизированном участке #

Форвард-тестированием называется повторный прогон наилучших результатов оптимизации на другом временном периоде. Такая возможность предусмотрена для исключения подгонки параметров советников на определенных участках исторических данных.

Чтобы включить форвард-тестирование, на вкладке "Настройки" в поле "Форвард-период" укажите, какую часть общего периода необходимо использовать для него:

  • нет — не использовать форвард-тестирование;
  • 1/2 — использовать половину указанного периода для форвард-тестирования;
  • 1/3 — использовать треть указанного периода для форвард-тестирования;
  • 1/4 — использовать четверть указанного периода для форвард-тестирования;
  • пользовательский — при выборе данного поля в поле справа укажите дату, с которой будет начато форвард тестирование.

Форвард-период

  • Для форвард-тестирования всегда берется вторая (последняя) часть общего периода.
  • На графике оптимизации дата начала форвард-период отмечается вертикальной линией.

От периода, выбранного в поле "Использовать дату", отделяется выбранная часть. Первая часть называется периодом бэк-тестирования, вторая — периодом форвард-тестирования.

На периоде бэк-тестирования проводится полная оптимизация (медленная или быстрая) советника. Затем отбирается 10% (при полном переборе) или 25% (при генетическом анализе) лучших прогонов и они проходят тестирование на форвард-периоде.

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

Посмотреть результаты оптимизации на форвард периоде можно на вкладке "Оптимизации" (в контекстном меню нужно выбрать пункт "Результаты форвард-тестирования") или "Форвард-оптимизация". Чем больше совпадают результаты, тем больше вероятность того, что советник покажет положительные результаты при реальной торговле.

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

Результаты форвард-оптимизации

Более подробно о получаемой в результате тестирования информации можно узнать в разделе "Где посмотреть результаты тестирования" и "Визуальное представление результатов оптимизации".

Многопоточное тестирование с помощью агентов #

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

Агенты подразделяются на три типа: локальные, удаленные и облачные (MQL5 Cloud Network). Локальные агенты устанавливаются автоматически при установке торговой платформы. Их количество равно количеству логических ядер процессора компьютера.

Удаленные и облачные агенты работают на других компьютерах. Подробная информация о них доступна в разделах "Как ускорить оптимизацию за счет локальной фермы агентов" и "Как ускорить оптимизацию за счет сети облачных вычислений MQL5 Cloud Network".

Откройте раздел "Агенты" в тестере стратегий и выберите, какой тип агентов будет использован для оптимизации.

Агенты тестирования

Советы и особенности:

  • Для экономии батареи ноутбука можно отключить локальные агенты и использовать только удаленные и облачные.
  • Если тестирование/оптимизация завершена не принудительно (не нажатием кнопки "Стоп" на вкладке настроек и не закрытием торговой платформы), то процессы использованных локальных агентов в течение пяти минут не выгружаются из памяти компьютера. Это позволяет избежать задержек, связанных с подготовкой исторических данных и запуском процессов агентов, при повторных запусках тестирования/оптимизации того же эксперта на том же символе, периоде и временном интервале.
  • Вместе с торговой платформой устанавливаются только локальные агенты. Они используются только в тестере стратегий локальной платформы. Удаленные агенты, которые также можно подключить к глобальной вычислительной сети MQL5 Cloud Network, могут быть установлены только вручную.

Как ускорить оптимизацию за счет локальной фермы агентов #

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

Как создать ферму агентов #

На каждом компьютере локальной сети произведите установку агентов. Если на компьютере уже установлена торговая платформа, откройте менеджер агентов тестирования через меню "Сервис".

Менеджер агентов тестирования

В ином случае, скачайте отдельное приложение для управления агентами MetaTrader 5 Strategy Tester Agent и пройдите простой процесс установки.

На вкладке Службы в менеджере:

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

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

Удаленные агенты можно использовать только 64-х битных операционных системах.

Для экономии трафика и дискового пространства, а также из соображений безопасности на удаленных агентах:

  • в журнал не выводятся сообщения советников (функция Print()) и сообщения о торговых операциях;
  • запрещен вызов DLL.

Как подключить агенты #

Откройте тестер стратегий. На вкладке "Агенты" выберите пункт "Local Network Farm" и нажмите "Добавить" в контекстном меню.

Добавление удаленных агентов

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

Поиск агентов в локальной сети

Нажмите "Готово" и все найденные агенты станут доступными для тестирования.

Другие варианты добавления агентов:

  • Добавить агентов (по IP-адресу или доменному имени) — укажите IP-адрес или доменное имя сервера, на котором установлены агенты, диапазон портов, а также пароль для подключения к агентам.
  • Импортировать из файла *.mt5 — выберите эту опцию, нажмите "Далее" и укажите файл *.mt5, из которого будут импортированы агенты.

Агенты, установленные на компьютере через MetaTester 5 Agents Manager, можно подключить в качестве удаленных на этом же компьютере. Если у ядер процессора остается некоторый запас мощности при расчетах, это позволит увеличить их загрузку и использовать весь вычислительный потенциал.

Как изменить настройки агента #

Для изменения настроек агента выполнить команду "Правка Редактировать" в его контекстном меню.

Настройка агента

В окне настроек присутствуют следующие поля:

  • Имя — имя агента;
  • Адрес — IP-адрес и порт для подключения к агенту, разделенные двоеточием;
  • Пароль — пароль для подключения;
  • Включить — если убрать галочку с данной опции, агент не будет использоваться при тестировании и оптимизации.

В настройках локальных агентов доступна только опция их включения/выключения.

Импорт и экспорт настроек внешних агентов #

Для облегчения настройки внешних агентов в платформе предусмотрена возможность импорта и экспорта их настроек в текстовые файлы. Файлы настроек агентов имеют расширение *.mt5. Команды импорта и экспорта расположены в контекстном меню вкладки "Агенты".

Файл настроек агентов имеет следующий формат: Name;Address:port;Password;Description;Enable

  • Name — имя агента;
  • Address:port — IP-адрес и порт для подключения к агенту, разделенные двоеточием;
  • Password — пароль для подключения;
  • Description — описание оборудования, на котором работает агент;
  • Enable — режим работы агента: 1 — агент включен, 0 — агент выключен.

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

Как ускорить оптимизацию за счет сети облачных вычислений MQL5 Cloud Network #

Сеть облачных вычислений MQL5 Cloud Network позволяет в кратчайшие сроки провести оптимизацию советника, задействовав мощности тысяч компьютеров. Сеть объединяет удаленные агенты пользователей и распределяет между ними задачи по оптимизации. Тестер стратегий подключается к облачной сети вычислений через несколько точек доступа, распределенных по территориальному признаку (например, MQL5 Cloud Europe).

Особенности работы MQL5 Cloud Network #

  • Вся мощность сети MQL5 Cloud Network задействуется только при полном переборе параметров (медленная оптимизация).
  • При генетической оптимизации советников используются агенты только одной точки доступа, что связано с особенностями самого генетического алгоритма.
  • Режим генетической оптимизации включается автоматически, если общее количество шагов оптимизации превышает 100 000 000.
  • Сеть MQL5 Cloud Network можно использовать только в 64-х битных системах.
  • Помимо использования MQL5 Cloud Network, вы можете предоставлять собственные вычислительные мощности в сеть. Чтобы установить удаленные агенты и включить их в сеть, воспользуйтесь специальной утилитой "MetaTester".
  • Более подробно о сети MQL5 Cloud Network вы можете узнать на официальном сайте.

Оплата за использование MQL5 Cloud Network #

  • Использование агентов сети MQL5 Cloud Network является платным. Формула расчета стоимости использования описана в отдельном разделе. Текущий баланс аккаунта MQL5.community отображается над списком облачных агентов.
  • Для использования MQL5 Cloud Network на счету аккаунта MQL5.community должно быть не менее 1 доллара США. Задания отдаются пакетам сразу на несколько точек доступа, соответственно пользователь должны иметь возможность оплатить эти услуги. Заранее сеть не может вычислить, сколько потребуется времени и ресурсов на расчет этих заданий.

Включение MQL5 Cloud Network #

Чтобы задействовать агенты сети, включите их командой "Включить Включить" в контекстном меню. Поскольку сервис MQL5 Cloud Network является платным, пользователю необходимо иметь аккаунт на сайте MQL5.community, через который осуществляются все расчеты. Информация об аккаунте указывается на вкладке "MQL5.community" в настройках платформы.

Если информации об аккаунте на MQL5.community не была ранее указана, при включении агентов MQL5 Cloud Network вам будет предложено это сделать.

Включение MQL5 Cloud Network

Если вы еще не зарегистрированы, воспользуйтесь ссылкой для создания нового аккаунта.

Запуск вычислений с использованием MQL5 Cloud Network #

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

Запуск распределенных вычислений с использованием агентов из MQL5 Cloud Network

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