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 рассчитывается по нескольким сериям и я не понял как можно получить улыбку по конкретной серии. Мне кажется, что сравнивать надо истинное распределение с предполагаемым. Есть смысл сравнивать волатильности разных серий. 
      • Дмитрий Новиков
        21 апреля 2017, 12:19
        ataden, Что то я затупилю  Цель вашей программы построить распределение по историческим данным, а потом выделить улыбку? Или вы хотите воссоздать улыбку которая была на рынке IV? Но что бы сделать улыбку и распределение по историческим данным БА надо взять историю БА и построить распределение, потом отнять гауса и получится улыбка. 
        В TWS все строится от IV. Исторического распределения там нет, или я не знаю. Давайте определимся. Есть улыбка IV это рыночная по ценам взятая. И есть улыбка HV это спустя месяц мы можем посмотреть какое распределение было тогда.  Вы какую улыбку ищите?
          • Дмитрий Новиков
            21 апреля 2017, 13:24
            ataden, Может быть я консерватор. Мне кажется, что вы получаете тот же результат, что и при построении простого распределения. Вы берете некоторый опцион с дельтой 0,1. Это вероятность того, что в 90% случаев цена не дойдет до этого опциона. Теперь вы смотрите что цена все таки доходила и реально тут дельта 0,2. И вы в этом месте цену увеличиваете. 
            То же самое вы увидите построив обычное распределение. Там тоже будет видно, что цена доходила до этого опциона, сколько раз, все это переводим в проценты и вычисляем цену. 
    • Дмитрий Новиков
      21 апреля 2017, 12:40
      ataden, Правильно. Истинное или фактическое можно еще историческое. Мы берем движение БА с каким то временным окном и строим распределение. Из него получаем улыбку на всех страйках. Это и есть HV улыбка. Историческая волатильность и т.д. Вы же берете IV волатильность VIX, которая не обязательно совпадет с историей, и строите что? 
      Хорошо, это для SPY, а для GS что мы брать будем? Мне кажется, что получение таким способом улыбки не очень универсален. Почему вы пошли таким путем? Почему не считали от БА?
        • Стас Бржозовский
          22 апреля 2017, 11:26
          ataden, в интернетах живет книжка Цудикман, Израйлевич. Опционы. Системный подход к инвестициям. Хорошая книжка и там много чего по интересующему Вас вопросу (эмпирические распределения). Главные сложности для всех (и для авторов тоже) — как убрать смещение (ненулевое матожидание) из исторических данных и как выбрать временное окно для построения того самого эмпирического распределения. Какое то время назад я пытался эту тему кусать, но в результате не очень много чего выкусил)), так, отдельные моменты применяю
            • Стас Бржозовский
              22 апреля 2017, 12:45
              ataden, если мо не обнулить, то колл-пут паритет съедет
                • Стас Бржозовский
                  22 апреля 2017, 15:29
                  ataden, вот этот момент непонятен. Получите 2 улыбки для колов и путов отдельно (или 2 диапазона). При этом колы (к примеру) на реальном рынке будут выше диапазона, путы — ниже. Зачем тогда опционы вообще? Достаточно голого ба. Опционы, имхо, нужны как раз для выдирания рисков выше первого момента распределения. Но тогда распределение нужно центрировать по любому
        • Дмитрий Новиков
          23 апреля 2017, 00:30
          ataden, Что то Смарт Лаб подвис и прервал нашу беседу. И в личку ни чего не пришло. Ну если вы почитали мои предыдущие топики, то должны были понять о чем я… Распределение можно построить проще. А получить историческую биржевую (рыночную) улыбку по волотильности ЦС и времени до экспирации проблематично. Там, хотя бы, три опциона нужны.
            • Дмитрий Новиков
              23 апреля 2017, 11:58
              ataden, имея цены трёх опционов вы построите улыбку хоть на каждую минуту. С тем же приближением, что и регрессия даёт. А исторические котировки опционов можно спионерить с того же OptionVUE. Или я не понимаю о каких исторических котировках речь?
                • Дмитрий Новиков
                  23 апреля 2017, 13:16
                  ataden, это допустимо если предположить, что улыбка двигается вместе с ЦС. Липкая дельта так казать. Но когда вола ЦС взлетает, улыбка разворачивается. Крылья опускаются, центр поднимается. Начинается липкий Страйк. За счёт чего учитывается данный эффект?
                    • Стас Бржозовский
                      23 апреля 2017, 14:28
                      ataden, для меня тут непонятка остается. Чтобы получить коэффициенты регрессии нужна куча срезов рынка на каждый срок до экспирации. Если данных мало, то откуда эти срезы берутся?

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

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