Оглавление
Как тестировать советник в тестере MT4?
Технологии развиваются со всё возрастающей скоростью.
Раньше анализ рынка проводили по котировкам, которые поступали по телеграфной ленте, графикам, от руки нарисованным на миллиметровой бумаге. Это был долгий и трудоёмкий процесс, когда подготовка к анализу занимала больше времени, чем сам анализ.
Компьютерные технологии изменились и продолжают эволюционировать, что предоставило возможность каждому иметь доступ к рыночным данным и торговать прямо у себя из дома. При этом современные терминалы обладают широчайшим инструментарием для проведения анализа рыночной ситуации. И, если раньше стоял вопрос, как получить выход на рынок, чтобы сделать хоть какой-то обзор рыночной ситуации, то сейчас основная задача, что выбрать из доступного разнообразия инструментов анализа.
Кроме того, всем стал доступен автоматический трейдинг. Современные торговые терминалы обладают средами разработки, которые позволяют даже людям, глубоко не знакомым с программированием, создавать торговых роботов. Поэтому рынок роботов для автоматической торговли сейчас изобилует всевозможными предложениями советников.
Среди них есть немало тех, кто могут принести действительно хорошие результаты. Но чтобы понять, насколько эти роботы эффективны, необходимо их протестировать и убедиться, что хотя бы на прошлых исторических данных они показывали стабильные результаты. После чего уже можно переходить к тестированию на реальном рынке и непосредственно самой торговле.
В терминале MetaTrader есть встроенный тестер стратегий, на котором и можно протестировать форекс советника с получением подробной статистики по результатам.
Подготовка
О том, как устанавливать советник в терминал, вы можете прочитать в этой статье.
Чтобы тестирование было корректным прежде всего нужно его нужно проводить на качественных котировках.
У большинства брокеров нет своего архива котировок, они используют котировки от компании MetaQuotes — разработчика терминала MetaTrader. Это далеко не самые качественные данные, в их архиве котировок полно пробелов и неточностей. Данные от тестирования на таких данных не будут нести практической пользы и могут сильно отличаться от результатов, которые бы были на реальном рынке.
Свой архив котировок есть, например, у брокеров Ducascopy и Alpari. У вторых, чтобы его получить необходимо иметь реальный счёт, а не демо-счете доступ к таким котировкам не предоставляется.
В первую очередь нужно сделать базовые настройки.
Нужно нажать Ctrl+O или мышкой выбрать меню «Сервис->Настройки».
В открывшемся окне «Настройки» нужно выбрать вкладку «Графики». В пунктах «Макс. баров истории» и «Макс. баров в окне» прописываем 1 000 000 000.
Затем идём в пункт меню «Сервис->Архив котировок». Его можно вызвать нажатием клавиши F2.
Откроется окно, где можно выбрать нужную валютную пару и временной интервал. Выбираем период M1 и жмём «Загрузить».
Как котировки загрузятся, нужно перезагрузить терминал.
Затем мы снова заходим в меню Архива котировок, опять выбираем нужную валютную пару, кликаем мышкой по периоду m1, пока слева от неё значок не загорится жёлто-зелёным цветом.
После нужно также пройтись по всем остальным периодам этой валютной пары, чтобы котировки просчитались для них для всех.
Если тестирование будет проводиться по нескольким валютным парам, то эти манипуляции нужно сделать для каждой из них.
На этом с подготовкой всё.
Тестер стратегий и его базовые возможности
Нажатие Ctrl+R открывается панель тестера стратегий. Также его вызвать можно, нажав соответствующую клавишу в верхней панели терминала.
В нижней части терминала откроется рабочая панель тестера стратегий:
Слева сверху есть пункт, где по нажатию мышки выпадает меню и можно выбрать, что вы хотите тестировать: советник или индикатор в визуальном режиме просмотра. В нашем случае выбираем «Советник». А напротив этого пункта справа в выпадающем меню можно выбрать собственно сам советник, который необходимо протестировать. Но для выбора доступны, конечно же, только те советники, которые установлены на вашем терминале.
В поле «Символ» вы выбираете валютную пару или любой другой финансовый инструмент, который есть в терминале, и брокер предоставляет его котировки. Если вдруг вы не можете найти нужную пару, но точно знаете, что она есть, то зайдите в окно «Обзор рынка» на верхней панели терминала, и в ней кликните правой клавишей, а затем в меню выберете «Показать все символы».
В пункте «Модель» выбирается способ, как будут выдаваться котировки, и как будут рисоваться свечи или бары.
Доступны следующие виды моделирования графика для тестирования:
- По ценам открытия. При этом способе бары рисуются сразу целиком в один тик. И нет информации в реальном времени о том, как цена вела себя во время формирования свечи. Свечи рисуются быстро, это ускоряет процесс. Но такой способ подходит только для тестирования тех советников, где нужен контроль открытия баров.
- Контрольные точки. Тоже очень грубый способ оценки. Если упростить, то при нём берутся данные с предыдущего таймфрейма, а именно цены OHLC (то есть Open, High, Low и Close), и по ним моделируется построение бара. Его показания можно использовать только для оценочной прогонки советника, но не для полноценного тестирования.
- Все тики. В этом методе уже используются цены не только с ближайшего младшего таймфрейма, но и со всех младших временных интервалов. Если на формирование какого-то промежутка времени есть данные от нескольких таймфреймов, то берётся самый младший. Если вдруг данных между точками нет, то используется интерполяция на основе заданных шаблонов. Если вдруг котировки дублируются, то происходит фильтрация, и берётся объём последней котировки. Этот способ более требователен к ресурсам, что может ощутимо нагружать терминал.
Как становится понятно, последний способ наиболее надёжен и точен для тестирования большинства советников, ведь предоставляет более точные ценовые данные, максимально приближённые к рыночным условиям.
Далее в пункте «Использовать дату» можно выбрать период тестирования по времени. Если пункт этот не трогать, то тестер проведёт тестирование по всем котировкам, которые ему доступны. Если же напротив него поставить галочку, то станут доступны поля, в которых можно указать начало и конец временного интервала, за который вы хотите провести тестирование.
Справа в панели тестера есть также несколько пунктов для настройки тестирования.
В пункте «Период» выбирается таймфрейм, на котором будет проходить тестирование. Максимум для тестирования доступен D1. И нужно обязательно загрузить историю котировок именно того временного интервала, на котором собираетесь тестирование проводить.
В поле «Спред» по умолчанию будет выбран текущий спред. Если же вам нужно протестировать советник, который, например, торгует ночью, а у вашего брокера в это время спред увеличен, то можно вручную задать его интересующую величину.
Если вам доступен файл советника с расширением .mq4, то можно нажать кнопку «Изменить эксперта», вызвав тем самым редактор кода, где можно делать свои правки.
После окончания теста становится доступна функция кнопки «Открыть график». От её нажатия открывается график пары с индикаторами советника и сделками, которые он совершил за время тестирования.
Нажав «Свойства символа», вы откроете информационное окно со спецификацией финансового инструмента, на котором проводите тест.
«Свойства эксперта» вызывает окно с тремя вкладками, как на скриншоте ниже.
Во вкладке «Тестирование» можно менять размер депозита и валюту счёта. Также можно дать указание советнику открывать только покупки, только продажи или всё вместе.
Во вкладке «Входные параметры» отображены настройки советника. Если к советнику уже идут готовые пресеты настроек, например, под определённые пары и временные интервалы, то их можно залить, нажав кнопку «Загрузить» и выбрав файл настроек с расширением *.set.
Вкладку «Оптимизация» разбирать не будет, как и сам процесс оптимизации советника. Это отдельная глубокая тема, которая не убирается в рамки данной статьи.
Последнее, что нужно сделать перед началом тестирования, это выставить торговый лот в 0,1 лота, чтобы каждое изменение в 1 пункт по старым четырём знакам после запятой равнялось 1 доллару. Это будет удобно по ходу тестирования оценки результатов.
Процесс тестирование и анализ результатов
Нажатие кнопки «Старт» запускает тестирование.
Когда оно заканчивается, звучит звуковой сигнал детской резиновой игрушки.
Для оценки результатов нам в помощь вкладки внизу панели тестера стратегий: «Настройки», «Результаты», «График», «Отчёт», «Журнал».
В Результатах можно найти перечень всех сделок советника за период тестирования и результаты по ним.
В Графике рисуется кривая доходности, по которой можно бегло оценить стабильность торговли советника, скорость прироста депозита и другие моменты.
В Журнале отображаются системные сообщения о событиях за время тестирования. Если с советником что-то не так, и произошла какая-то ошибка, то как раз здесь можно найти информацию о ней.
В Отчёте собрана вся важная статистика.
Баров в истории — сколько баров взято для тестирования за выбранный период времени.
Смоделировано тиков — количество воссозданных тиков, учитывающих данные по ценам Open, High, Low и Close и по volume (объёмам). Это количество может быть разным в зависимости от модели тестирования, временного интервала и качества котировок.
Качество моделирования — отображает качество в процентах.
Ошибки рассогласования графиков — показывает, есть ли ошибки при воссоздании тиков по разным временным интервалам. Ошибок быть не должно, иначе результаты будут далеки от реальности.
Если хоть одна ошибка есть, нужно обновить архив котировок. А для начала стоит удалить старый архив. Чтобы это сделать, нажимаем «Файл -> Открыть каталог данных -> History -> выбрать папку текущего торгового счёта -> закрыть терминал, не закрывая папку -> удаляем все файлы .hst».
Потом снова обновляем архив котировок, как это было описано в начале статьи.
Пример, как отображаются ошибки на панели ошибок рассогласования графиков ниже.
Серым показываются котировки, которых не хватает, красным котировки с текущего временного интервала, зелёным показаны котировки, которые доступны и на текущем, и на более младших временных интервалах. Более ярким зелёным показываются более младшие временные интервалы.
Если ошибок нет и доступны котировки с m1, то вся шкала будет ярко-зелёного цвета.
Начальный депозит — первоначальная сумма старта.
Спред — тот, на котором тестировался советник.
Общая прибыль — сколько заработано.
Общий убыток — сколько потеряно.
Чистая прибыль — это разница между общей прибылью и общим убытком. При тестировании 0.1 лота каждый доллар прибыли равен 1 заработанному пункту.
Прибыльность = общая прибыль/общий убыток.
Матожидание выигрыша — говорит само за себя.
Абсолютная просадка — показывает разницу, на которую от начального депозита падал баланс.
Максимальная просадка — максимальная разница между самой верхней точкой кривой доходности советника и самой её низкой точкой.
Относительная просадка = максимальная просадка/значение самой высокой точки кривой доходности советника.
Что показывают остальные данные, легко понять по их названиям и показаниям.
По нажатию правой кнопки мыши, можно сохранить детализированный отчёт результатов тестирования в формате .html.
Режим визуализации
Если в этом пункте поставить галочку, то после нажатия кнопки «Старт» откроется отдельный график, на котором в ускоренном режиме будут рисоваться свечи по ранее загруженным котировкам из архива.
Такой наглядный режим удобен, если нужно посмотреть своими глазами, как советник отрабатывал те или иные моменты на рынке, как он открывает и закрывает сделки. То есть его там можно лучше понять.
Если вам известно, на основе какого индикатора построен советник, то можно на график визуализации этот индикатор накинуть и проверить качество и точность входов советника.
Кроме того, можно смотреть вживую. как советник ведёт себя в какие-то переломные рыночные моменты или в момент выхода важных новостей.
Одним словом, получая возможность визуализации, вы получаете больше контроля над тестированием любого робота.
Заключение
Стоит сказать, что такой способ тестирования советников подходит больше для роботов, которые работают на интервалах от m30-h1 и выше.
Для скальперских роботов, которые торгуют на младших временных интервалах, нужны другие способы тестирования, где качество моделирования гораздо лучше, точнее, ближе к реальным показателям рыночных котировок у брокера.
Для тех же, кому нужно протестировать на тестере в ускоренном режиме какие-либо ручные торговые системы, подойдёт тестер TradeSystem2, который имеет ряд удобных преимуществ в сравнении со стандартным тестером терминала MetaTrader.
4 нюанса тестирования советников в терминале MetaTrader 4, о которых знают не все трейдеры
[info_block align=»right»]Обратите внимание, что качество истории котировок у разных форекс брокеров отличаются, что может вызвать серьезные расхождения в результатах тестирования одного советника на счетах от разных брокеров[/info_block]
В условиях современного трейдинга использование в торговле форекс советников уже давно не выглядит какой-то экзотикой. Практически каждый день появляются новые платные и бесплатные торговые роботы, которые впечатляют доходностью и вызывают желание быстренько заработать. Однако, ставить эксперта на торговый счет без проверки – сомнительная затея, ведущая к «неожиданным» потерям в потенциале. Поэтому рекомендуем начать работу с роботом с тестирования.
Все, что нужно знать о том, как правильно тестировать торгового советника в тестере стратегий терминала MetaTrader 4 – в инструкции от экспертов журнала Фортрейдер.
С чего необходимо начинать тестирование советника?
Торговый робот проверяют на истории, поэтому в первую очередь необходимо скачать котировки нужной вам валютной пары. Для этого следует в меню «Сервис» найти вкладку «Архив котировок» или просто нажать клавишу F2.
Рис. 1. Архив котировок в меню «Сервис» терминала MetaTrader 4.
Далее выбираем необходимую валютную пару и таймфрейм, кликаем по ним два раза левой кнопкой мышки и нажимаем «Загрузить».
Рис. 2. Выбор валютной пары и таймфрейма.
Обратите внимание, что качество истории котировок у разных форекс брокеров отличаются, что может вызвать серьезные расхождения в результатах тестирования одного советника на счетах от разных брокеров.
Выбираем в тестере стратегий торгового робота (1), валютную пару (2), тип моделирования (3), таймфрейм (4), спред (5) и настройки советника (6).
Рис. 3. Настройка тестера стратегий для тестирования.
Не забудьте о размере спреда, который установлен для валютной пары вашим брокером. Дело в том, что в тестере стратегий по умолчанию установлен текущий спред. Если вы этого не сделаете, то можете получить совершенно фантастические результаты, особенно, если тестируете эксперта в выходной день.
Какой тип моделирования выбрать?
[info_block align=»right»]Тестируете по всем тикам, потом по контрольным точкам, потом по ценам открытия и смотрите разницу.[/info_block]
Тестер стратегий предлагает на выбор три типа моделирования:
- Все тики;
- Контрольные точки;
- По ценам открытия.
«Все тики» — самый точный из стандартно-доступных типов моделирования, но он же и самый долгий. Некоторые советники можно тестировать без потери точности по контрольным точкам или по ценам открытия. Для этого в алгоритме должны быть заложены условия открытия сделки, начиная с нового бара.
Если вы не сильно разбираетесь в советнике, который тестируете, то имеет смысл подойти к вопросу экспериментальным путем. Тестируете по всем тикам, потом по контрольным точкам, потом по ценам открытия и смотрите разницу. Если она небольшая, то можно оптимизировать советник наиболее быстрым методом, а потом проверять по всем тикам. Если разница существенная, то можно грубую оптимизацию проводить быстрым методом, а тонкую — по всем тикам. Если разница совсем большая, то делать нечего, и придется оптимизировать долго и упорно по всем тикам.
Есть класс советников, в которых рабочий таймфрем прописан в настройках, у них результаты тестирования не зависят от выбранного периода в тестере. Такие роботы, как правило, можно тестировать практически без потери точности на контрольных точках. Получается намного быстрее, чем по всем тикам, а результат практически тот же самый.
Опять-таки, оптимизируем быстрым методом, найденный лучший вариант проверяем по всем тикам и убеждаемся, что все в порядке.
На какие параметры нужно обратить внимание при оптимизации советника?
Количество сделок
В первую очередь обращаем внимание на количество сделок. Желательно, чтобы их было не менее 150, иначе оптимизация теряет всякий смысл, поскольку возникает эффект «подгонки» результатов.
Если же сделок меньше 150, то необходимо увеличить промежуток времени тестирования, чтобы получить полную картину.
Прибыль и просадка
[info_block align=»right» linkText=»Зарабатываем с Мартингейлом! 8 правил торговли форекс экспертами с повышенным риском» linkUrl=»https://fortrader.org/learn/forex-trader/zarabatyvaem-s-martingejlom-8-pravil-torgovli-foreks-ekspertami-s-povyshennym-riskom.html» imageUrl=»http://files.fortrader.org/uploads/2016/11/invest-money.jpg»]Заработок на советнике по принципу Мартингейла возможен. 8 правил о том, как снизить риск от торговли «опасным» роботом.[/info_block]
Во вторую очередь нас будет интересовать соотношение прибыли к просадке.
Популярным параметром для отбора результатов оптимизации является коэффициент восстановления, который представляет собой простое отношение: прибыль / максимальная просадка. Его несложно вычислить, поделив столбец «Прибыль» на столбец «Просадка» в долларах. Но вот отсортировать результаты оптимизации по этому параметру тестер так просто не позволяет.
К счастью, это несложно поправить, если у вас есть доступ к исходному коду советника. Достаточно в конец кода любого робота приписать следующие строчки:
double GetRecoveryFactor( void ) <
double MaxDD = TesterStatistics(STAT_EQUITY_DD);
Res = TesterStatistics(STAT_PROFIT) / MaxDD;
double OnTester( void ) <
и перекомпилировать его. После этого при оптимизации в тестере появится новая колонка «Результат OnTester». Она будет содержать коэффициент восстановления. Щелкнув по шапке этой колонки, можно отсортировать результаты оптимизации по данному параметру.
Рис. 4. Сортировка результатов оптимизации по коэффициенту восстановления.
Что делать с ошибками рассогласования?
Часто случается, что в отчете о тестировании торгового эксперта тестер стратегий в строке «Качество моделирования» указывает значение n/a и сообщает об ошибках рассогласования графиков.
Рис. 5. Ошибки рассогласования графиков.
Откуда берутся эти ошибки? Самой распространенной причиной является расхождение между котировками, которые получены от брокера напрямую, и котировками, загруженными из архива.
Как устранить это расхождение? Существует очень простой способ. Необходимо удалить историю котировок по необходимой валютной паре через «Меню Файл» — «Открыть каталог данных» – History – «Имя торгового сервера». Стираем все файлы EURUSD*.hst.
Рис. 6. Удаление файла с архивом котировок.
После удаления файлов перезапускаем терминал и загружаем котировки заново, как это было описано выше.
После проделанных процедур в большинстве случаев ошибки рассогласования графиков исчезают, а качество моделирования вырастет до 90%.
Итого
Таким образом, тестирование и оптимизация торговых советников – дело совсем несложное, хотя требует больших временных затрат и знания тонкостей. Надеемся, что эта статья позволит вам быть с тестером стратегий «на ты», эффективно тестировать форекс экспертов и получать прибыль на валютном рынке.
Похожие статьи
- Практика торговли кросс-курсами. От анализа до закрытия сделки
- Нюансы торговли с индикатором Ишимоку
- Конец эпохи ручного трейдинга или как организованы высокочастотные стратегии
- Арбитраж на криптовалютах – пока еще эффективная торговая стратегия
Fortrader Suite 11, Second Floor, Sound & Vision House, Francis Rachel Str. Victoria Victoria, Mahe, Seychelles +7 10 248 2640568
Комментарии (2)
А ничего что котировки после удаления будут загружены с сервера метаквот и будут очень сильно отличаться от данных полученных от брокера и после перезалива этот тестер можно смело выкинуть в ведро? вы этот момент почему-то упускаете.
Здравствуйте! Спасибо Вам за информацию о тиковом тестировании робота. Но у меня вопрос такого плана. Если я скачаю тики из архива котировок MQL4 и провожу тестирование в таймфрейме H1(часовом), то не будет ли отличаться время открытия бара от серверного времени брокера? Мне это важно знать, так как открытие ордера в моём роботе привязано ко времени открытия бара и со временем начала торговых сессий.
Заранее благодарен, если получу от Вас разъяснение по моему вопросу.
PS: может у Вас есть описание кода, который можно будет внести в тело советника для устранения проблемы, если она, конечно, существует.
https://xn—-8sbebdgd0blkrk1oe.xn--p1ai/sovetniki-forex/kak-testirovat-sovetnik-v-testere-mt4.html
https://fortrader.org/learn/mql/4-nyuansa-testirovaniya-sovetnikov-v-terminale-metatrader-4-o-kotoryx-znayu-ne-vse-trejdery.html