понедельник, 28 сентября 2015 г.

Оптимизация торговых стратегий

Баян, но... 


1. Секционирование (сегментирование) данных.

Оптимизация проводится на исторических данных.
Данные необходимо подготовить для тестирования. Для этого необходимо весь интервал данных разбить на сегменты (секции), сделав первый сегмент более крупным, чем остальные (см.рис.1).



Рис.1. Секционирование данных

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

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

2. Этапы тестирования торговых систем с оптимизацией.

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

Типовая процедура оптимизации, как уже отмечалось выше, включает несколько этапов.

Этап.1. Первоначальная оптимизация – определение параметров МТС.

Первоначальная оптимизация проводится на основном или стартовом сегменте данных и её целью является поиск параметров торговой модели, способных увеличить эффективность МТС.
Оптимальные параметры модели для первого сегмента подыскивается путем простого подбора значений параметров модели, при которых параметры МТС оказываются наилучшими.
Первоначальная оптимизация производится исключительно в пределах стартового сегмента данных, который называется выборкой (sample) и используемый для поиска наилучших значений изменяемых параметров торговой модели. Данные более позднего времени, не подвергавшиеся анализу на этапе первоначальной оптимизации, именуются данными вне выборки (out-of-sample) и будут использованы для продолжения оптимизации на следующих этапах.
На этапе 1 определяются оптимальные значения параметров, обеспечивающие наилучшие характеристики МТС с точки зрения выбранных критериев оптимизации, однако результаты тестирования на выборке не дают объективной информации об эффективности торговой стратегии. Достоверные данные о параметрах полученной в результате тестирования МТС, характеризующие эффективность системы, могут быть определены только после проведения анализа данных вне выборки.

Этап 2. Проверка результатов.

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

Этап 3. Добавление данных.

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

Этап 4. Циклическая оптимизация.

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

Этап 5. Оценка результатов.

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

Комментариев нет:

Отправить комментарий