Подгонка советника под историю

Опубликовано: 29.05.2018, раздел: Статьи

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

Содержание

Котировки от Альпари

История котировок от Альпари всегда была большой и емкой. Главное – это качество таких котировок. Нужно постараться, чтобы в истории было как можно большее количество данных. Если советник торгует на минутках, то нужны минутки, если он торгует на часовых барах, то нужны часовые бары. Понятно, что минутных баров будет в 60 раз больше, чем в часовых и это тоже нужно учитывать, т.к. объем таких данных нужно где-то хранить. В Метатрейдере можно проверить котировки в окне "Архив котировок" находится оно в меню "Сервис". Обратите внимание, что в моей истории котировок есть большой пробел - практически весь 2015 год выпал. Это большая дыра, но это можно исправить, как - это тема другой статьи:

окно архива котировок

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

Модель тестирования советника

Используйте только модель «по ценам открытия» - это самый надежный, быстрый и простой способ тестирования. Для этого ваш эксперт должен совершать сделки лишь в момент появления нового бара. Это делается так: если с приходом нового тика получаем сигнал на совершения сделки, то дожидаемся пока текущий бар не завершиться и на открытии нового бара открываем сделку. Всё это даёт огромный прирост в производительности тестера. Вы сможете тестировать такого советника быстро, точно и на длительном периоде времени.

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

модель тестирования

Подгонка советника на истории

С помощью Метатрейдера 4 и его тестера стратегий, можно очень легко подогнать сигналы эксперта под исторические данные. Т.е. переменные, которые будут подбираться на каждом проходе тестера, выстраиваются так, чтобы дать максимум прибыли. Это и есть подгонка под историю. Максимальная прибыль – это, почти всегда подгонка под историю. Тестируя эксперта, вы должны стремиться не к максимальной прибыли, а к стабильной прибыли. Т.е. кривая баланса должна быть максимально ровной и идущей вверх.

Количество переменных

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

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

параметры советника

Чем больше переменных доступно для оптимизации, тем больше шансов, что вы найдете прибыльный вариант. Но, тем больше шансов, что это будет простой подгонкой под историю. И сразу возникает вопрос: как же убедиться подгонка это или нет. Смею вас уверить, что любой результат оптимизации – это подгонка. Не пугайтесь, суть тестирования и оптимизации заключается в том, чтобы найти такой вариант набора параметров, при котором советник повторит свои результаты на последующем тесте “out-of-sample”.

Тест “out-of-sample” по своей сути, тоже подгонка, только вручную. Проводя тест на периодах, не вошедших в период, на котором велась оптимизация, мы выбираем те параметры, которые повторили результат за период оптимизации. Вот такая ерунда получается. Самое важное это, чтобы тестер продолжил торговать так же на реальном счете – вот, что важно!

Тест “out-of-sample”

Выбирая период для оптимизации, никогда не используйте для этого всю доступную историю. Нужно оставить небольшой период для теста “out-of-sample”. Т.е., если у вас есть история котировок с 2008 по 2018 год, то для оптимизации можно взять период с 2008 по 2015, а оставшуюся часть использовать для проверки торговли вне области оптимизации. Такие тесты дают бОльшую уверенность в результатах торговли советника на реальном счету.

Кривая баланса

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

кривая баланса

Генетический алгоритм оптимизации

В терминале Metatrader 4 есть замечательный инструмент – генетический алгоритм оптимизации. Он позволяет уменьшить количество проходов тестера и выйти на оптимальный результат быстрее и эффективней. Это позволяет использовать большое число настраиваемых параметров советника. Благодаря генетическому алгоритму параметры перебираются не по порядку, а выборочно, случайным образом и благодаря этому оптимизатор быстрей находит оптимальную комбинацию параметров. Его стоит использовать, если прямой перебор параметров проходит слишком долго.

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

Заключение

Metatrader 4 и Metatrader 5 имеют на борту отличный тестер стратегий и оптимизатор параметров. Пользоваться ими одно удовольствие. Только, нужно понимать, что любая оптимизация параметров — это подгонка под кривую. Ваша задача, как трейдера, таким образом подогнать систему, чтобы она еще некоторое время повторяла результаты тестов на реальном счете. Важно понимать, что нормальные системы дают порядка 20% прибыли в год. Если вы получили 100% в год, то будьте готовы к тому, что будете разочарованы при использовании вашего советника на реальном счету и реальных котировках Форекс.

С Уважением
Павел Смирнов.