Справка по MetaTrader 5Алгоритмический трейдинг, торговые роботыТестирование стратегий

Тестирование стратегий

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

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

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

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

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

Как провести тестирование #

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

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

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

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

Быстрый выбор задачи тестирования #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Интервал

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

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

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

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

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

Первая часть называется периодом бэк-тестирования. На ней проводится адаптация работы советника. Вторая часть называется периодом форвард-тестирования, на ней проводится проверка выбранных параметров советника.

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

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

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

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

Без задержки

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

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

Режим произвольных задержек предусмотрен для тестирования экспертов в условиях, приближенных к реальным. Величина задержки генерируется случайным образом по следующему принципу: случайным образом выбирается число от 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 пипс (пункт).
  • Проценты — этот способ расчета позволяет взимать комиссию в процентах от реальной стоимости сделки или оборота. Стоимость вычисляется в базовой валюте символа как произведение его цены, размера контракта и объема в лотах (для всех фьючерсных и опционных инструментов: объем в лотах * размер тика / цена тика). По умолчанию, рассчитанная в базовой валюте стоимость сделки/оборота конвертируется в валюту депозита, и от полученного значения рассчитывается итоговая комиссия (указанный процент).

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

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

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

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

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

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

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

Запуск тестирования #

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

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

Результаты тестирования советников отображаются на вкладках "Бэктест" и "График".

Результаты тестирования

Отчет о тестировании

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

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

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

График тестирования

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

В основной части вкладки отображаются кривые изменения баланса (синяя линия) и средств (зеленая линия). На горизонтальной шкале отображаются даты, а на вертикальной значения баланса/средств. В нижней части вкладки отображается гистограмма нагрузки на депозит, которая рассчитывается как отношение маржи к средствам (margin/equity).

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

Ход тестирования в журнале

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

Ход тестирования на графике

После окончания тестирования можно открыть график, на котором был протестирован советник (выбранные символ и период). Для этого нажмите "Открыть график Открыть график" в контекстном меню вкладки "Бэктест". На графике отображаются все сделки, совершённые советником во время тестирования. При наличии шаблона с названием tester.tpl в каталоге /profiles/templates торговой платформы, именно он будет применен к открываемому графику. При его отсутствии применяется шаблон по умолчанию (default.tpl).

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

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

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

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

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

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

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

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

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

Результаты форвард-тестирования

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

Визуальное тестирование #

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

Для визуального тестирования поставьте галочку "Визуализация" в настройках:

Включение визуального тестирования

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

Настройте параметры тестирования и входные параметры, а затем нажмите "Старт".

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

Тестирование в визуальном режиме

Управление процессом тестирования

Чтобы приостановить, ускорить или замедлить тестирование, используйте панель инструментов. Здесь же можно прокрутить тестирование до определенной, интересующей вас, даты.

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

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

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

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

  • Вы можете изменить внешний вид графика, отобразить на нем индикаторы или графические объекты. Для этого используйте шаблон. Чтобы шаблон был применен, его имя должно совпадать с именем тестируемого советника, например, ExpertMACD.tpl. Сам шаблон должен располагаться в папке /profiles/templates торговой платформы.
  • Список символов, по которым можно просмотреть график, ограничивается основным символом тестирования, а также символами, чьи данные использует советник.
  • Отсутствует возможность переключения периода графика. Для основного графика тестирования, используется период, выбранный в настройках. Для остальных символов используются периоды, запрошенные советником.
  • Переключение между символами осуществляется через меню "Вид — Графики".

Просмотр ценовых данных в Обзоре рынка

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

Обзор рынка при визуальном тестировании

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

На вкладке "Тики" отображается график цен, генерируемых в процессе тестирования. Количество отображаемых тиков ограничивается 64 тысячами.

Просмотр данных о барах и показателях индикатор в Окне данных

В окне данных можно посмотреть информацию о ценах (OHLC), дате и времени бара, спреде, объеме, а также об используемых индикаторах. Здесь можно быстро получить требуемую информацию об отдельном баре и наложенных индикаторах в выбранной точке графика. Включение/отключение данного окна происходит при нажатии кнопки "Окно данных" в меню "Вид" или сочетанием горячих клавиш "Ctrl+D".

Окно данных при визуализации тестирования

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

Просмотр деталей торговых операций в окне Инструменты

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

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

Информация о параметрах торговых операций доступна в разделах Торговля и История.

Просмотр деталей торговых операций в окне Инструменты

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

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

Тестирование индикаторов в визуальном режиме #

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

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

Тестирование индикаторов в визуальном режиме

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