Автор: Александр Кургузкин (mehanizator).
Самый известный и распространенный инструмент для оценки опционов – это модель Блэка-Шоулза. Сила ее в простоте и аналитичности, а слабость ее в том, что она мало где работает.
Проблема в том, что эта модель исходит из предположения о нормальном распределении ценовых приращений. Есть классы активов (наверное), где такое допущение как-то держится, однако на самых интересных классах активов, таких, например, как индексы акций – оно, мягко говоря, не совсем уместно.
Каждый, кто трогал распределения ценовых приращений, например, S&P 500, знает, что нормальностью там и не пахнет. Зато там есть асимметрия, сильный эксцесс и кластеризация волатильности. Оценки опционов у денег еще можно как-то делать при таком раскладе, но чуть дальше от денег – оценки будут неадекватны. Поэтому в реальной торговле оценки модели Блэка-Шоулза в основном используются не сами по себе, а в качестве фундамента для построения более изощренных инструментов — улыбки волатильности, поверхности волатильности, и других шаманских приспособлений, от которых дальше начинаются святочные гадания.
Поэтому мной для оценки опционов используется другой подход. Я беру исторические данные и вытаскиваю из них эмпирическое распределение, и уже с его помощью численно получаю оценки опционов. При этом перво-наперво исторические данные нормирую на локальную оценку волатильности – мои постоянные читатели наверное уже знают, что я большой любитель этого дела. Нормировка на локальную волатильность резко увеличивает однородность входных данных, что в итоге повышает уместность предположений о будущих свойствах рынка.
К примеру, до экспирации интересующего нас контракта 30 дней. Берем 30-дневные приращения цены по всем историческим данным, делим каждое приращение на свою локальную волатильность и собираем все это в распределение. Дальше берем текущую цену, текущую локальную волатильность и это эмпирическое распределение, и численно считаем оценки опционов.
Для тестирования опционных стратегий (пока только простых) был написан небольшой фреймворк, который показал, что подход дает очень интересные результаты для стратегии покупки недооцененных дальних коллов на индекс. Стратегия продажи перекупленных (а это почти всегда) дальних путов на индекс тоже выглядит интересной, однако, в силу разных особенностей, может потребовать более сложного исполнения и более активного риск-менеджмента. В общем, по итогам проверки можно утверждать, что алгоритм успешно справляется с определением ситуаций перепроданности/перекупленности в зонах вне-денег и особенно далеко-вне-денег по крайней мере для индексов акций.
Я пробовал улучшать алгоритм, добавлял параметризацию, аппроксимировал эмпирическое распределение разными семействами. Результаты, которые я пока видел, меня несколько удивляют — усовершенствованные алгоритмы не дают никаких улучшений результатов. Простой эмпирический алгоритм работает не хуже более сложных моделей.
В один прекрасный день было решено, главным образом для собственного удобства, собрать весь написанный на скорую руку код и довести, наконец, дело до нормального продукта. В результате получился Cognitum Option Pricer.
Программа использует данные из Yahoo.Finance и (опционально) TWS и показывает расклад сразу по всей цепочке опционов. Можно строить и оценивать цены/дельты опционных комбинаций.
Страница Cognitum Option Pricer.
Автор: mehanizator
Другие статьи по теме:
Оценка опционов SPX относительно модели
Сравниваем опционы на VXX с опционами на VIX
Определяем оптимальный размер позиции по опциону через критерий Келли
Комментарии:
Конв: что-то судя по скринам колья в постоянной недооценке по сравнению с моделью?
mehanizator: Откуда ты знаешь, что в постоянной, если скрин всего один? 🙂
JeyCi: … может это тренд вниз по активу был — как коллам по нему было стать переоценёнными )
JeyCi: mehanizator, расскажи please откуда текущую локальную волатильность берёшь? с какого yahoo finance подгребаешь каждый день или ручками из seattle опциона её выковырять можно?
JeyCi: … наверно, поняла — вы не волатильность опций берёте, а волатильность базового актива… и всё-таки как это — «средний диапазон бара ln(High/Low) за N баров «? логарифм натуральный отношения H к L? просто видела где-то (H+L)/2 — а у такого подхода есть смысл?
mehanizator: (H+L)/2 это среднее значение дня. где здесь волатильность? может быть имелось в виду (H-L)/2?
JeyCi: в смысле sorry за опечатку… так есть ли смысл такого подхода или ваш вариант лучше?
mehanizator: H-L это абсолютное значение, а ln(H/L) относительное
JeyCi: … соглашусь, что относительные значения в экономике часто логичнее использовать… спасибо!
JeyCi: интересная софтина вроде — только несколько вопросов есть: Yahoo.Finance — в смысле free? и TWS (опционально) — это что? — вроде аккаунт у InteractiveBrokers начинается с такой аббревиатуры — нужен ли аккаунт с доступом к брокерским котировкам по опционам? или может есть программа, которая берёт инфо из Daily Bulletin cmegroup.com и по такой же схеме даёт раскладку?
mehanizator: Yahoo.Finance бесплатные данные есть по опционным цепочкам.
TWS это терминал InteractiveBrokers, из него берутся данные по опционным цепочкам.
JeyCi: то есть — в смысле можно использовать или один источник или второй? или иметь Account у InteractiveBrokers — это обязательно? (чтобы пользоваться этой хорошей софтинкой)
mehanizator: Данные берутся либо из Yahoo, либо из TWS. Если нет TWS, значит только из Yahoo.
bistibekov.a: Добрый вечер, идея очень интересная с поиском эмпирических распределений, но есть один вопрос по части процентной ставки (risk-free rate), которая действует сейчас на рынке, вы ее как-нибудь учитываете в поиске цены опциона?
mehanizator: нет, никак не учитываю.
bistibekov.a: т.е. описанное выше дает лишь оценку величине E(max(K-S_t,0)) для Сall, и не дисконтируется? не создает ли это неточности в оценки дальних по времени опционов?
mehanizator: если нет оснований полагать, что в будущем воздействие безрисковой ставки на цены базового актива будет другим, чем оно было на исторических данных, то все должно быть нормально.
Eskra: Добрый день!
Немного не понял, те в данном примере вы собираете распределение по 30 приращениям?
mehanizator: По 30-дневным приращениям. На каждый день вычисляется 30-дневное приращение, все это собирается в распределение.
Eskra: Ааа, тогда понятно)