Кросс-валидация - алгоритм оценки торговых систем » Элитный трейдер
Элитный трейдер


Кросс-валидация - алгоритм оценки торговых систем

Как обычно поступают при поиске оптимальных параметров торговой стратегии? Гоняют эту стратегию на решетке возможных параметров, и выбирают наилучшую эквити из полученных. Однако в подавляющем большинстве случаев стратегия не дает в реальной торговле такие же хорошие результаты, которые она показывала на графике в прошлом.
8 января 2014 long-short.ru mehanizator

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

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

Идея проста – оптимизировать систему на одном куске данных, а тестировать ее на другом куске данных. Например, если есть данные за два года, оптимизировать систему на данных за первый год, а тестировать ее на данных за второй год.

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

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

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

Следующий шаг – увеличить число блоков. Обычно используется 10-15. Это повышает устойчивость оценки.

Таким образом, алгоритм N-блочной кросс-валидации таков:

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

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

Оригинал статьи на long-short.ru

http://www.long-short.ru/ (C)
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter