Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров, что позволяет выбрать наиболее удачную их комбинацию.
Тестер стратегий является мультивалютным, что позволяет тестировать и оптимизировать торговые стратегии, в которых реализована торговля по нескольким финансовым инструментам. При этом нет необходимости задавать список символов для тестирования/оптимизации, тестер стратегий автоматически обрабатывает информацию по всем символам, использование которых заложено в советнике.
Тестер стратегий является многопоточным и позволяет задействовать все доступные ресурсы компьютера. Тестирование и оптимизация осуществляется при помощи специальных вычислительных агентов, которые устанавливаются в виде сервисов на компьютере пользователя. Агенты работают независимо и позволяют проводить параллельные вычисления проходов оптимизации.
К тестеру стратегий может быть подключено неограниченное количество агентов, работающих удаленно. Помимо этого в тестере стратегий доступна для использования огромная сеть облачных вычислений MQL5 Cloud Network. Она объединяет тысячи агентов по всему миру, и эта вычислительная мощь доступна любому пользователю торговой платформы.
Помимо тестирования и оптимизации советников тестер стратегий позволяет проверить работу пользовательских индикаторов в визуальном режиме. Данная функция позволяет легко проверить демо-версии индикаторов, скачанные из Маркета.
Тестированием советника называется его одиночный проход с фиксированными параметрами на исторических данных. Оно позволяет проверить работоспособность стратегии перед ее использованием на реальном рынке.
Посмотреть видео: Бесплатное тестирование советников и индикаторов перед покупкой Посмотрите краткое видео, как протестировать торгового робота перед покупкой в Маркете. Для тестирования в Маркете имеются специальные демо-версии, которые можно проверить в Тестере стратегий. О том, как это делается мы и расскажем в этом видео. |
При запуске тестера вместо множества настроек пользователю предлагается выбрать одну из типовых задач и быстро приступить к ее решению. Это будет особенно удобно для тех, кто не имеет опыта работы.
На стартовой странице представлено несколько основных задач по тестированию и оптимизации стратегий. Помимо этого, здесь можно быстро перезапустить одну из предыдущих задач. Если вы запускали много задач, и все они не умещаются в списке, воспользуйтесь строкой поиска. Она позволяет найти тест по любому параметру: имени программы, инструменту, таймфрейму, типу моделирования и т.д.
Выбрав одну из задач на стартовой странице, вы переходите к более тонкой подстройке параметров тестирования: выбору эксперта, инструмента, периода и т.д. Для облегчения работы все параметры, которые не требуются для выбранной задачи, скрываются. Например, если вы выбрали математические вычисления, то вам потребуется задать только два параметра: выбрать программу для тестирования и режим оптимизации. Настройки периода тестирования, задержек и генерации тиков будут скрыты.
Ниже будут рассмотрены все доступные параметры тестирования.
Выполните команду " Тестировать" в контекстном меню нужного советника в окне "Навигатор".
После этого советник будет выбран в тестере стратегий.
Тестер позволяет проводить проверку на истории стратегий, торгующих на нескольких инструментах. Такие эксперты условно называют мультивалютными.
История по используемым инструментам закачивается тестером из торговой платформы (не с торгового сервера!) автоматически при первом обращении к данному инструменту. С торгового сервера докачивается только недостающая история.
Перед началом тестирования мультивалютного эксперта включите требуемые для тестирования инструменты в "Обзоре рынка". В контекстном меню нажмите " Символы" и включите показ необходимых инструментов.
Перед началом тестирования выберите, на каком финансовом инструменте будет проведено исследование работы робота, за какой период и в каком режиме.
Выберите основной график для тестирования и оптимизации. Выбор символа необходим для срабатывания событий OnTick(), заложенных внутри экспертов. Также выбранные символ и период влияют на специальные функции в коде советника, которые используют параметры текущего графика (например, Symbol() и Period()). Иными словами, здесь выбирается график, к которому был бы присоединен советник.
Выберите период тестирования и оптимизации. Можно выбрать как один из предопределенных периодов, так и указать собственный. Для этого введите начальную и конечную дату в соответствующий полях, расположенных правее.
Особенностью является то, что тестер загружает себе некоторое количество дополнительных данных до указанного периода (для формирования как минимум 100 баров). Это необходимо для более точного тестирования и оптимизации. Например, при тестировании на недельном таймфрейме загружаются два дополнительных года.
Если для формирования дополнительных 100 баров недостаточно исторических данных (это особенно актуально для месячного и недельного таймфреймов), например, при выборе даты начала тестирования близкой к началу существующих исторических данных, то дата начала тестирования будет автоматически передвинута. Соответствующая запись об этом будет отображена в журнале тестера стратегий.
Данная опция позволяет проверить результаты тестирования для исключения подгонки на определенных периодах времени. При форвард-тестировании период, указанный в поле "Установить дату", делится на две части, в соответствии с выбранным форвард периодом (половина, треть, четверть или собственный период, когда указывается дата начала форвард тестирования).
Первая часть называется периодом бэк-тестирования. На ней проводится адаптация работы советника. Вторая часть называется периодом форвард-тестирования, на ней проводится проверка выбранных параметров советника.
Тестер стратегий позволяет эмулировать сетевые задержки при исполнении торговых операций советником, чтобы приблизить процесс тестирования к реальным торговым условиям. Т.е. между выставлением торгового приказа экспертом и его исполнением тестером стратегий вставляется определенная временная задержка. С момента отсылки приказа и до его исполнения цена может измениться. Таким образом, пользователь может оценить, каким образом влияет скорость обработки торговых операций на результативность торговли.
В случае с режимом немедленного исполнения пользователь может дополнительно отработать реакцию советника на получения реквота от торгового сервера. Если разница между запрошенной ценой и ценой исполнения превысит величину отклонения, указанную в ордере, советник получит реквот.
Обратите внимание, задержка работает только для операций, совершаемых экспертом (выставление ордеров, изменение стоп-уровней, и т.д.). Например, если эксперт работает отложенными ордерами, то задержка будет применяться только к самой операции выставления ордера, но не во время его срабатывания (в реальных условиях срабатывание происходит на сервере, сетевой задержки нет).
Без задержки
В этом режиме все ордера исполняются по запрошенным ценам, отсутствуют реквоты. Режим без задержки используется для проверки советника в "идеальных" условиях.
Произвольная задержка
Режим произвольных задержек предусмотрен для тестирования экспертов в условиях, приближенных к реальным. Величина задержки генерируется случайным образом по следующему принципу: случайным образом выбирается число от 0 до 9, и на такое число секунд осуществляется задержка; если выбранное число равно 9, то случайным образом выбирается еще одно число из такого же диапазона и прибавляется к первому.
Таким образом, вероятность задержки исполнения на 0-8 секунд составляет 90%, а вероятность задержки на 9-18 секунд составляет 10%.
Фиксированная задержка
Вы можете выбрать одно из предложенных или задать свое собственное фиксированное значение задержки. Чтобы вы могли протестировать робота в условиях, наиболее близких к вашему текущему брокеру, платформа замеряет пинг до торгового сервера и предлагает вам выбрать это значение в качестве задержки в тестере.
Выберите один из режимов генерации тиков:
Более подробно режимы генерации тиков описаны в отдельном разделе.
Расчет прибыли в пипсах позволяет ускорить процесс тестирования за счет того, что прибыль не будет пересчитываться в валюту депозита через другие курсы (а соответственно не нужно скачивать их ценовую историю). Также в этом режиме не рассчитываются свопы и комиссии.
Учитывайте, что в этом режиме фактически отсутствует контроль маржи. Используйте его только для быстрой грубой оценки стратегии, а полученные результаты проверяйте в более точных режимах.
Укажите объем начального депозита для тестирования и оптимизации советника. По умолчанию используется валюта депозита счета, который в данный момент подключен, но вы можете указать любую другую. При этом учитывайте, что для корректного тестирования на счете должны быть доступны кросс-курсы для пересчета прибыли и маржи в указанную валюту депозита. В качестве кросс-курсов могут быть использованы только инструменты с типом расчета "Forex" или "Forex No Leverage".
Далее выберите кредитное плечо для тестирования и оптимизации. От него будет зависеть количество средств, резервируемых на счете для обеспечения позиций и ордеров.
Если у вас есть исходный код выбранного советника, то при помощи этой кнопки вы можете быстро перейти к его редактированию в MetaEditor.
Используйте это меню для удобного управления настройками тестера: сохраняйте наборы настроек для разных экспертов в виде ini-файлов, чтобы потом возвращаться к ним в пару кликов. Вы также можете скопировать текущие настройки тестирования в буфер обмена, просто нажав Ctrl+C. Далее отредактируйте их в любом текстовом редакторе, скопируйте и загрузите в тестер, нажав Ctrl+V.
Здесь же можно быстро выбрать последние использованные программы, последние настройки графиков и периодов тестирования.
Также вы можете быстро вернуться к одному из предыдущих результатов оптимизации и настройкам, на которых он был достигнут.
Вы можете изменять настройки основного торгового инструмента, на котором происходит тестирование/оптимизация. Вам доступны практически все параметры спецификации: объемы, режим торговли, маржинальные требования, режим исполнения и многое другое.
Задавайте собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Таким образом, вы можете моделировать различные торговые условия у брокеров.
В режиме визуального тестирования вы увидете, каким именно образом эксперт осуществляет торговые операции при тестировании на исторических данных. Каждая сделка, осуществленная по финансовому инструменту, отображается на его графике.
|
Входные параметры позволяют управлять поведением советника, адаптируя его под различные рыночные условия, в том числе под конкретный финансовый инструмент. Так, например, можно исследовать работу советника с различными расстоянием выставления ордеров стоп лосс и тейк профит, с различными периодами скользящей средней, которая используется для анализа рынка и принятия решений и т.д.
Задайте значение для каждого входного параметра.
Наборы параметров. Чтобы вы могли в любой момент вернуться к текущим настройкам MQL5-программы, сохраните набор параметров через контекстное меню:
Вы можете задавать собственные настройки торгового счета при тестировании стратегий — торговые ограничения, настройки маржи и комиссии. Это позволяет моделировать различные торговые условия у брокеров.
Общие настройки
В этом разделе вы можете задать максимальное количество открытых ордеров и позиций, которое можно одновременно иметь на счете. Также здесь можно настроить сессии, когда тестируемой программе будет запрещено торговать.
Маржа
Здесь вы можете полностью контролировать, как будет резервироваться маржа и какая система учета позиций будет использована при тестировании:
Модель управления рисками: внебиржевые и биржевые, с неттингом и хеджингом.
Уровень средств на счете, при достижении которого он переходит в состояние Margin call.
Уровень средств, при достижении которого на счете принудительно снимаются ордера и закрываются торговые позиции. Оба уровня можно указывать в деньгах и в процентах. В первом случае уровни определяются как значение показателя "Средства" на счету. При выборе опции "В процентах" уровни определяются как значение показателя "Уровень маржи" на счету (Средства/Маржа*100).
В данном поле указывается, каким образом будет учитываться текущая незафиксированная прибыль/убыток в свободной марже:
В данном поле указывается, каким образом будет учитываться прибыль/убыток, зафиксированный трейдером в течение торгового дня, в свободной марже:
Освобождать накопленную прибыль в конце дня — данная опция доступна только при включении опции "Использовать дневной фиксированный убыток". Если она включена, то в конце торгового дня прибыль, накопленная в течение дня, будет освобождаться и записываться на баланс (а соответственно учитываться в свободной марже). В ином случае — не будет.
Комиссия
В этом разделе вы полностью контролируете, как взимается комиссия со всех торговых операций:
Чтобы использовать настройки комиссии текущего торгового счета, включите опцию "Использовать предопределенные комиссии".
Включите эту опцию, чтобы использовать настройки комиссии текущего торгового счета вместо пользовательских настроек, указанных ниже.
Укажите имя символа, для которого настраивается комиссия. Для каждого символа можно добавить несколько настроек. Например, так можно создать многоуровневые комиссия, которые зависят от объема сделки или оборота.
Комиссию можно взимать немедленно после каждой совершенной сделки или же накапливать в течение торгового дня или месяца и затем взимать единой операцией:
Также комиссию можно взимать в зависитот от объема каждой сделки или от ежедневного или ежемесячного оборота. От выбранного варианта зависит, объемы чего указываются в полях "От" и "До" — сделки или оборота.
В ежеденвнм и ежемесячном режиме комиссии начисляются при совершении сделок в обоих направлениях (при открытии/наращивании позиции и при закрытии/частичном закрытии позиции). Для немедленных комиссий вы можете задать направление сделок вручную.
По сделкам разворота в режиме "Сделки входа" комиссия взимается только с объема вновь открытой позиции, в режиме "Сделки выхода" — только с закрытого объема. Для сделок на закрытие позиции встречной (Close By) действуют следующие правила:
Минимальный объем сделки (оборота), с которого будет взиматься данная комиссия. Настраиваемые диапазоны не должны пересекаться. В противном случае, комиссия будет начислена по всем диапазонам, в которые попадет торговая операция.
Максимальный объем сделки (оборота), с которого будет взиматься данная комиссия; Настраиваемые диапазоны не должны пересекаться. В противном случае, комиссия будет начислена по всем диапазонам, в которые попадет торговая операция.
Объем комиссионных сборов. Единицы измерения зависят от способа начисления комиссии, выбираемого в поле "Режим".
Минимальный объем взимаемой комиссии. Единицы, в которых указывается значение, зависят от выбранного способа начисления (в базовой валюте, валюте группы, пунктах и т.д.). Чтобы не ограничивать минимальный размер комиссии, установите значение 0.
Максимальный объем взимаемой комиссии. Единицы, в которых указывается значение, зависят от выбранного способа начисления (в базовой валюте, валюте группы, пунктах и т.д.). Максимальная комиссия не должна быть меньше минимальной. Чтобы не ограничивать максимальный размер комиссии, установите значение 0.
Единицы расчета комиссионных соборов:
Тип начисления комиссии:
Вы можете изменять настройки основного торгового инструмента, на котором происходит тестирование/оптимизация. Вам доступны практически все параметры спецификации: объемы, режим торговли, маржинальные требования, режим исполнения и многое другое. Таким образом, для проверки советника в иных торговых условиях необязательно создавать пользовательский символ и загружать в него историю. Можно просто поменять настройки стандартного инструмента.
При изменении спецификации символа, иконка настроек, а также иконка самого символа в списке помечаются звездочкой. Так вы всегда будете в курсе, что тестирование идет с пользовательскими настройками.
Чтобы начать тестирование, нажмите "Старт" на вкладке "Настройки". Левее при этом будет показываться ход выполнения теста.
Результаты тестирования советников отображаются на вкладках "Бэктест" и "График".
Подробные результаты тестирования выводятся на вкладке "Бэктест". Здесь представлены общие результаты тестирования, такие как прибыль и количество торговых операций, а также множество статистических показателей, которые помогут оценить качество работы робота.
Помимо этого здесь представлены графики распределения количества и успешности торговых операций по часам, дням и месяцам, а также графики, характеризующие рискованность торговой стратегии.
Подробная информация о показателях представлена в разделе "Отчет о тестировании".
На вкладке "График" можно легко визуально определить, насколько успешно отработал советник на выбранном инструменте на выбранном интервале времени.
В основной части вкладки отображаются кривые изменения баланса (синяя линия) и средств (зеленая линия). На горизонтальной шкале отображаются даты, а на вертикальной значения баланса/средств. В нижней части вкладки отображается гистограмма нагрузки на депозит, которая рассчитывается как отношение маржи к средствам (margin/equity).
|
Ход выполнения тестирования отображается на вкладке "Журнал", дополнительно в журнал выводятся сообщения самого советника. При включении режима визуального тестирования, ход тестирования можно просмотреть непосредственно на графике.
После окончания тестирования можно открыть график, на котором был протестирован советник (выбранные символ и период). Для этого нажмите " Открыть график" в контекстном меню вкладки "Бэктест". На графике отображаются все сделки, совершённые советником во время тестирования. При наличии шаблона с названием tester.tpl в каталоге /profiles/templates торговой платформы, именно он будет применен к открываемому графику. При его отсутствии применяется шаблон по умолчанию (default.tpl).
Если в тестируемом советнике использовались индикаторы, работающие на символе и периоде тестирования, то они также будут отображены на графике. При этом на нем не будут отображены индикаторы, принудительная выгрузка которых предусмотрена в коде советника (функция IndicatorRelease).
Форвард-тестированием называется повторный прогон советника на другом временном периоде. Такая возможность предусмотрена для исключения подгонки параметров советников на определенных участках исторических данных.
Чтобы включить форвард-тестирование, на вкладке "Настройки" в поле "Форвард-период" укажите, какую часть общего периода необходимо использовать для него:
|
При включении форвард-тестирования, от периода, выбранного в поле "Использовать дату", отделяется выбранная часть. Первая часть называется периодом бэк-тестирования, вторая — периодом форвард-тестирования.
Результаты тестирования на форвард-периоде отображаются на отдельной вкладке "Форвард". На графике дата начала форвард-период отмечается вертикальной линией.
Более подробно о получаемой в результате тестирования информации можно узнать в разделе "Где посмотреть результаты тестирования".
Тестер стратегий в торговой платформе позволяет тестировать советники и индикаторы в визуальном режиме. Это дает возможность наглядно увидеть, каким именно образом эксперт осуществляет торговые операции при тестировании на исторических данных. Каждая сделка по финансовому инструменту отображается на его графике.
Для визуального тестирования поставьте галочку "Визуализация" в настройках:
|
Настройте параметры тестирования и входные параметры, а затем нажмите "Старт".
Визуальное тестирование запустится в новом окне, имитирующем отдельную торговую платформу: в нем будет показаны графики, обзор рынка, а также окно инструменты, где можно посмотреть торговые операции и журнал.
Чтобы приостановить, ускорить или замедлить тестирование, используйте панель инструментов. Здесь же можно прокрутить тестирование до определенной, интересующей вас, даты.
Тестированием также удобно управлять при помощи горячих клавиш, сочетания указаны рядом с командами в меню.
Основной целью данного вида тестирования является визуальное наблюдение за работой советника. В режиме реального времени происходит построение графика по сгенерированным ценам и отображение на нем торговых операций робота.
Торговые операции показываются на графике иконками (сделка на покупку) и (сделка на продажу). Между сделкой входа и выхода из рынка отображается пунктирная линия.
В окне "Обзор рынка" отображаются цены, генерируемые в процессе тестирования. Оно схоже с одноименным окном торговой платформы, однако обладает рядом особенностей. Показать/скрыть данное окно можно выполнив команду "Обзор рынка" в меню "Вид" или нажав сочетание клавиш "Ctrl+M".
На вкладке "Символы" отображается текущая ценовая информация по финансовым инструментам. Список отображаемых символов ограничен основным символом тестирования, а также символами, которые использует советник.
На вкладке "Тики" отображается график цен, генерируемых в процессе тестирования. Количество отображаемых тиков ограничивается 64 тысячами.
В окне данных можно посмотреть информацию о ценах (OHLC), дате и времени бара, спреде, объеме, а также об используемых индикаторах. Здесь можно быстро получить требуемую информацию об отдельном баре и наложенных индикаторах в выбранной точке графика. Включение/отключение данного окна происходит при нажатии кнопки "Окно данных" в меню "Вид" или сочетанием горячих клавиш "Ctrl+D".
Верхняя часть окна содержит название финансового инструмента и период графика. Ниже отображается информация о текущем положении курсора на графике. Информация по индикаторам, открытым в своих подокнах, отображается в отдельных блоках.
Для более детального изучения торговых операций советника используйте окно "Инструменты". В нем в отдельных вкладках показываются:
Дополнительную информацию тестировании можно найти в Журнале. В него записываются вся информация о тестировании и действиях советника во время него.
До тех пор пока открыт визуализатор, записи журнала агента тестирования не отсылаются в тестер стратегий в торговой платформе. Тем не менее, они могут быть просмотрены через нее при помощи команды "Журналы локальных агентов" в контекстном меню. |
Посмотреть поведение индикатора на исторических данных можно в режиме визуального тестирования. Эта возможность позволит легко проверить индикатор перед его покупкой в Маркете. Просто скачайте бесплатную демо-версию индикатора и запустите ее в тестере.
Выберите тип программ "Индикатор", далее выберите нужный индикатор и нажмите "Старт". Режим визуализации будет включен автоматически. Остальные параметры задаются аналогично тому, как это происходит при тестирование торговых роботов.
Поведение индикатора показывается на графике, который строится по смоделированной в тестере последовательности тиков.