Книга: Опционы: Разработка, оптимизация и тестирование торговых стратегий
Назад: 5.3. Моделирование торговых заявок
Дальше: 5.5. Оценка прибыльности

5.4. Построение надежной системы тестирования

При построении системы бэктестинга разработчиком решаются две основные задачи: всесторонняя оценка прибыльности тестируемой стратегии (этой теме посвящен раздел 5.5) и оценка вероятности того, что прибыльность, установленная на исторических данных, будет сохраняться в будущей реальной торговле. На самом деле оценить такую вероятность в терминах формальной теории вероятности не представляется возможным. Поэтому правильнее будет сформулировать вторую задачу разработчика как максимизацию вероятности того, что показатели стратегии не будут существенно ухудшаться при ее использовании в реальной торговле.
Для того чтобы создать надежную систему тестирования, необходимо опираться на следующие взаимосвязанные принципы:
• обоснованное соотношение исторического периода, на котором производится оптимизация стратегии (in-sample period), и периода непосредственного тестирования стратегии (out-of-sample period);
• возможность повторных оптимизаций, осуществляемых по мере продвижения стратегии по ценовой истории (адаптивная оптимизация);
• адекватные средства предотвращения заоптимизированности (overfitting);
• специальные механизмы тестирования устойчивости (robustness) системы тестирования.

5.4.1. In-sample оптимизация и out-of-sample тестирование

Для организации бэктестинга период, охваченный доступной разработчику базой исторических данных, разбивается на две части. В простейшем случае – это два периода: период настройки и оптимизации стратегии τs (in-sample) и период проверки и тестирования стратегии τo (out-of-sample). Взаимное расположение in-sample и out-of-sample периодов может быть разным. Период τs может предшествовать периоду τo, или наоборот. Непрерывность периодов также не является обязательной.
Период τs служит для построения стратегии. На нем производится тестирование базовой идеи, определение совокупности настраиваемых и фиксируемых параметров, поиск оптимальных значений параметров. Для этого используются различные показатели качества стратегии и техники оптимизации. После выбора окончательного варианта стратегии, ее работоспособность проверяется прогонкой на интервале τo, который не использовался при построении стратегии. На нем измеряются те же показатели качества, которые использовались при разработке стратегии, а также другие показатели, выражающие в разных формах ее доходность, риск и стабильность работы. При сохранении значений показателей на приемлемом уровне делается предположение о том, что стратегия достаточно устойчива и что в будущем она способна сохранять свою эффективность.
Чем больше протяженность периода, на котором производится оптимизация стратегии, тем больше вероятность того, что в этот период попадут различные фазы рынка. Основной проблемой исторических временных рядов является их нестационарность. В зависимости от настроений участников рынка, от экономической и политической ситуации наблюдаются разные закономерности поведения рынков. На рынке акций или фьючерсов принято выделять фазы восходящих и нисходящих трендов, а также периоды относительной стагнации цен без явно выраженных трендов. При работе на опционном рынке важное значение приобретают еще и фазы низкой и высокой волатильности.
Определенная стратегия может показывать разную эффективность в разные фазы рынка. Даже если не стремиться к построению универсальных стратегий, работающих в любых рыночных условиях, необходимо убедиться, что при смене фазы успешная стратегия не превратится в убыточную. Увеличение длины периода τs повышает вероятность захвата как можно большего разнообразия рыночных фаз, тем самым повышая устойчивость стратегии к изменяющимся рыночным условиям. Соответственно, результаты настройки стратегии на более протяженном периоде истории являются более надежными. С другой стороны, чем короче период, используемый для оптимизации, тем лучше эта стратегия будет настроена на рыночные тенденции, превалировавшие на рынке в последнее время. Такая оптимизация при прочих равных условиях будет более стабильной. Таким образом, решение о выборе длины исторического периода, используемого для оптимизации, является продуктом компромисса между надежностью и стабильностью.
Применительно к опционным стратегиям существует ориентир, с помощью которого можно найти компромисс между надежностью и стабильностью. Таким ориентиром является средневзвешенный (по объемам позиций) интервал времени, остающийся до истечения опционов. В общем виде можно утверждать, что чем больше времени остается до экспирации, тем более продолжительным должен быть период истории, на котором производится оптимизация. Например, если стратегия ориентирована на позиции, создаваемые из опционов, до истечения которых остается от двух до 20 дней, то период истории для оптимизации может быть значительно короче, чем для стратегии, основанной на торговле долгосрочными опционами (LEAPS).
Продолжительность периода тестирования не может быть меньше времени, остающегося до истечения опционов. Можно предложить следующее правило: τs должен включать не менее 10 полных неперекрывающихся циклов экспирации. Например, если средневзвешенный период времени, остающийся до истечения опционов, составляет 22 рабочих дня, то минимальная протяженность τs должна быть не меньше 220 дней. Такой расчет должен корректироваться в зависимости от среднего количества открываемых позиций. Чем больше количество производимых стратегией операций, тем более достоверной будет статистика прибыльности и тем более короткий период τs может являться приемлемым.

5.4.2. Адаптивная оптимизация

В алгоритм стратегии можно включить процедуру адаптивной оптимизации. Такая процедура реализуется с помощью скользящего окна оптимизации. Для формализованного описания процедуры адаптивной оптимизации воспользуемся параметрическим описанием стратегии S(P), где P обозначает вектор значений параметров, определяющих стратегию. Обозначим через τ(T) = [T – Δt + 1, T] интервал истории, заканчивающийся в определенный момент времени T и имеющий протяженность Δt дней (или других тайм-фреймов). При движении точки T из прошлого в будущее интервал τ(T) также двигается вслед за T. Предположим, что для данной стратегии определен алгоритм оптимизации A, который для интервала истории τ путем оптимизации вырабатывает вектор параметров P*(T) = A(τ(T)). Через l обозначим расстояние между моментами оптимизации, а через T0 – начальный момент времени. Тогда алгоритм моделирования торговли с адаптивной прогонкой будет выглядеть так. В моменты времени Tn = T0 + nl (где n – номер шага адаптации, пробегающий значения n = 1, 2, 3…, nlast), включается алгоритм оптимизации A, вырабатывающий новые значения параметров P*(Tn) = A0(Tn)). Стратегия S(P*(Tn)) торгует на следующем за Tn интервале времени [Tn + 1, Tn + 1], после чего выполняется новый шаг адаптации и последующей торговли.
Фактически в результате введения адаптивного механизма исходная стратегия S(P), изначально обладавшая комплексом параметров P, превращается в сложную стратегию, представляющую собой последовательность (S(P*(T0)), S(P*(T1))…, S(P*(Tn))…). В сложной стратегии к исходным параметрам добавляются два новых параметра l и Δt, которые также могут быть подвергнуты процедуре оптимизации (подбору наилучших значений этих параметров). Бэктестинг стратегии, включающей периодическую реоптимизацию, может быть оценен (также как бэктестинг исходной стратегии) с помощью стандартных показателей эффективности, по которым можно принимать решение о применимости адаптивной оптимизации в каждом конкретном случае.
Адаптивная оптимизация во многих случаях позволяет строить стратегии, более устойчивые по отношению к смене фаз рынка. Однако необходимо помнить, что адаптивная оптимизация не устраняет проблему заоптимизированности стратегии, поскольку является ничем иным, как такой же оптимизацией, но с более сложной структурой. Более того, использование адаптаций в системе бэктестинга неизбежно приводит к увеличению числа оптимизируемых параметров, что, в свою очередь, может способствовать увеличению риска заоптимизированности (см. раздел 5.4.3). Тем не менее наш опыт применения адаптивной оптимизации подсказывает, что, если стратегия тестируется на достаточно большом интервале истории и генерирует достаточное количество сигналов на открытие позиций, ее будущая устойчивость более вероятна, чем в случае оптимизации на неподвижном историческом окне.

5.4.3. Проблема заоптимизированности (оverfitting)

Чрезмерная оптимизация параметров приводит к тому, что алгоритмы многих торговых стратегий демонстрируют высокие показатели эффективности на фиксированном участке прошлой истории. При этом показатели этих же стратегий могут существенно ухудшаться при попытке их применения к продолжению ценового ряда. Применительно к бэктестингу данная проблема известна как проблема заоптимизированности (overfitting, или curvefitting). Риск заоптимизированности неизбежно возникает даже для относительно простых стратегий, поскольку любой торговый алгоритм невозможен без наличия явных или неявных параметров. Для более сложных стратегий этот риск возрастает многократно.
В общем виде можно утверждать, что вероятность заоптимизированности прямо пропорциональна количеству степеней свободы, имеющихся в системе бэктестинга. При тестировании стратегий, ориентированных на торговлю акциями и фьючерсами, число степеней свободы приблизительно равно количеству параметров, используемых при оптимизации стратегии. Для опционных стратегий количество степеней свободы возрастает за счет того, что, помимо параметров, относящихся непосредственно к торговому алгоритму, существует множество параметров, связанных с формированием опционных позиций. Каждая стратегия оперирует определенным типом комбинаций, который описывается с помощью набора параметров. К этим параметрам могут относиться диапазон допустимых страйков, допустимый период времени до истечения опционов, глубина горизонта истории, используемого для расчета исторической волатильности, и многие другие. Поэтому для опционных стратегий проблема заоптимизированности стоит более остро, чем для стратегий, торгующих простыми активами.
К сожалению, не существует способа полностью нейтрализовать риск заоптимизированности. Однако частичное решение этой проблемы можно получить, соблюдая следующие общие принципы.
В качестве основного средства борьбы с проблемой заоптимизированности обычно используется так называемый walk-forward анализ. Эта методика, заключающаяся в разделении исторических временных рядов на периоды оптимизации (in-sample) и тестирования (out-of-sample), была описана в разделе 5.4.1. Основная идея заключается в том, что для бэктестинга используются данные, которые не применялись при создании и настройке стратегии. Необходимо, однако, подчеркнуть, что хорошие показатели стратегии, полученные на out-of-sample периоде, не доказывают, что стратегия не подвержена проблеме заоптимизированности. Объяснить это на первый взгляд нелогичное утверждение можно с помощью простых рассуждений. Предположим, что разработчик ставит перед автоматизированной системой следующую задачу: подобрать такие значения для параметров стратегии, что бы ее целевая функция (или функции) имела удовлетворительное значение на in-sample периоде и это значение ухудшалось бы на out-of-sample периоде не более, чем на заданную величину. В главе 2 мы видели, что в процессе оптимизации (на in-sample периоде) может быть получено множество комбинаций параметров с приемлемым значением целевой функции (так называемые зоны оптимальности). Поэтому вполне может оказаться, что хотя бы один вариант из этого множества даст удовлетворительные результаты при out-of-sample тестировании. Это означает, что хорошие результаты walk-forward анализа могут быть результатом простого подбора (заоптимизированности), и скорее всего не сохранятся в будущем при реальной торговле.
При тестировании стратегии на незнакомых для нее отрезках истории необходимо контролировать относительное число сделок. Эмпирическим путем можно определить допустимые пропорции между числом сделок и числом параметров стратегии. Важен принцип, согласно которому, чем больше параметров используется при оптимизации, тем больше должно совершаться сделок, для того что бы можно было с высокой долей вероятности считать, что риск заоптимизированности минимизирован. Это правило является простым вероятностным законом (если считать, что работа стратегии порождает случайную выборку сделок).
Если стратегия неустойчива (небольшие изменения значений параметров существенно снижают показатели стратегии), то с большой долей вероятности можно утверждать, что данная стратегия заоптимизирована (различные аспекты устойчивости были подробно рассмотрены в главе 2). Чтобы убедиться в устойчивости стратегии относительно оптимальных значений параметров, можно провести два параллельных исследования. Первое – рассмотреть изменения показателей стратегии в окрестности оптимального вектора параметров. Второй способ (не заменяющий первый) – исследовать поведение стратегии на слегка модифицированных исторических данных, полученных из исходных с помощью случайных малых возмущений. Устойчивость стратегии к небольшим изменениям значений параметров и временных рядов указывает на небольшую величину риска заоптимизированности.
Назад: 5.3. Моделирование торговых заявок
Дальше: 5.5. Оценка прибыльности