Главная Статьи Технический анализ Переподгонка. Суть и способы устранения
Переподгонка. Суть и способы устранения
15.08.2010 01:00

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

 

Вышеописанное явление хорошо известно в статистике, теории прогнозирования и искусственного интеллекта. Оно получило название «переподгонка» или «переобучение». Опытные трейдеры также о нем знают. Технический анализ построен на предположении, что прошлые ценовые закономерности повторяются в будущем. Обучая систему на истории котировок, трейдер рассчитывает, что она будет прибыльной, в надежде, что «схваченные» закономерности (напр., «сигнальные» периоды скользящих средних) и впредь сохранятся. К сожалению, как правило, ничего не известно о том, что именно эти закономерности из себя представляют: допустим, рассуждая в теханалитических терминах, «истинная» ценовая динамика порождается EMA, а трейдер использует SMA. Это напоминает поиск иголки в стоге сена с одной поправкой: точно неизвестно даже, ищется ли собственно иголка или, быть может, что-то другое. Это самое слабое место во всех теханалитических методах. Поскольку характер и смысл закономерностей изначально неясен, в принципе невозможно отличить «настоящую закономерность» от  «ненастоящей», отличить жемчужину от простого камешка. Раз так, система будет обучаться не только полезной информации – «жемчужинам», но и «шуму» – случайным связям, которые не найдут продолжения в будущем. Сразу напрашивается вывод: надо каким-то образом отфильтровать шум, отделив «зерна от плевел»…

 

Наиболее важный метод – разделение обучающей выборки на несколько частей. Часто это называют «кросс-валидация» (cross-validation). Запомните этот термин, он нередко встречается в литературе и специальных программах, в том числе и ориентированных на трейдинг. Я же буду использовать более простую терминологию. Итак, история котировок разделяется на три части: обучающую, тестовую и контрольную. Напр., для построения дневной системы на EUR/USD можно взять период за три года: первые 450 дней зарезервировать под обучение, следующие 200 – для тестирования и последние 100 – для окончательного контроля. Обучающая выборка используется для подгонки параметров торговой системы, напр., периодов скользящих средних. Тестовая – для мониторинга обобщающей способности системы. Тестовая выборка не используется при настройке параметров, поэтому эффективность системы на тестовой выборке показывает (частично), насколько хорошо она работает на новых данных. Система с хорошими показателями на обучающей выборке и плохими на тестовой отправляется в мусорку, поскольку она не способна извлекать прибыль на незнакомых котировках. Таким образом, производится отбор систем до тех пор, пока не будет найдена система с хорошими показателями как на обучающей, так и на тестовой выборке. К сожалению, такая процедура так же содержит в себе элемент подгонки. Интуитивно понятно, что перебирая всевозможные варианты, довольно высока вероятность чисто случайно подобрать систему с хорошими показателями и на обучающей, и на тестовой выборке. Вот тут-то и вступает в действие третья часть данных – контрольная выборка. После всего отобранная система должна быть прибыльной и на контрольной выборке! На этом перебор систем заканчивается. В том числе и в случае неудачи. Если система не работает на контрольной выборке, скорее всего, в данных нет никаких закономерностей, поэтому поиск должен быть остановлен. Дальнейший перебор с целью найти систему работающую и на контрольной выборке, означал бы лишь еще более изощренную подгонку.

 

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

 

На практике следует сочетать оба метода: разделение выборки и контроль сложности, но первый метод является более важным. Дело в том, что сложные системы, как правило, склонны к переподгонке, но не всегда. Я не буду здесь объяснять, почему это так, поскольку это уведет в плохо проходимые математические дебри. Кроме того, в трейдинге, в отличие от других отраслей, где также используется прогнозирование, как правило, нет проблем с объемом обучающей выборки, особенно на мелких тайм-фреймах, поэтому контроль сложности не столь актуален, – нет нужды высвобождать данные из тестового и контрольного множества для увеличения обучающей выборки, – она и так достаточно велика. К тому же финансовые данные крайне нестабильны, вряд ли есть смысл использовать для обучения данные десятилетней давности, поэтому объем выборки при оптимизации торговой системы – не самоцель. Это, кстати, тоже порождает большую проблему. С одной стороны, чтобы надежно выявить закономерности, нужно использовать как можно больше данных, с другой – слишком старые данные теряют актуальность и могут вовсе не содержать сегодняшних рыночных реалий. Оптимальный размер обучающей выборки следует подбирать опытным путем.

 

В итоге оптимизация торговой системы должна включать в себя следующие шаги:
1. Сбор данных. Анализ их актуальности. Определение объема обучающей, тестовой и контрольной выборки.
2. Отбор «жизнеспособных» систем по принципу «от простого к сложному» при помощи тестовой выборки.
3. Окончательное решение об эффективности системы по данным контрольной выборки.

 

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

 

 

q-trader

[обсудить на форуме]


 

Добавить комментарий


Защитный код
Обновить



© 2010–2012. Все права защищены.
Копирование материалов, размещенных на сайте, разрешается только с рабочей ссылкой на источник.



| О проекте |  Правовая информация |
|  Напишите нам |  Карта сайта |



  

 Новости
главные новости экономики и финансовых рынков: события, мнения, прогнозы.

 Статьи
материалы по теханализу, фундаментальному анализу, управлению капиталом (манименеджмент) и др.

 Рынки
фондовый, валютный, товарный рынки: исторические обзоры, динамика, доходность, корреляции.

 Калькуляторы
xls-калькуляторы для оптимизации размера и структуры торговой позиции; опционные калькуляторы.

 Софт
торговые терминалы, программы для теханализа, оптимизации систем и др.: статьи, обзоры, видеоуроки.

 Архив котировок
индексы, валюты, сырье: многолетние истории котировок в форматах .xls и .txt.

 Индикаторы
ºSiX – индикатор настроения рынка на основе расчета соотношения количества опционных контрактов put и call.

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

 Словарь
толкование основных экономических, финансовых терминов, трейдерский сленг.

 Форум
обсуждение материалов сайта и любых вопросов трейдинга и инвестирования.