Оптимизация и тестирование советников для форекс
В прошлый раз, мы говорили о том, как определиться с целями своей финансовой независимости и о том какие возможности предоставляет нам торговля на форекс. Сегодня, перед тем как перейти к выбору советника и проверки его работоспособности, хочу сразу предупредить, что для тестирования и оптимизации советников необходим достаточно мощный компьютер, а лучше использовать отдельный удаленный сервер (VPS).
Итак, определяемся с выбором советника...
Первое, в чем нам необходимо убедиться, это то, что прибыль, которую может приносить советник, будет соответствовать нашим ожиданиям.
Второе - нам должен быть понятен алгоритм его работы. Обязательно при советнике должен быть мануал или описание, при каких условиях открывается сделка и какие условия выхода из сделки.
Следующее. В советнике должен присутствовать мани менеджмент, принцип управления капиталом. При ручной торговле, вы же увеличиваете размер открываемой позиции по мере роста вашего депозита. В противном случае при тестировании советника, вы не получите желаемый результат по прибыли.
И самое главное - торговый алгоритм, должен быть адаптивен под любую рыночную ситуацию. К примеру, если выбранная вами система, предназначена для торговли валютой в рендже, то, скорее всего при наступлении трендового движения она будет «сливать». Или же если система предназначена для торговли по тренду, то при боковом движении, она не будет торговать или приносить совсем малую прибыль. А, как известно, 70% рынка форекс составляет флетовое движение.
Это основные требования к советнику и они должны быть описаны у продавца или у тех, кто безвозмездно распространяет свое чудо алготрейдинга. Основываясь на этих принципах, вы можете составить свое тех. задание для создания (написания) советника.
Перейдем к технической части
Чтобы в миллионный раз не повторяться, что такое тестирование и оптимизация советников, расскажу о принципах, и о сложностях которые могут встретиться, и как эти сложности преодолеть.
Первое с чем мы сталкиваемся – это история котировок. От качества котировок и «глубины истории» зависит насколько близко к реальности, будет соответствовать работа советника в реальном времени. Однозначно могу сказать, что работа советников при реальной торговле, будет отличаться от того что вы увидите при тестировании.
Второе – это принцип работы тестера в МТ4. Как я писал ранее, тестер предоставляется в закрытом коде, что там внутри (какие у него мозги), мы можем только догадываться. С этим ничего не поделаешь. Для написания собственного тестера автоматических стратегий, нужно достаточно времени, светлых умов и хорошего финансирования. В случае с МТ, нам приходится доверять разработчикам.
И всё же, где и как получить нужную историю котировок?
Для начала, я рекомендую установить отдельный терминал, который в дальнейшем, вы будете использовать только для тестирования советников. Установите демо или реальный счет и нещадно удалите все графики.
После закройте терминал и подчистите всю историю, которая самостоятельно загрузилась при установке терминала. Файлы находится в папке “history”, с расширением “hts”.
После чего снова запустите терминал.
Если откроем «архив котировок», то увидим там следующую картину:
Таким образом, мы получим «чистый» терминал.
Двойным кликом мышки по выбранной паре (инструменту), на тайм-фрейме М1, закачайте историю с сервера вашего брокера, но она будет совсем коротенькая, буквально пару дней.
Аналогично можно повторить процедуру с другими временными интервалами. Дальше дневного (D1), загружать не стоит, т. к. в тестере нет возможности тестировать старше «дневки». И обязательно просмотрите «глубину истории». К примеру, у моего брокера исторические данные на М5 уходят глубиной, немногим более недели, на М15 – почти на месяц, на М30 – 2 месяца, Н1 (час) – 4 месяца, Н4 – год и 4 месяца, D1 (дневной) – почти 8 лет. Если вы, к примеру, захотите протестировать советник на периоде в 3 года, на тайм-фрейме М5, то тестирование начнется с того времени на сколько есть истории по этому ТФ, в моем случае – это неделя.
Что ж, давайте искать более глубокую историю
У нас еще есть «волшебная» кнопка – «загрузить». При нажатии этой кнопки, начинается загрузка с сервера “MetaQuotes”, с таким вот предупреждением.
Мы получаем историю с далекого 1971 (!) года.
Но реальная история для М1 начинается с 1999 года
и заканчивается в ноябре 2016 года.
Что ж, вполне хороший отрезок истории для тестирования наших советников.
При этом, загружается история сразу по всем тайм – фреймам. Это можно проверить, перейдя в ту же папку “history”.
Т. к. история нам нужна для тестирования, то и перенести ее нужно в папку с историей, которая находится по адресу “tester”, “history”. К тому же, нужно ее сконвертировать, в необходимые нам для тестирования, временные интервалы. Для этого открываем тестер стратегий, выбираем любой советник встроенный в МТ4. Далее:
символ – по которому загружали историю;
модель – все тики;
период – М1;
спред – текущий, если спред фиксированный.
Устанавливаем начальную и конечную даты тестирования, те которые были указаны при загрузке истории. Жмем «старт».
Аналогичную процедуру проделываем с другими ТФ. Т. к. старшие ТФ формируются из младших, то с М1 формируется М5, М15, М30, Н1, Н4 и D1. Все конвертируемые периоды записываются в папку с тестером стратегий, “tester”, “history”. При этом получаем соответствующее качество моделирования:
М5
М15
М30
Н1
Н4
D1
Теперь наш терминал полностью готов для «работы» с советниками.
Единственное, что тестирование советников на М1 будет с невысоким качеством моделирования. Для тестирования на минутках, можно скачать и установить тиковую историю, но это отдельная тема. Обычно на минутном интервале тестируют «высокочастотные» советники. А в тестирование на дневном графике, не вижу целесообразности, потому как на дневном графике можно успешно торговать руками. Дневные котировки в тестере нужны для того, чтобы советник мог брать данные с «дневки» а саму торговлю проводить на младшем ТФ, если такой алгоритм предусмотрен в коде советника.
Теперь что касается качества истории
Бытует мнение, что в таких исторических данных присутствуют «дыры», пропуски в котировках. Проверить минутные котировки на периоде хотя бы в 3 года, дело непростое. Однако при беглом просмотре, несомненно, пропуски имеют место быть. Но они попадают в основном на выходные и праздничные дни и особого влияния на тестирование советников не окажут. Как я уже упоминал, работа советника в реальном времени и на истории будут отличаться.
Как получить «рабочие» параметры для торговли советником в реальном времени?
Для тех, кто не в курсе, советники устанавливаются в папку “MQL” => “Experts” и перегружаем терминал.
Для тестирования советника, выбираем период тестирования. В зависимости от ТФ на котором работает советник, этот период может составлять от 3-х до 9 лет. Данный период делим на 3 примерно равные части. И на среднем отрезке будем проводить оптимизацию, а на крайних, тестировать полученные параметры советника. Требования к участку истории, на котором будем оптимизировать советник. Этот отрезок должен иметь как трендовое движение, так и флет. Это объясняется тем, что если вы получите параметры советника на флетовом или трендовом участке, то на тестовых участках может быть совсем другая ситуация. А как мы помним, то советник должен быть устойчив к различному состоянию рынка.
Итак, на участке оптимизации, в параметрах советника отмечаем те параметры, которые необходимо подобрать, устанавливаем размер начального депозита и запускаем процесс оптимизации.
После окончания оптимизации, выбираем результаты соответствующие ожидаемой прибыли с меньшей просадкой, и «прогоняем» их на тесте (без оптимизации). Таких параметров должно быть несколько. Отмечаем подходящие результаты и сохраняем в виде set – файлов. После, каждый из сохраненных файлов, тестируем на первом и последнем участке истории. Если тестирование на этих участках проходит успешно и полученные результаты удовлетворяют ваши ожидания, то после «прогоняем» выбранный файл на всем участке истории.
К примеру: вы выбрали участок истории в 6 лет, разделили его на 3 равные части (по 2 года), на среднем участке, путем оптимизации параметров выбрали несколько результатов, «прогоняете» их на первом и последнем участке и если всё ОК, то после прогоняете на всем периоде в 6 лет. Только после таких манипуляций, полученные настройки советника, могут считаться подходящими для торговли.
Данный процесс занимает достаточно много времени. Поэтому вместе с советником в комплекте, нам предлагают готовые set – файлы. В этом вопросе нужно быть критичным и всё проверять.
Теперь вы знаете некоторые тонкости по алготрейдингу и вам решать, что для вас лучше и удобнее.
Одно могу сказать, что автоматическая торговля, начала занимать лидирующие места на финансовых рынках. Роботы не знают эмоциональных проблем, ими не движут «жажда наживы» и «страх потери», они монотонно выполняют поставленную перед ними задачу. И качество данной работы зависит от того, насколько правильно в роботе прописан алгоритм действий.
Ну а мы в следующих статьях перейдем к практическим приемам по разработке, настройке и оптимизации торговых советников и авторских индикаторов технического анализа
Как правильно выбирать советник? часть 3
Олег Иванов, трейдер, ПАММ-управляющий, разработчик торговых стратегий.
Свежие новости финансовых рынков, анализ форекс на Главной странице