Готовим ценовые данные правильно. Часть 2: в поисках лучшей нормировки

Автор: Александр Кургузкин (mehanizator).

Для того, чтобы построить какую-то полезную для трейдинга модель изменений цены, обычно берется ряд из логарифмов ценовых приращений. Для определенности — ежедневных приращений. Однако в исходном виде этот ряд непригоден для простых моделей, потому что он неоднороден по дисперсии. В какие-то периоды времени волатильность одна, в какие-то другая. Оценивать какие-то корреляции и строить линейные модели для такого ряда — пустая трата времени (привет любителям метастоков/амиброкеров). Подробнее эта проблема описывалась мной в первой части: ”Ужасы гетероскедастичности”.

Очевидное лекарство — сделать нормировку. Например, на волатильность. Ряд становится более-менее однородным, можно строить модели и они уже не будут неадекватными. Плюс — у нас появляется параметр волатильности, который мы сразу же засовываем в модель, где он обычно неплохо работает, спасибо “эффекту плеча” (leverage effect).

Хорошо, теперь возникает следующий вопрос — а как, собственно, считать “волатильность”? СКО ряда в окне N прошлых дней, конечно, подразумевается по умолчанию, однако это не единственный вариант. Вот некоторые другие:

1. Среднее абсолютное значение.

2. Средний дневной диапазон ln(High/Low).

3. Средний дневной диапазон с учетом утреннего гэпа.

4. Вариация (почти то же СКО, только средние значения не вычитаются).

5. Внутридневные изменения (realized volatility).

Можно придумать и другие. Я как правило использую среднее абсолютное значение ряда в окне N прошлых дней. Оно не так чувствительно к сильным значениям, как СКО.

Хорошо, теперь встает новый вопрос. Даже с нормировкой ряда у него остается довольно заметные ассиметрия (skewness) и эксцесс (kurtosis). Остаточный эксцесс может сигнализировать об остаточной неоднородности ряда даже после нормировки на волатильность. Некоторые мои расчеты условных распределений показали, что высшие моменты полученных распределений зависят от волатильности. Чем выше волатильность — тем сильнее проявляется ассиметрия и эксцесс. Что наводит на мысль, что простая нормировка все-таки не оптимальна, и можно попробовать ее как-то улучшить.

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

Проверим расчетом. Берем дневные данные SPY (очень активно торгуемый ETF на индекс S&P 500) с 2003 года, для расчета текущей волатильности используем окно в 21 день (месяц). В качестве оценки волатильности используем среднее абсолютное значение элементов ряда. Элемент ряда ln(close[i] / close[i-1]).

Заодно посчитаем корреляции между логарифмом нормы и последующим изменением цены с горизонтом в 21 день. Поскольку распределения все равно достаточно кривые, будем на всякий случай считать как корреляцию Пирсона (обычную), так и ранговую корреляцию Спирмена, которая предположительно должна давать более адекватные оценки зависимостей для не-гауссовских распределений.

Смотрим что получилось:


s=0.50 ske=-1.2589 kur= +3.527 crp=-0.0713 crs=+0.0052

s=0.75 ske=-1.0766 kur= +2.273 crp=-0.0840 crs=-0.0490

s=1.00 ske=-0.9061 kur= +1.591 crp=-0.0996 crs=-0.0969

s=1.25 ske=-0.7320 kur= +1.388 crp=-0.1168 crs=-0.1354

s=1.50 ske=-0.5367 kur= +1.592 crp=-0.1345 crs=-0.1664

s=1.75 ske=-0.3047 kur= +2.173 crp=-0.1518 crs=-0.1910

s=2.00 ske=-0.0256 kur= +3.153 crp=-0.1681 crs=-0.2108

s=2.25 ske=+0.3062 kur= +4.600 crp=-0.1830 crs=-0.2269

s=2.50 ske=+0.6923 kur= +6.611 crp=-0.1962 crs=-0.2404

Здесь s — степень, ske — ассиметрия, kur — эксцесс, crp — коэффициент корреляции Пирсона, crs — коэффициент корреляции Спирмена.

Видно, что минимальный эксцесс достигается примерно при s=1.25.

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

Автор: mehanizator

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

albert.khamzin: А не выгодней вообще выбрасывать из тестируемой выборки моменты, когда волатильность выше какого-то значения?
Идея в том, что в такие моменты вообще системе торговать не надо, они только будут вносить лишний шум. В моменты большой волатильности все классы активов начинают себя вести иначе…

mehanizator: остальное-то все равно нормировать надо. а при степени выше 1.25 можно уже и не выкидывать, т.к. участки с высокой волатильностью и так задавлены почти до нуля.

Kent: вола=(хай-лоу)-0.5*abs(клоуз-ойпен) попробуйте

q-trader: Можно еще копулой какой-нибудь зафигачить, чтобы убить толстые хвосты. В итоге безусловное распределение можно сделать, например, стандартным нормальным. Потом останется только выровнять волу — как вы делаете или GARCH

Павел Дуков: спасибо


Подпишитесь на уведомления о новых постах

И получите доступ к специальным материалам сайта