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

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

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

Если значимые результаты не удастся получить, то график будет пустой, а в журнале появится запись о том, что энное число результатов было отклонено как незначительное.

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

Явление переоптимизации

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

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

Для того, чтобы защитить себя от такого явления рекомендуется не ставить советник сразу на реальный счет, а прогнать его уже с новыми настройками на другом историческом участке (на котором оптимизация не выполнялась). То есть действовать предлагается в такой последовательности:

  • сперва выполняем оптимизацию, выбираем лучшую комбинацию настроек. Работать будеv с историей за последние полгода-год, для оптимизации выбираем временной промежуток в 3-4 месяца;
  • затем советник с новыми настройками тестируем на 2-месячном участке рынка, который при оптимизации не использовался;
  • кривую роста депозита сравниваем с той, какой она была до оптимизации. Если кривые более-менее подобны, то проблемы переоптимизации трейдер избежал, если же разница в доходности существенна, нужно либо проводить поиск оптимальных параметров и тестирование на более длинном промежутке времени (это сильно зависит от типа советника), либо увеличить шаг/уменьшить число оптимизируемых параметров;
  • если бот новый и ранее не использовался на реальном счету, можно попробовать его на центовом счете и только после этого подключать его к основному.

 

Влияет ли тип счета на результаты теста советника

Когда дело доходит до последнего этапа, т.е. советник с новым набором настроек торгует в режиме реального времени, на конечный результат может повлиять даже тип счета. Можно порекомендовать:

  • для советников, использующих спокойный стиль торговли, подойдет любой тип счета (центовый, демо-счет, обычный). Небольшие задержки в исполнении ордеров при торговле, например, на Н4 никакого влияния на результат не окажут;
  • боты на основе мартингейла (они же сеточники) также не особо требовательны к типу счета, основной упор в них делается на расчет положения ордеров, управление капиталом;
  • а вот скальпирующие роботы, особенно те, которые в день заключают много сделок с малыми целями, требуют быстрого исполнения, так что тип счета важен. На демо-счете исполнение мгновенное, а вот на центовом похуже, так что на этапе проверки результатов оптимизации остановиться лучше на реальном счете.

 

Причины переоптимизации

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

  • проблемы с самой ТС, положенной в основу робота. С таким может столкнуться автор на этапе создания советника, добавление/удаление разных индикаторов, условий для входа может привести к тому, что условий для совершения сделок будет слишком много. В результате сделок будет совершаться мало, система будет слишком сложной, на истории если и удастся подобрать более-менее рабочую комбинацию параметров, то в реальной торговле малейшее изменение рынка сделает советник неэффективным;
  • зацикливание на одном параметре. Предположим, что в алгоритме советника используется выход Стохастика из зон перепроданности/перекупленности, если при оптимизации уделять только этому параметру слишком большое внимание, то можно определить положение границ зон, дающее высокий результат на истории, но потом даже небольшое изменение рынка сведет всю работу на нет. Не следует излишнее внимание уделять только одному параметру, лучше выбрать несколько, а поиск вести с шагом средней величины;
  • выбран неудачный отрезок для оптимизации, под неудачным понимается тот период, когда валютная пара ведет себя нехарактерным для себя образом. Например, в стране произошла революция, стихийное бедствие или какое-нибудь другое потрясение. Подобный эффект будет получен и в том случае, когда выбранный временной отрезок захватывает только трендовый участок либо флет;

 

  • если в процессе оптимизации было совершено мало сделок, то доверять таким результатам однозначно не стоит. Понятие «мало» довольно расплывчато, для скальпера, работающего на m15, сотня сделок за пару месяцев – мало, но та же сотня за 2 месяца для бота на Н4 – нормальное явление. В это вопросе все индивидуально и учитывать нужно принцип работы советника, для скальпера обычно достаточно куска истории в 2-3 месяца, а вот бот, торгующий на дневках, лучше тестировать за последние пару лет;
  • желание достичь идеала может вылиться в то, что трейдер задает слишком малый шаг в оптимизируемых параметрах. В итоге у советника сужается пространство для маневра (если оптимизируемых параметров много) и демонстрировать высокий результат уже не получается. Если оптимальная комбинация настроек ищется среди 2-3 параметров, то такой подход вполне оправдан.

 

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

Если удачных результатов оказалось много, то выбирать нужно тот комплект настроек, который не слишком отличается от соседних. Графически результаты отображаются в виде зеленых прямоугольников, просто выбираем тот, который имеет самый темный оттенок и находится в окружении таких же.

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

Пример оптимизации сеточника

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

Рабочий таймфрейм у него m15, советник мультивалютный, так что предпочтений по валютным парам нет. Для начала (чтобы была база для сравнения), прогоним советник с базовыми настройками на периоде в месяц с небольшим, с начала февраля по 9 марта, январь в тесте не учитывался из-за обилия праздничных дней. Результаты теста сразу показывают все слабые места сеточника – прибыль составила чуть больше 20%, но и просадка превышает 80%. При оптимизации задача стоит в повышении прибыльности, также можно попробовать уменьшить просадку.

Сперва выбираем параметры, которые больше всего влияют на работу советника, в нашем случае это величина тейк-профита (по умолчанию она равна всего 11 пунктам), стартовый шаг между ордерами (25 п), а также коэффициент, вводящийся при расчете расстояния между остальными ордерами.

В качестве основного критерия при оптимизации выберем только максимальную прибыль, вообще в случае с сеточниками глупо рассчитывать на долгосрочную прибыль. Основная идея здесь строится на том, чтобы максимально быстро отбить величину стартового депозита и потом «рубить капусту» пока советник не выдохнется (периодически деньги, конечно, выводятся).

В результате оптимизации получаем массу результатов, так как основной критерий у нас – прибыльность, то выбираем соответствующие настройки. Правда, максимальная просадка при оптимизации превысила 80%.

Проверка результатов

Для проверки полученных результатов выполняем тест советника на участке истории с января по начало марта 2016 года с оптимизированными настройками. По сравнению с базовыми до 50 увеличился ТР и коэффициент умножения стал равным 1,2.

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

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

Всегда ли может помочь оптимизация

В предыдущем примере советник и с базовыми настройками показывал прибыль, нужно было только увеличить ее. Разберем случай, когда робот торгует с отрицательным результатом, показывая убытки. Для примера взят советник Nostradamus, при тесте на m30 с начала года он снизил объем стартового депозита на 5,7%, учитывая количество сделок, а их было больше 1000, с настройками у него явно не все в порядке.

Для оптимизации были выбраны такие параметры как величина ТР и SL, а также PipStep, именно они сильнее всего влияют на результаты торговли. К сожалению, автор советника не дает возможности изменять параметры индикаторов (в алгоритме используется Параболик и МА), так что ограничимся только этими настройками.

Несмотря на то, что алгоритм несложен, времени оптимизация может занять немало, так что шаг при поиске оптимальных настроек выберем достаточно большой. Поиск удачной комбинации будет проводиться в таком интервале: ТР – от 10 до 50 (шаг 10), SL – от 10 до 50 (шаг 10), Pipstep – от 6 до 10 (шаг 2).

Оптимизация выполнялась также на 3-месячном отрезке графика, в период с октября по декабрь 2015 года. Максимальная прибыль составила свыше 80% от стартового депозита при настройках ТР – 40 п, SL – 20 п, Pipstep – 10.

При тесте оптимизированными настройками на временном интервале с начала этого года существенного улучшения не произошло. Советник в течение 2 с небольшим месяцев торгует с прибылью, стремящейся к нулю, по состоянию на 9 марта прибыль с начала года составила $46,99, т.е. 0,47% от стартового капитала. Формально эффект от оптимизации есть, вместо убытка получили прибыль на том же промежутке времени, но прибыть эта просто смехотворна, а форма кривой изменения депозита не особо то и изменилась.

После использования улучшенных настроек видно, что значительно уменьшилось количество сделок. Это объясняется тем, что увеличился шаг между ордерами сетки, а значит и число одновременно открытых ордеров снизилось. Если сначала число сделок было равно 1098, то после оптимизации – всего 301.

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

Какую модель выбирать при оптимизации

По большому счету оптимизация – то же тестирование советника, но с разными наборами настроек. Тестирование некоторых роботов выполняется почти мгновенно, но есть и такие алгоритмы, в которых тест за 2-3 месяца занимает минут 5 и больше. Если нужно только пару раз прогнать советник на нескольких парах, то ничего страшного в этом нет, но при оптимизации таких проходов может быть больше 100, так что процесс растягивается на часы.

Если выбрать в тестере стратегий модель контрольные точки либо по ценам открытия, то процесс ускорится, но это сильно скажется на точности. Дело в том, что когда выбрана модель все тики, то тестер учитывает все колебания цены внутри рабочего таймфрейма, т.е. если советник тестируется на Н1, то учитываться будет и поведение цены на m1.

Модель по контрольным точкам учитывает данные только с ближайшего к выбранному таймфрейму (то есть при тесте на Н1 учитываться будут только данные с m30), а метод по ценам открытия подходит только для советников, которые открывают сделки во время открытия новой свечи. В подавляющем большинстве случаев единственный правильный вариант – использование модели «все тики» для достоверного результата.

Сравнение результатов при использовании разных моделей выполним на примере советника 4НBox Breakout. При тестировании по всем тикам было заключено 60 сделок, итог – убыток $52,3.

Выставляем в тестере модель «контрольные точки» и получаем тот же результат, что и при модели «по всем тикам». Это объясняется тем, что сделки данный советник заключает только на закрытии четырехчасовой свечи, поэтому поведение цены внутри 4-часовой свечи не особо важно, время теста сокращается примерно в 3-5 раз.

Но вот при использовании модели «по ценам открытия» получаем совершенно другую картину. Число сделок сокращается до 35 и кривая изменения депозита имеет совсем другие очертания. Если бы эта модель использовалась при тестировании и оптимизации советника, результаты были бы далеки от реальности.

Подведение итогов

Главная причина переоптимизации советников – непонимание трейдером самого механизма подбора оптимальных параметров. Отсюда следуют и самые распространенные ошибки – выбор неподходящего куска истории и ошибки в самой методике поиска оптимальных параметров.

При оптимизации главное – не скромничать с выбором куска исторических данных (хотя и здесь есть свои нюансы, если для скальпера достаточно и нескольких месяцев, то для долгосрочной торговли счет идет уже на годы). Также не следует пытаться подобрать идеальную комбинацию всех настроек робота, достаточно 3-4, сильнее всего влияющих на торговлю. В противном случае трейдер рискует получить идеальный результат на истории, но разочароваться при реальной торговле.

При соблюдении перечисленных правил автоматическая торговля если и не станет гарантированно прибыльной, то вероятность этого увеличится в разы. Источник: Dewinforex

Социальные кнопки для Joomla