Как настроить стратегию для Форекс без переподгонки параметров?

История изменений

03.06.2018 Алгоритмы настройки стратегии.
11.10.2016 Дополнения 1.
01.10.2016  Начало публикации новой редакции материала.
08.07.2014  Публикация первой версии переработанного и дополненного материала.

Спорт и трейдинг.

Представьте себе, что вам поручили подобрать сборную для выступления на Олимпиаде с целью получения максимального числа медалей относительно числа участвующих спортсменов. То есть, получить максимальную отдачу на вложенные средства. Для достижения такой цели вам нужно отобрать лучших спортсменов, которые имеют шанс взять медаль. Чем больше будет таких спортсменов, тем больше будет шансов получить больше медалей. Если сделать ставку на малое число лучших спортсменов, то все они могут проиграть. Если взять как можно больше спортсменов, отдача относительно числа участников будет низкой. Поэтому желательно выбрать лучших из лучших, но не навредить излишней диверсификацией конечному результату.

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

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

Способы тренировки и переподгонка под кривую.

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

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

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

Для примера переподгонки возьмем готовую стратегию из списка предустановленных стратегий TradeStation, за 5 минут оптимизирую на истории за два года и получаю вот такой график доходности:

Отчет стратегии.
Вложил 10000$, через два года получил 200000$. И это простейшая стратегия без управления капиталом. Смотрим, что получилось бы после начала торговли по сигналам этой стратегии:

Отчет стратегии.
Сначала взлет, потом падение и потеря части депозита. Очень часто начинающий трейдер получает в свои руки "Грааль" такого рода, начинает получать доход и "крышу сносит" от успеха. В торговлю вкладываются все возможные средства. Затем рынок расставляет "точки над и". Человек остается без денег и винить ему остается только себя - за свое невежество, легковерность и жадность.

Мошенники осознанно используют переподгонку под кривую для создания сверх прибыльных стратегий/советников, которые прекрасно работают на небольших участках истории. Доверчивые трейдеры, покупают или получают "в подарок за открытие счета" такие стратегии (советники), пробуют торговать с их помощью и теряют в итоге свои деньги.

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

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

Минимальный рыночный цикл - год. Следовательно, минимальный интервал проверки тоже составляет год. Я считаю, что работа стратегии должна оставаться стабильной минимум в течение 30% времени от интервала настройки. Таким образом, интервал настройки должен быть в три раза больше, чем интервал проверки. Следовательно, минимальный интервал настройки - три года. Интервал проверки должен содержать все рыночные фазы, на которых может работать та или иная стратегия. Выбор интервалов должен быть адекватен именно разрабатываемой стратегии.

Например, торговля по моделям для GBP/USD предполагает торговлю во время высокой и низкой волатильности на среднесрочных периодах. Для такой стратегии интервалами проверки будут несколько лет с разными фазами высокой, низкой и "кризисной" волатильностью. Причем в период "кризисной" волатильности от стратегии требуется не заработок, а отсутствие сделок. А вот для импульсной стратегии, которая будет рассчитана именно на "кризисную" волатильность, интервалом настройки будут несколько лет "кризисной" волатильности. Интервалом проверки будет год "кризисной" волатильности и вся остальная доступная история. На истории с низкой волатильностью импульсная стратегия не должна генерировать сделки или в худшем случае доходность стратегии должна быть в район нуля.

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

Во время выбора адекватных интервалов настройки и проверки, необходимо учитывать следующие факторы:
  1. Целевые рыночные фазы, под которые разрабатывается алгоритм стратегии.
  2. Рыночные фазы и периоды разной волатильности, которые могут встречаться на том или ином торгуемом активе.
  3. Достаточный объем качественной истории, позволяющий провести настройку параметров торговой стратегии.
Для примера оценки рыночных фаз, рассмотрим динамику GBP/USD. Потенциал трендов в разные периоды достаточно просто увидеть с помощью индикатора Gelium_Trend. Но кроме преобладающих трендов, надо обратить внимание на волатильность цен, так как от волатильности зависит потенциальная доходность, уровни стопов, возможность использования того или иного способа для открытия позиций. Например, во время кризиса [2009-2010] модели формировались крайне редко и лучшее, что можно было делать - это временно не торговать по моделям или входить в рынок редко по очень хорошим сигналам. Зато в эти периоды высокой волатильности прекрасно работали импульсные стратегии.

Для определения волатильности в качестве индикатора возьмем недельные диапазоны цен (красная диаграмма):

Фазы волатильности на рынке Forex.
Мы можем увидеть, что в 2008 году, в связи с кризисом, волатильность резко возросла и снизилась к началу 2010 года. Можно было бы предположить, что в 2010 году модели уже должны были бы хорошо работать, однако это не так. Волатильность в 2010 году все еще оставалась очень высокой и мы просто не видим этого на недельных диапазонах. Чтобы учесть колебания, происходившие внутри недельного бара, возьмем суммарное число движений за неделю (синяя диаграмма):

Фазы волатильности на рынке Forex.
Теперь видно, что в 2010 году волатильность оставалась "кризисной" и только в 2011 году рынки вернулись к своей "обычной" динамике цен, модели стали работать хорошо, а импульсные стратегии уменьшили свою доходность.

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

Теперь от рассмотрения актива перейдем к использованию этих данных в контексте конкретных стратегий. Затем, как альтернативу "валютному" подходу, рассмотрим товарный рынок золота.

Итак, для GBP/USD можно выделить следующие основные фазы:
  • [2002-2004] и [2006-2007] - преобладали долгосрочные большие тренды.
  • [2000-2001] и [2004-2005] - преобладали среднесрочные тренды с периодами повышенной волатильности.
  • [2008-2010] - высокая "кризисная" волатильность.
  • [2011-201x] - волатильность снизилась и по мере взятия курсовых колебаний под контроль картеля ЦБ-6 через валютные свопы, продолжает постепенно снижаться.
Если рассматривать стратегию торговли по основным моделям, то в отношении GBP/USD при торговле среднесрочными моделями для нас будут актуальны следующие фазы:
  • Целевая история с нормальной волатильностью, во время которой модели хорошо работают.
  • Периоды воздержания от торговли с высокой "кризисной" волатильностью.
  • Периоды с низкой волатильностью последних лет, так как изменение динамики цен из-за действий картеля ЦБ-6 делает оптимальными другие значения параметров торговой стратегии.
Для торговли по моделям, для интервала проверки, можно использовать несколько интервалов с разными фазами рынка:
  • [2013-201x] - годы со снижающейся волатильностью.
  • [2009-2010] - годы с "кризисной" волатильностью.
  • [2000-2001] - относительно "устаревшая" история, которая полезна для проверки устойчивости стратегии.
Остальная история может использоваться для оптимизации параметров стратегии с последующей проверкой результатов на интервалах проверки.

Если рассматривать фазы GBP/USD в контексте других стратегий, то выбор интервалов настройки и проверки будет уже другим. Так для импульсной стратегии в качестве интервала настройки должны браться периоды с высокой и "кризисной" волатильностью. В такие периоды импульсные стратегии наиболее прибыльны. А вот для работы внутри диапазонов такие периоды губительны и для них в качестве интервалов настройки будут хороши годы с низкой волатильностью. Во время "кризисной" волатильности такие стратегии должны в худшем случае минимизировать убытки в районе нуля или воздерживаться от генерации торговых сигналов.

Для валют оправданно тестирование с использованием истории за период [2001-201x], так как принципиальных фундаментальных изменений на валютном рынке не было. А вот для рынка золота такой подход оптимальным уже не будет. Рассмотрим волатильность цен на золото:

Фазы волатильности на рынке Forex.
Можно выделить следующие фазы для рынка золота:
  • [2000-2007] - относительно низкая волатильность и малые объемы, связанные с отсутствием интереса к золоту со стороны инвесторов и рекламе золота банкирами как "пережитка прошлого".
  • [2008-2012] - использование золота как защитного актива из-за финансового кризиса и эмиссии валют.
  • [2013-201x] - вывод денег крупных фондов с рынка золота по договоренности с ФРС и первичными дилерами на фондовые рынки. На рынок пришли HFT-трейдеры.
Нет смысла использовать историю [2000-2007] годов в качестве целевой, так как HFT-трейдеры уже не уйдут с рынка и компьютерные технологии не вернутся на 10 лет в прошлое. Поэтому эта история хороша только для интервала проверки.

Исключать возможность повышения волатильности нельзя, так как QE-эмиссия продолжается. Возврат крупных инвесторов на рынок металлов, в случае обвала фондового рынка, так же возможен. Поэтому история [2008-201x] актуальна и для настройки, и для проверки.

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

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

Цель тренировки.

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

Например, мы настраиваем стратегию на интервале настройки в пять лет. Шестой год будет интервалом проверки. Какой критерий оптимизации стоит использовать в качестве целевого? Зададим максимальную прибыль, стратегия может быть в итоге настроена под один год, который даст огромную прибыль с убытками в остальные 4 года. Зададим в качестве цели максимальное число прибыльных сделок, получим 100% прибыльных сделок – всего три прибыльных сделки за все время. Зададим в качестве цели максимальную среднюю доходность, получим среднюю доходность в 30%, а при рассмотрении большого числа тестов выясним, что с меньшей стабильной доходностью в 20%, имея больший разброс доходностей, в итоге можно было взять несколько наборов параметров с общей отдачей больше 100% годовых.

Ранее я предлагал трейдерам в качестве целевого критерия использовать оптимизацию с целью поиска лучшей доходности для года, который имеет меньшую доходность относительно остальных лет участка настройки. Такая оптимизация позволяет находить зоны параметров со стабильной доходностью. Этот критерий далек от идеала, так как цель поиска определяется «слабым звеном». А ведь могут быть варианты, когда ещё более «слабое звено» в сочетании с остальными годами в итоге дает намного большую итоговую доходность. Тем не менее, лучшие варианты для цели оптимизации мне не известны.

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

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

Для получения избыточного числа тестов в качестве целевого критерия оптимизации можно использовать максимальную прибыль за все время интервала настройки. Однако TradeStation имеет ряд нестандартных целевых критериев оптимизации, которые так же могут использоваться в качестве целевых критериев:
  1. Robustness Index (индекс устойчивости) - индекс устойчивости является отношением градиента кривой прибыльности на интервале проверки (out-of-sample) к градиенту кривой прибыльности на интервале настройки (in-sample).

  2. Perfect Profit Correlation (совершенная корреляция прибыли) - вычисляет корреляцию фактической кривой прибыли по сравнению с "совершенной" кривой, как будто стратегия смогла купить по каждой минимальной цене и продать по каждой максимальной цене. Генетический оптимизатор будет стремиться найти параметры, которые позволят кривой прибыльности максимально соответствовать "совершенной" кривой.

  3. Pessimistic Return on Capital (пессимистический возврат на капитал) – целевая функция, которая представляет очень консервативное значение возврата на капитал (ROC).

  4. Expectancy – целевая функция, которая измеряет ожидаемую прибыль на доллар, которым рисковали во время сделки. Расчет базируется на методе Van K. Tharp.

  5. TradeStation Index - целевая функция, которая максимизирует чистую прибыль и число прибыльных сделок, минимизируя максимальную внутридневную просадку. Вычисляется по формуле Net Profit * NumWinTrades / AbsValue (Max. Intraday Drawdown).
Попробовав тот или иной целевой критерий можно по порядковому номеру оптимального теста в журнале итогов оптимизации определить, какой из целевых критериев позволяет наиболее быстро найти оптимальный набор параметров. Так же можно проводить несколько оптимизаций с разными целевыми критериями, чтобы в итоге из полученных наборов параметров выбрать лучшие. Для разных стратегий наибольшую скорость поиска могут обеспечивать разные целевые критерии. Поэтому выбор целевого критерия зависит от трейдера, который настраивает стратегию.

Алгоритмы настройки стратегии.

В конце 2016 года в этой статье очень подробно был рассмотрен алгоритм настройки стратегии, который можно назвать алгоритмом расширения интервала настройки. Сейчас я считаю, что этот алгоритм не оптимален, поэтому подробное его описание из статьи убрал. Кратко алгоритм заключается в следующем:
  1. Берем начальный интервал настройки. Например, три года или больше. Интервалом проверки будут следующие после трёх лет два года.

  2. На интервале настройки оптимизируем стратегию с выгрузкой её показателей в Excel.

  3. Анализируем в Excel различные показатели стратегии, без просмотра итогов работы стратегии на интервале проверки и отбираем лучшие тесты.

  4. Проверяем результат отбора лучших тестов:
    • Сохраняется ли стабильная прибыль на интервале проверки? Если нет, то были ли тесты со стабильной доходностью?

    • Какие параметры стратегии позволяют найти тесты с лучшими показателями доходности и стабильности?

    • Изменения каких параметров улучшают стабильность и прибыльность стратегии, а какие изменения ухудшают?

    • В каких диапазонах изменения параметров не оказывают значительное влияние на результат стратегии?
  5. Анализ сделок лучших тестов на графике с целью поиска недочётов алгоритма или возможности улучшения базового алгоритма.

  6. Тюнинг с добавлением одного года интервала проверки к интервалу настройки. В качестве диапазонов для тюнинга берутся те диапазоны, которые предполагают минимальное влияние на общий результат торговли.

  7. Проверка результатов тюнинга по схеме из пунктов 2-6. Увеличение интервала настройки на один год и переход к пункту 2 до тех пор, пока есть новая история для расширения интервала настройки с сохранением интервала проверки в 1-2 года.
Предложенный выше алгоритм позволяет очень хорошо изучить работу стратегии и влияние параметров на её показатели, но обладает несколькими очень существенными минусами:
  1. Тюнинг стратегии с включением предпоследнего года или с использованием всей доступной истории может привести к выбору оптимальных параметров, которые будут оптимальны на истории, но во время реальной истории отдача от стратегии существенно снизится.

  2. Расчёты по приведённому алгоритму требуют очень много времени.
Как показывает мой личный опыт, времязатраты на столь сложный алгоритм настройки неоправданно высоки. На мой взгляд, гораздо эффективнее иметь больше стратегий с меньшей возможной отдачей для создания диверсифицированного портфеля, чем иметь пару стратегий, «прокаченных» по полной программе. Поэтому я в последнее время использую следующий алгоритм для настройки стратегии:
  1. На всей истории отбирается целевой рыночный контекст, на котором стратегия должна приносить прибыль. Например, посткризисная история [2011-2016] для интервала настройки. Интервалом проверки будет история [2017-2018]. Для некоторых стратегий интервалом проверки будет история и за период [2002-2010].

  2. Стратегия оптимизируется с целью максимальной доходности для года с наименьшей доходностью интервала настройки. По возможности оптимизируются сразу все параметры стратегии с помощью генетического алгоритма. Такие расчёты времязатратны, но современная техника позволяет делать такие расчёты.

  3. Из результатов оптимизации отбирается 5-10 лучших тестов по доходности, уровню просадки, проценту прибыльных сделок для анализа:
    • Есть ли тесты со стабильной доходностью на интервале проверки? Если таких тестов нет, стратегия не пригодна для торговли.

    • Какие значения параметров снижают стабильность торговли на интервале проверки? Можно ли на основании этих данных улучшить стабильность торговли?
  4. Анализ сделок лучших тестов на графике с целью поиска недочётов алгоритма или возможности улучшения базового алгоритма.
Если в результате оптимизации стратегия сохраняет прибыльность на интервале проверка в два года, стратегию буду использовать без тюнинга для торговли. Для модельной торговли можно использовать тюнинг в малых диапазонах от базовых параметров при обоих подходах, так как визуально можно проверить качество входов. Для стратегий, которые используют статистические особенности изменения цен, которые нельзя визуально контролировать, тюнинг может легко сдвигать параметры стратегии из зоны устойчивости к будущим изменения рынка в зону неустойчивости. Поэтому, на мой взгляд, для таких стратегий лучше отказаться от тюнинга полностью.

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

Продолжение следует...

Pavel Gelium 2000-2017 © All rights reserved.