Работа с тестером стратегий MetaTrader4: ошибки рассогласования и архив котировок в MT4

Мастер класс «Работа с тестером стратегий MetaTrader4″ — часть 3

Способы борьбы с ошибками рассогласования

Как бороться с ошибками рассогласования? Существует два пути: закачка котировок центра исторических данных (History Data Center — HDC) компании Meta Quotes и создание всех временных периодов на основании имеющейся минутной истории.

Первый способ намного проще, но требует затрат Интернет-трафика. Для этого всего лишь нужно зайти в пункт главного меню МТ4 «Сервис» и выбрать подпункт «Архив котировок» или просто нажать F2. В открывшемся окне выбрать валютную пару двойным кликом левой клавиши мышки, а затем период «1 минута». После этого жмем «Загрузить», читаем появившееся сообщение, которое извещает о том, что будут закачаны данные с сервера компании Meta Quotes, жмем «ОК» и далее ждем окончания загрузки. После окончания загрузки будет задан вопрос о пересчете всех таймфреймов (периодов), на который необходимо ответить утвердительно. В результате мы получим историю минутных котировок с 1999 года. Сразу нужно заметить, что она не будет полностью совпадать с историей котировок вашего брокера, хотя и будет похожа.

Второй способ немного сложнее в реализации и дает меньше истории, но это будут точные котировки вашего брокера. Откройте минутный график нужной валютной пары и подкачайте историю котировок до конца, нажимая Home. При этом автопрокрутка графика должна быть выключена. Затем в окне Навигатора (Ctrl+N) найдите раздел «Скрипты», а в нем скрипт «period_converter». Перетащите его мышкой на график валютной пары. Единственный входной параметр ExtPeriodMultiplier выставьте равным 60 (если необходимо создать часовой период) и жмите «ОК». Подождите несколько секунд, за которые скрипт должен успеть отработать, а затем удалите скрипт с графика – нажмите правой клавишей мышки для вызова контекстного меню и выберите «Удалить скрипт». Для создания других периодов повторяем операцию с такими значениями параметра ExtPriodMultiplier: для М5 – 5, М15 – 15, М30 – 30, Н4 – 240, D1 – 1440.

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

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

А теперь вернемся к рассмотрению результатов тестирования (см. рис. 4). Конечно же, наиболее интересным является пункт «Чистая прибыль». Но сам по себе он мало что значит. Его необходимо соотносить с параметром «Максимальная просадка» — это максимальное  количество денег, которое было потеряно. При чем неважно, на каком этапе это произошло – вначале, в середине или в конце теста. Вследствие этого показатель максимальной просадки может быть больше начального депозита (сначала мы заработали, а затем потеряли и заработанные, и начальные средства). Оптимальное отношение чистой прибыли к максимальной просадке должно быть около единицы. То есть, для получения прибыли мы рискуем примерно такой же суммой. Хотя конечно никто не станет возражать, если подобное отношение будет намного больше единицы. В приведенном примере по пути к заработку в 100 долларов мы на каком-то периоде потеряли 40.

Идентичен максимальной просадке пункт «Абсолютная просадка» — сумма, на которую уменьшался наш начальный депозит. Показатель относительной просадки – это максимальная просадка, позволяющая оценить потери в процентах от начального депозита.

Также представляют интерес показатели «Прибыльность» и «Математическое ожидание выигрыша». Прибыльность – это отношение общей прибыли к общему убытку. Чем выше этот показатель, тем лучше (как правило, значения больше двух). В нашем отчете прибыльность отсутствует, так как не было убыточных сделок (то есть вышло значение «плюс бесконечность»). Показатель матожидания — это чистая прибыль, деленная на количество сделок. Он измеряется в валюте депозита, поэтому для анализа лучше переводить его в пункты (для микролотов умножать на 10, для полных лотов – делить на 10). Большие значения этого показателя также более предпочтительны, в то время как малые (меньше 10 пунктов) говорят о том, что стратегия быстро режет прибыльные сделки и долго держит убыточные.

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

Такое малое количество сделок объясняется тем, что мы применили самый простой метод тестирования. Проведите тест на модели «Все тики», используя тот же временной период, и увидите, как количество сделок возрастет до девяти (см. рис. 5).

Рис. 5. Отчет тестера стратегий на модели «Все тики».
Рис. 5. Отчет тестера стратегий на модели «Все тики».

Тут же стоит заметить, что качество моделирования у нас достигло максимального показателя 90% (на минутном периоде максимальный показатель 25%). Вместе с количеством сделок выросла и чистая прибыль, так как по-прежнему у нас нет убыточных сделок. Но не стоит обольщаться – мы просто выбрали довольно удачный для этого советника исторический период. К тому же, никогда не стоит всерьез воспринимать результаты тестирования с небольшим количеством сделок. Минимальная выборка должна быть порядка 100 сделок, оптимальная – 1000. К тому же, исторический период должен быть не меньше года. Подтверждением вышесказанного будет тестирование этого советника с начала 2007 года по сегодняшний день. Там ситуация менее привлекательная.

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

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

В закладке «График» можно увидеть наглядную историю изменения счета, где синяя линия – это график изменения баланса, а зеленая – эквити (средств которые останутся при закрытии всех позиций). Если тестирование производится не постоянным объемом средств (в нашем примере объем постоянен — 0.1 лота), то в нижней части графика выводится гистограмма изменения объема сделок.

Еще одна важная закладка окна тестера – «Журнал». Здесь дублируется информация о совершаемых операциях. Также сюда выводятся все сообщения об ошибках. Поэтому всегда стоит сюда заглядывать, даже если тестирование прошло без видимых ошибок. Наиболее распространенными ошибками при написании советников являются попытки выставления отложенных ордеров слишком близко к рыночной цене, близкое выставление стопов и профитов, некорректное изменение параметров ордера или позиции. Последняя ошибка характерна как раз для советника MACD Sample. Если вы просмотрите весь журнал, то наверняка найдете такое сообщение об ошибке: «MACD Sample EURUSD,H1: OrderModify error 1». Это происходит из-за того, что советник несколько раз пытается изменить уровень стопа в безубытке на такое же значение. В дальнейшем мы немного подправим код советника, чтобы такая ошибка не появлялась.

В большинстве случаев в закладке «Журнал» отображаются только последние операции. Весь журнал можно просмотреть, открыв файл из папки МТ4\tester\logs с именем, представляющим текущую дату. Если производить один тест за другим, то в один и тот же файл журнала будет попадать информация из различных проходов тестирования. Чтобы журнал всегда содержал информацию только о текущем тесте, можно удалять этот файл самому или нажимать в закладке «Журнал» пункт контекстного меню «Стереть все журналы». К тому же чистить файлы журналов тестера иногда просто необходимо, так как частенько они занимают довольно большие объемы памяти.

Остальные статьи мастер класса «Работа с тестером стратегий MetaTrader4»

Оставьте комментарий