ataden
ataden личный блог
20 апреля 2017, 12:56

Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен

Добрый день.

Это второй пост о возможностях системы OptionSmile.

Предыдущие посты:

В первой части я рассказал, как система рассчитывает справедливые цены опционов, которые можно сравнивать с текущими рыночными и делать вывод об их mispricing’е (недо- или переоцененности) в моменте. Здесь я расскажу о том, как система дает возможности искать такие неэффективности в прошлом.

Для этого можно пойти, например, «в лоб»: взять базу исторических котировок контрактов с заданной денежность и сроком экспирации, посчитать среднюю и сравнить со справедливой стоимостью.  Но тут сразу всплывает проблема: котировок слишком мало. Например, по месячным опционам в году их всего 12: сегодняшний контракт с 30-дневной экспирацией завтра уже будет с 29-дневной, т.е. не подойдет для анализа. И вообще, завтра котировки с 30-дневной экспирацией в природе не будет. И так пока следующий контракт не «состарится» до 30 дней.

Это, в принципе, главная проблема опционного бэктестинга, в отличие от линейных активов (OptionSmile выросла из такой платформы). Еще по недельным сериям как-то можно наскрести историческую базу, то дальше недели уже беда. А если мы еще будем фильтровать исторические данные по режимам рынка, то вообще с несколькими котировками останемся. Какие тут статистически значимые выводы?

В нашей платформе эта проблема решается «восстановлением» теоретических котировок из индекса волатильности (VX), благо его значения есть на каждый день. Он отражает общую волатильность (например, VIX – это волатильность месячных серий на S&P 500), и по сути, конечно, почти идеально коррелирует с IV опционов со сроком до нескольких месяцев. Вот пример для путов на SPY с денежностью 98 и сроком экспирации 10 DTE (days-till-expiration):

Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен

Почти идеальная взаимосвязь очевидна:  коэффициент корреляции 0.98. Видна именно линейная зависимость, что дает нам возможность построить парную линейную регрессию. Для этого примера она такая:

                            Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен
Качество регрессии очень высокое: R2 = 0.968,  F-статистика = 10377, да это и невооруженным глазом видно на графике. Отклонения от прямой линии показывают колебания временной структуры волатильности относительно 1-месячной, по которой VIX считается.

Итак, у нас есть два коэффициента (наклон 0.962 и постоянная 0.4122) для опционов с денежностью 98 и DTE 10. Так можно пробежаться по всем сочетаниями денежности и DTE, получить вот такие пары коэффициентов вместе с оценкой качества регрессии (R2, F-stat).

В итоге получим большую базу данных и можем уже на каждый день в истории считать какая была бы в этот день теоретическая цена заданного контракта (денежность/DTE). Т.е. у нас уже 252 котировки в году, и мы можем строить более надежные статистические оценки и гораздо смелее утверждать, что рынок систематически что-то недооценивал или переоценивал. Особенно при фильтрации рыночных режимов.

Вот расчет за период 2012-2016 для путов c DTE 10

Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен
Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен


Красный график – это средняя гипотетическая цена (Estimated Price) и IV для нее. Видно, как рынок переоценивал путы в этот период. Ясно почему, в 2012-2016 был мощный бычий рынок, т.е. тут большая directional составляющая.

Резонный вопрос, а почему мы вообще используем какие-то не существовавшие в реальности котировки? Как их можно сравнивать со справедливыми значениями, они же не реальные?

Дело в том, что они нам нужны для экстраполяции рыночного mispricing-а в будущее. По сути эти «нереальные» теоретические цены есть их мат.ожидание в будущем. Возьмем наш пример выше. Скажем, если завтра VIX будет 16, то можно ожидать, что IV пута с денежностью 98 и DTE 10 будет в районе

               Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен
Вставляем это в формулу БШ, получаем ожидаемую цену пута 0.48% от цены БА (см. на графике). Наконец сравниваем это со справедливой ценой для такого же пута = 0.18%, что также есть мат.ожидание. Получаем ожидаемую переоцененность в 0.48% — 0.18% = 30%. Такую большую разницу можно ожидать, только если мы находимся в таком же бычьем рынке, как и 2012-2016. (см. видео про Фильтрацию рыночных режимов, скоро напишу пост).

Вообще, по моему наблюдению, такие гипотетические цены в большинстве случаев совпадают с аналогичными рыночными. Вот в момент написания этого поста я подгрузил реальные котировки фьючерса E-mini S&P500 (ES) с сопоставимыми параметрами денежности и DTE, зеленый график

Платформа OptionSmile. Часть 2. Расчет исторических рыночных цен
Видно, что около денег рыночные цены чуть ниже estimated, а на дальних страйках почти совпадают. Бывают, конечно, и периоды нетипичной временной структуры IV, когда оба графика различаются существенно. В любом случае, вход в позицию нужно делать на базе реальных рыночных котировок.

Итак, сравнение с реальными рыночными ценами дает нам mispricing в моменте, а сравнение с гипотетическими историческими – оценку систематического mispricing-а в каком-либо периоде или рыночном режиме.

На эту тему пока все. Осталось осилить три важные темы:

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

Также вступайте в группу на Facebook.

Всем удачи!
Денис

28 Комментариев
  • Тимофей Мартынов
    20 апреля 2017, 15:01
    Добавьте софтину в раздел:

    smart-lab.ru/trading-software/
  • Дмитрий Новиков
    21 апреля 2017, 00:03
    Проделана большая работа. Но что бы посмотреть улыбки в прошлом достаточно войти в TWS. Более того VIX рассчитывается по нескольким сериям и я не понял как можно получить улыбку по конкретной серии. Мне кажется, что сравнивать надо истинное распределение с предполагаемым. Есть смысл сравнивать волатильности разных серий. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн