Конструктор по моделированию оценки барьерного опциона (Монте-Карло: GBM/Хестон/Мертон). 1/3

Порой бывает так, что хочется чего-то эдакого и вот, например - барьерный опцион. Что такое барьерный опцион?

Барьерные опционы — это интересный вид производных финансовых инструментов. Они отличаются от стандартных опционов тем, что их исполнение зависит от того, достигла ли цена базового актива определённого уровня (барьера) в течение срока действия контракта или нет и вот если достигла или нет, то начинается магия.

Например, акция стоит 90 и если она пробивает 110, то Вы участвуете в росте с мультипликатором 2, а если нет, то просто оплатили за проезд. Это простой пример барьерного опциона.

Для начала давайте немного "типизируем" барьерные опционы.

Основные типы барьерных опционов:

  • Knock-in options - активируются , когда цена актива достигает определённого барьера.
  • Knock-out options - аннулируются, если цена актива достигает барьера.

Барьерные опционы могут быть:

  • Up-and-out: Опцион аннулируется, если цена актива поднимается выше барьера.
  • Up-and-in: Опцион активируется, если цена поднимается выше барьера.
  • Down-and-out: Опцион аннулируется, если цена падает ниже барьера.
  • Down-and-in: Опцион активируется, если цена падает ниже барьера.

Давайте решим простую задачку. Есть некий актив, его цена, волатильность, и мы хотим рассчитать стоимость барьерного опциона если цена выходит из него и вы хотите участвовать с мультипликатором 2.

Вводные параметры:

  • Начальная цена актива (S₀): 6.4
  • Срок до экспирации (T): 3 дня
  • Волатильность (σ): 130% в год
  • Барьеры:Upper Barrier (U): 7.5 (если цена на момент экспирации выше этого значения, выплата будет удвоена от прироста)
  • Lower Barrier (L): 5.5 (если цена на момент экспирации ниже этого значения, выплата будет удвоена от величины движения вниз)
  • Мультипликатор (M): 2

Одним из основных методов моделирования барьерных опционов является метод Монте-Карло. Простыми словами у данного метода под капотом есть возможность задавать различную механику поведения цены и исходя из этого оценивать стоимость самого опциона.

Казалось бы (тут в конце 3 части будет еще одно интересное казалось бы..) идем на github забиваем barrier options/python и вот он родимый.

Вот совсем упрощенная версия "родимого".

import numpy as np # Инициализация параметров S0 = 6.4 # Цена актива sigma = 1.3 # Волатильность(130%) T = 3 /365 # Срок в годах N = 10000 # Кол-во итераций U = 7.5 # Верхний барьер L = 5.5 # Нижний барьер M = 2 # Участие # функция моделирующая поведение цены def simulate_price_paths(S0,sigma,T,N): dt = T Z = np.random.standard_normal(N) ST = S0*np.exp((-0.5*sigma**2)*dt + sigma*np.sqrt(dt)*Z) return ST # Расчёт выплаты def calculate_payout(ST,U,L,M): payout = np.zeros_like(ST) payout[ST > U] = (ST[ST > U] - S0)*M payout[ST < L] = (S0 - ST[ST < L])*M return payout # Выполнение итераций ST = simulate_price_paths(S0,sigma,T,N) payouts = calculate_payout(ST,U,L,M) # Расчет средней выплаты average_payout = np.mean(payouts) print(f"Средняя выплата по опциону: {average_payout:.2f}")

Тут есть 2 проблемы. Проблема номер один: волатильность 130%, проблема номер 2 в строчке:

def simulate_price_paths(S0,sigma,T,N): dt = T Z = np.random.standard_normal(N) ST = S0*np.exp((-0.5*sigma**2)*dt + sigma*np.sqrt(dt)*Z) return ST

В этой строчке реализовано, что поведение цены моделируется по модели геометрического броуновского движения (GBM). При 130% волатильности то.

Результат:

Средняя выплата по опциону: 0.49

Process finished with exit code 0

Давайте начнем сначала. Потому что, как вы понимаете мы стоим перед кроличьей норой, надо которой написано: "поведение цены моделируется..."

Что у нас есть в арсенале:

1. Концепция стохастической волатильности (непредсказуемой) : Хестон и SABR.

2. Есть прыжки в ценах (130% вол., как никак) : Мертон и Коу.

3. Леви процесcы (можем отдельно разобрать: если кто дочитал до сюда, то напишите в чат если вам интересно), стохастическое управление, термоядерный синтез итп.

Давайте рассмотрим к GMB Мертона и Xестона. Все таки волатильность высокая и прыжки есть.

Модель Мертона с прыжками является дополнением БШМ и предполагает, что цена базового актива имеет случайные скачки.

Параметры в модели Мертона:

1. Lambda (λ) — Интенсивность прыжков

Данный параметр определяет среднее ожидаемое количество прыжков в единицу времени. Большее значение означает более частые прыжки.

2. Mu (μ) — Среднее изменение при прыжке

Параметр представляет среднее значение логарифма изменения цены при каждом прыжке. Если μ=0.0 - прыжок не оказывает систематического влияния на цену актива (не ведёт к росту или падению). Если параметр был положительным, это означало бы, что в среднем прыжки увеличивают цену актива и наоборот.

3. Sigma (σ) — Стандартное отклонение прыжков

Здесь параметр указывает на стандартное отклонение логарифма изменения цены при каждом прыжке. Например, если σ около 0 означает, что изменения цены при прыжках имеют относительно небольшую волатильность.

Модель Хестона — эта модель стохастической волатильности, которая описывает два связанных стохастических процесса: изменение цены актива и изменение его волатильности. Таким образом, модель позволяет учитывать, что волатильность актива может меняться со временем, а никак в БШМ.

Параметры в модели Xестона:

1. Kappa (κ) — Скорость возврата волатильности к среднему. Более высокое значение = волатильность быстрее адаптируется к изменениям рынка, возвращаясь к среднему уровню (Theta (θ)). И наоборот.

2. Theta (θ) — Долгосрочная волатильность - это долгосрочный средний уровень волатильности, которую модель считает нормальной для данного актива в долгосрочной перспективе.

3. Xi (ξ) — Волатильность волатильности - также известен как "vol of vol", параметр определяет степень неопределенности или изменчивости волатильности. Высокое значение указывает на то, что волатильность актива может сильно колебаться.

4. Rho (ρ) — Корреляция между двумя броуновскими процессами: изменением цены актива и его волатильностью.

Мы разобрались с параметрами моделирования цены применяя ту или иную модель, но с чего вообще начать?

А начать надо с...

... анализа распределения доходностей и волатильности, как следствие мы поймем имеются ли хвосты, асимметрии итп. А анализ волатильности может сказать - требуется ли модель стохастической волатильности. Во второй части мы проведем анализ цен актива.

Начать дискуссию