Русский
Русский
English
Статистика
Реклама

Finmath for fintech

Опционы пут-колл парити, броуновское движение. Ликбез для гика, ч. 7

10.09.2020 18:21:56 | Автор: admin
Это вторая часть рассказа про опционы, где мы разберемся с пут-колл парити, условием безарбитражности рынка, познакомимся с идеями хеджирования и репликации и поговорим про то, что такое броуновское движение и как оно связано с моделированием поведения курса финансового актива во времени.

Будет немного математики, чтобы получше разобраться в деталях.




Данный пост расшифровка моих видеолекций Пут-колл парити и условие отсутствия арбитража, Броуновское движение, созданных в рамках курса Finmath for Fintech.

Пут-колл парити. Пример использования условия отсутствия арбитража для анализа цены портфеля инструментов


Итак, из предыдущей части мы знаем, как выглядят выплаты для put и call опциона на expiry (момент времени, когда правом, предоставляемым опционом, можно воспользоваться), но мы также хотели бы знать, как рассчитывать опцион и на другие промежутки времени. Для этого нам необходимо построить математическую модель, используя более сложный математический аппарат. Однако перед тем, как мы это сделаем, давайте рассмотрим соотношение пут-колл парити, которое не требует сложных вычислений и в тоже время очень полезно на практике.

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

Базовым активом может быть акция или курс валют. Рыночный курс на базовый актив называется спот, и в формулах значение спота на момент времени $t$ обозначается как $S_t$.

Опцион, дающий право на покупку базового актива, называется колл-опционом (call option). Право на продажу это пут-опцион (put option). Цена, по которой опцион дает право заключить сделку в будущем, называется страйк (strike), обозначается $K$.

Заранее оговоренное в контракте время, в которое опционом можно будет воспользоваться, это время экспирации опциона (expiry) $T$. Значение курса базового актива на момент expiry обозначается $S_T$.

Построим графики выплат на expiry. У нас есть некий базовый актив его цена на expiry: $S_T$, а также выплата $P$, которую мы получаем. Графики выплат будут в этих координатах $S_T, P$. Зададим $K$ уровень страйк на оси $S_T$.

Первый опцион, который мы нарисуем, колл-опцион. Мы купили колл-опцион.



Это также называется long call option, позиция со знаком плюс по этому опциону. Но мы можем опционы еще и продавать, это называется short .

Второй опцион, который мы нарисуем, будет short put.



На графике мы видим, что, когда мы сложили две выплаты, мы получили простую линейную функцию, которая определяется как ($S_T-K$). Тот же самый результат можно получить аналитически. У нас есть позиция колл-опциона со знаком плюс и пут-опцион со знаком минус:

$C-P$

Воспользуемся аналитическими формулами, которые мы уже знаем:

$max(0, S_T-K)-max(0, K-S_T)$.

Чтобы раскрыть скобки, мы должны рассмотреть два отдельных случая, когда $S_T>K$ и $S_T<K$.

Имеем следующую систему:

$ \begin{cases} S_T-K-0, S_T>K \\ 0-K+S_T, S_TK \end{cases} $



В обоих случаях получается одна и та же простая формула: $S_T-K$.

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



Мы знаем, что для этой комбинации на момент expiry выплата определяется формулой $S_T-K$, для любого значения $S_T$. Если мы найдем какую-то другую комбинацию инструментов, которая будет давать на момент expiry такую же выплату, то можно утверждать, что стоимость такой комбинации инструментов и комбинации $C-P$ должна быть одинаковой.

Если бы это было не так, то можно сегодня купить более дешевую из этих комбинаций инструментов и продать более дорогую, получив тем самым прибыль. А так как эти две комбинации дают одинаковую выплату на expiry, и мы их взяли с обратными знаками, то суммарная выплата гарантированно будет равна нулю. Такая сделка, которая дает гарантированный доход без риска, просто за счет несбалансированности цен инструментов на рынке, называется арбитражем. Математические теории для расчета цен инструментов обычно включают в себя предположение о безарбитражности рынка. Это предположение достаточно хорошо соответствует действительности. Арбитражные возможности на рынке если и возникают, то живут очень недолго. Найти и воспользоваться ими непросто. Так что в норме это предположение работает хорошо.

Из условия безарбитражности рынка следует то, что комбинация $C-P$ будет в любой момент времени $tT$ (а не только $T$) стоить столько же, сколько и любая комбинация инструментов, выплата по которой в момент времени $T$ будет равна $S_T-K$. Такую комбинацию легко составить, купив базовый актив $S$ и взяв в долг денег в таком количестве, что на момент expiry нужно будет вернуть сумму, равную $K$. При работе с финансовыми инструментами такой долг эквивалентен продаже бескупонной облигации (бонда), который дает выплату $K$ в момент времени $T$. Подробнее про облигации и проценты можно прочитать в предыдущих постах из этой серии (Стоимость денег, типы процентов, дисконтирование и форвардные ставки. Ликбез для гика, ч. 1 и Облигации: купонные и бескупонные, расчет доходности. Ликбез для гика, ч. 2).

Итак, портфель из колл-опциона и портфель из пут-опциона равен комбинации long по базовому активу и short бонду, который бы давал выплату один на expiry с номиналом $K$.

$C_t-P_t=S_t-B_TK$

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

Итак, мы получили соотношение для портфеля, составленного из колл- и пут-опционов. Мы составили портфель, рассмотрели, какая у него будет выплата на момент expiry, выяснили, что выплата описывается одним линейным уравнением. В отличие от функции выплаты для колл- и пут-опционов, в каждой из которых есть два участка, больше и меньше $S_T$. Это позволяет составить портфель из более простых инструментов, который даст такую же выплату на expiry в любой ситуации. Цена этих двух портфелей будет равна в любой момент времени, а не только в момент expiry. Это гарантируется нам условием отсутствия арбитража на рынке. Если же на рынке есть арбитраж и это равенство не выполняется, то мы, соответственно, можем купить один из этих портфелей, продать другой и получить гарантированный выигрыш. Это соотношение не зависит от каких-то математических моделей, которые мы могли бы построить, например, для цены базового актива. Это соотношение обязано выполняться в любой модели.

Можно посмотреть на это соотношение еще и так. Мы составили портфель из нескольких активов, имеющих один и тот же риск. Формулу можно переписать, собрав активы, которые несут в себе риск, связанный с базовым активом, с одной стороны. То есть мы можем исключить весь риск, заложенный в этих инструментах, т.е. неопределенность, связанную с будущей ценой базового актива, точно узнав, сколько такой пакет стоит.

$C_t-P_t-S_t=-B_tK$

Такой способ избавления от риска называется хеджированием. Мы составляем портфель из нескольких инструментов, в которых заложен какой-то одинаковый риск, но подбираем их в таких соотношениях, что эти риски взаимно уравновешивает друг друга и мы от него избавляемся. Такая идея используется и в других, более сложных стратегиях хеджирования. Рассматриваемый случай очень простой, он позволяет работать только с определенной комбинацией опционов.

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

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

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

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

Что такое броуновское движение и кто такой Роберт Браун. Как моделировать броуновское движение на компьютере. Что такое геометрическое броуновское движение


То, что мы рассматривали до сих пор, позволяло нам обходиться очень простым математическим аппаратом, фактически школьной математикой. Чтобы двигаться дальше и построить более сложную математическую модель, нам этого будет недостаточно, и потребуются элементы взрослой математики. Поэтому общий подход к дальнейшему изложению будет выглядеть следующим образом: я дам наглядные примеры, из которых будет понятно, как работает математический аппарат в простом случае, а также дам формулировки и теоремы, которыми мы будем пользоваться. Доказывать эти теоремы я не буду. Те, кому интересна математическая часть, могут обратиться к соответствующим учебникам и видеокурсам.

Первое понятие, которое нам потребуется, броуновское движение. Давайте вспомним, что этот термин означает в физике. Это будет своего рода наглядным примером того, как данный процесс будет устроен в нашей формальной математической модели.

Думаю, что у многих термин броуновское движение ассоциируется со школьной программой физики. Многие считают, что человек, который ввел это понятие в научный оборот, был физиком по фамилии Броун и, судя по фамилии, являлся англичанином. Интересно, что все эти предположения неверны. Во-первых, звали этого ученого Robert Brown, что по-русски следует читать как Роберт Браун. Хотя это могло быть неочевидно для образованного человека XVIIIXIX веков, у которого первый иностранный язык был французский, а второй немецкий. Во-вторых, он не был англичанином он был шотландцем, что, как мы понимаем, совсем не одно и то же. Ну а самое интересное, он не был физиком он был ботаником. Когда он провел и описал свой знаменитый эксперимент, он занимался изучением частиц пыльцы под микроскопом. Препарат на предметном стекле был подготовлен в виде капли жидкости, в которой помещались частицы пыльцы для того, чтобы пыльца не улетала от каждого сквозняка и ее можно было спокойно рассматривать.

Внимание Брауна привлек тот факт, что то, что он видит в окуляре микроскопа, не является статической картинкой. Он наблюдал, условно говоря, круглую частицу, которая совершала хаотическое движение. Сегодня мы знаем, что это явление имеет простое объяснение. В растворе вокруг этой частицы есть много молекул, которые очень часто взаимодействуют с ней в случайном направлении, в результате чего частица совершает какое-то сложное движение.



Если мы изобразим ее движение, это будет некоторая случайная траектория.



Какое это имеет отношение к нашей предметной области? На самом деле аналогия прямая. Мы рассматриваем курс финансового актива во времени. На него, как и на ту частицу, в каждый момент времени действует очень много случайных факторов. Мы их не видим, как не видел в микроскоп отдельные молекулы Роберт Браун.

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



Формальная математическая модель процесса, который мы будем использовать, связана с именем другого ученого американского математика Норберта Винера. Она выглядит следующим образом. Мы рассматриваем функцию непрерывного времени. Поскольку $t$ непрерывно, то и функция $W(t)$ непрерывная.

В нее заложена случайная составляющая, которая математически определяется следующим образом:

$\triangle W_{\triangle t}$ независимы при условии, что приращения по времени не пересекаются.

Приращение функции от момента времени $t$ до момента времени $t+s$ распределено нормально с параметрами 0 и $s$ (длина временного промежутка).

$W_{t+s}-W_tN(0,s)$

В дальнейшем мы увидим, что очень важно уметь генерировать такие пути на компьютере это необходимо для многих вычислительных методов. Как бы мы могли это сделать? Время, которое в теоретической математической модели непрерывно, мы разбиваем на компьютере на какие-то приращения, обычно с фиксированным шагом. Создаем некую начальную точку, из которой стартует наш процесс, с координатами $W_0;t_0$. Далее для каждого последующего шага по времени генерируем случайную величину с таким распределением, сдвигаемся на шаг. Так делаем в каждой точке. Получилась ломаная линия.



Где-то приращение получилось со знаком плюс, где-то со знаком минус. В результате в каждой конкретной точке значение всего процесса определяется кумулятивной суммой всех этих случайных величин. Для того чтобы иметь возможность масштабировать среднее смещение за единицу времени, мы можем ввести также дополнительный параметр, обычно обозначаемый буквой $\sigma$ (как и для нормального распределения). Мы можем рассматривать функцию $\sigma W_t$, где $W_t$ стандартное броуновское движение, а $W_t$ имеет дисперсию шире или уже, в зависимости от того, что нам нужно.

Имея такой процесс, мы бы хотели построить математическую модель, которая бы нам помогла рассчитать цену опционов. Построим уравнения по тому же принципу, как это делали с процентами для дисконтирования в непрерывном времени. Это будет некоторое дифференциальное уравнение.

Если бы мы решали задачу для начисления процентов на некоторую сумму $P$ в непрерывном времени, то для небольшого шага по времени у нас было бы верно соотношение $\triangle P=rP\triangle t$ или

$\frac{\triangle P}{P}=r\triangle t$,

где $r$ это риск-нейтральная процентная ставка. И, перейдя к пределу $t d_t$, получим дифференциальное уравнение

$\frac{dP}{P}=rdt$.

Из него получаем уже знакомую нам формулу для дисконтирования в непрерывном времени $P=P_0e^{rt}$, где $P_0$ начальное значение.

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

$inline$\frac{S}{S}=t+W$inline$

У нас практически есть результат. Перейдем к пределу и получаем уравнение, очень похожее на то, которое мы легко решили для дисконтирования в непрерывном времени.

$\frac{dS}{S}=dt+dW$

Но есть техническая проблема. Дело в том, броуновское движение (винеровский процесс), как мы его определили, является непрерывной функцией времени, но она не является дифференцируемой в смысле классического матанализа. Это можно формально доказать (доказательство опустим).

Для того чтобы построить такую модель математически строго, необходимо определить, какой смысл мы вкладываем в выражение $dW$. Для этого необходимо использовать стохастический дифференциал, название которого связано с именем еще одного математика, дифференциал Ито. Он подчиняется другим правилам, не тем, к которым мы привыкли в обычном матанализе.

Я напишу для справки те результаты, которые нам понадобятся относительно этого математического аппарата. Дифференциал Ито подчиняется таким правилам.

Если

$dx=a(x,t)dt+b(x,t)dW_t$,

то для $f(x,t)$:

$inline$df=\frac{f}{t}dt+\frac{f}{x}dx+\frac{1}{2}\frac{^2f}{x^2}dx^2$inline$.

Это правило отличается от того, как мы дифференцируем функцию двух переменных в обычном матанализе. Если у нас есть две независимые переменные, в обычном матанализе мы берем частные производные и останавливаемся на первых двух членах разложения. Третий компонент разложения дифференциала функции в формуле Ито появляется именно благодаря тому, что мы работаем не с обычными функциями, а со случайным, стохастическим процессом. Этот результат мы берем готовым, не доказывая.

Нужно еще кое-что сказать о $dx^2$ в последнем уравнении. По условию $dx=a(x,t)dt+b(x,t)dW_t$, если мы возведем это в квадрат, то возникнут слагаемые с множителями $dt dW_t$, $dt^2$, $dW^2_t$. Для применения формулы Ито нужно принять:

$dt dW_t=0$; $dt^2=0$; $dW^2_t=dt$.

Все эти правила становятся естественными, если разобраться с тем, что такое интеграл Ито, но для наших целей сейчас достаточно знать, как правильно применять формулу Ито.

И теперь мы можем преодолеть нашу техническую сложность, так как мы знаем, как оперировать с объектом $dW$.

В качестве переменной $x$ у нас выступает курс базового актива $S$, мы можем его выразить:

$dS=Sdt+SdW_t$.

Далее мы знаем, как записать дифференциал функции, где есть $S$ и $t$. Давайте посмотрим, чему равен дифференциал от функции $f(S, t)=ln(S)$.

$inline$dln S = df = \frac{f}{t}dt+\frac{f}{S}dS+\frac{1}{2}\frac{d^2f}{dS^2}dS^2=$inline$

$=0 dt+\frac{1}{S}(Sdt+SdW_t)-\frac{1}{2}\frac{1}{S^2}\sigma^2 S^2 dt$

Теперь, собрав слагаемые, мы получим выражение для логарифма $S$.

$dS=(-\frac{\sigma^2}{2})dt+dW$

Теперь мы знаем, чему равен $S$ (заметим, он имеет нормальное распределение). Нас интересует непосредственно выражение для $S$.

$S=S_0 e^{t}exp(W_t-\frac{\sigma^2}{2}t)$

Записанное выше выражение описывает геометрическое броуновское движение. Оно представляет собой некоторый экспоненциальный рост с параметром $\mu$, который изначально начинается в точке $S_0$, и вокруг этой экспоненты накладывается шум согласно выражению $exp(\sigma W_t-\frac{\sigma^2}{2}t)$. Это уже можно считать на компьютере, мы можем генерировать пути броуновского движения. Мы получим некоторые возможные реализации нашего пути для курса базового актива. В этом уравнении есть два параметра: $\sigma$ дисперсия и $\mu$ дрифт. Они соответствуют дисперсии нормального распределения и смещения нормального распределения для $S$. Как я уже сказал, теперь можно выполнять моделирование на компьютере, однако есть еще один компонент теории, который нам необходимо ввести, чтобы при помощи этого процесса мы могли просчитать цену опционов. Дальше мы поговорим про риск-нейтральную меру.



Все статьи этой серии

Стоимость денег, типы процентов, дисконтирование и форвардные ставки. Ликбез для гика, ч. 1
Облигации: купонные и бескупонные, расчет доходности. Ликбез для гика, ч. 2
Облигации: оценка рисков и примеры использования. Ликбез для гика, ч. 3
Как банки берут друг у друга в долг. Плавающие ставки, процентные свопы. Ликбез для гика, ч. 4
Построение кривой дисконтирования. Ликбез для гика, ч. 5
Что такое опционы и кому это нужно. Ликбез для гика, ч. 6
Подробнее..

Уравнение теории ценообразования. Ликбез для гика, ч. 9

05.02.2021 16:09:35 | Автор: admin

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

В основу этой статьи легли четыре мои видеолекции из курса Finmath for Fintech, которые можно найти на YouTube: Основное уравнение теории ценообразования, Стохастический коэффициент дисконтирования, Связь цен и корреляции рисков и Избыточная доходность. Риски.

Основное уравнение теории ценообразования

Для начала рассмотрим некоторую игрушечную задачу. Начнем с воображаемого инвестора, который думает, сколько ему потратить сегодня, сколько ему вложить, чтобы получить какую-то прибыль завтра. У него есть горизонт планирования, состоящий из двух дней: сегодня t и завтра t+1. Предположим, поначалу наш инвестор был ленив и потреблял все, что он получал. Назовем это ситуацией потребителя П. Потребитель получает какую-то зарплату et (какой-то доход earnings) и всю ее потребляет сt (consumption). Аналогично выглядит ситуация завтра:

ct+1 = et + 1

Теперь, предположим, наш потребитель задумался о том, чтобы вложить часть своей зарплаты в какой-то актив (A), одна единица которого стоит pt и который завтра принесет инвестору выручку в размере xt+1. Нужно объяснить, почему мы обозначили цену сегодня и выручку завтра разными буквами. Дело в том, что цена сегодня это фиксированное число, она известна. В то время как xt+1 (та выручка, которую принесет актив завтра) это случайная величина, не гарантированная: может быть больше, может меньше. Это рисковый инструмент. Предположим, что наш инвестор решил стать настоящим инвестором (И) и купить N штук этого актива. Тогда его потребление сегодня уменьшается:

сt = et - Npt

Но завтра его потребление увеличится, потому что он получит

сt + 1 = et + 1 + Nxt+1

Возникает естественный вопрос: лучше ли поведение инвестора (И), чем поведение простого потребителя (П)? Уточним вопрос. Какое значение N наиболее оптимально?

Чтобы ответить на это, нужно понять, что именно означает оптимально. То есть мы должны выяснить, какую функцию мы здесь оптимизируем. Мы можем смоделировать поведение инвестора, введя некоторую функцию полезности. Функция полезности или функция удовольствия зависит от уровня потребления. Запишем это. Если сегодня уровень потребления сt, то сегодняшнее значение уровня полезности u(сt). Соответственно, для завтрашнего уровня потребления u(сt+1).

В нашей временной модели, состоящей из двух временных периодов сегодня и завтра, мы бы хотели, чтобы ответ на вопрос какое N является оптимальным? зависел от этих двух величин (u(сt) и u(сt+1)). Поэтому мы сейчас их объединим в одну общую функцию полезности. Наша общая функция полезности будет иметь следующий вид: потребление сегодня плюс бета, помноженная на математическое ожидание потребления завтра.

U = u(сt) + E[u(сt+1)]

Сегодняшнее потребление нам известно, потому что про сегодня у нас есть полная информация. Завтрашнее потребление зависит от того, какова будет величина сt+1. А она включает в себя выручку от того же актива, в который мы вложились. В нашу общую функцию полезности входит ожидаемое удовольствие от потребления завтра. Случайная величина сt+1 включает в себя доход от нашего актива, в который мы вложились, именно поэтому здесь стоит знак математического ожидания. Более того, мы дисконтируем это ожидаемое удовольствие на некоторый коэффициент , который можно назвать коэффициентом нетерпения (нам всегда хочется здесь и сейчас, чем в какой-то абстрактный момент времени завтра).

Про саму функцию u мы сделаем два вполне естественных предположения. Первое предположение: функция u(сt) является возрастающей, то есть чем больше мы потребляем, тем больше удовольствие. Второе предположение: функция U является вогнутой. Иными словами, чем больше мы потребляем, тем меньше получаем дополнительное удовольствие от каждого следующего употребленного кусочка.

График функции U может выглядеть следующим образом:

Типичным вариантом будет функция такого вида:

Итак, наш инвестор хочет максимизировать общую функцию полезности, найти оптимальный уровень вложений N:

Umax

Условием первого порядка для решения этой оптимизационной задачи является условие равенства нулю производной.

Распишем выражение:

Давайте теперь посмотрим на это уравнение, на условие первого порядка, и решим его относительно цены актива сегодня pt. Величины u'(ct) и не являются случайными, они определены. Поэтому мы их можем внести под знак математического ожидания. Получим следующую формулу:

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

Из условий максимизации общей функции полезности мы получили уравнение установления цен в качестве условия первого порядка. Эти условия первого порядка представляют собой баланс между предельными издержками потребителя сегодня, оттого что он уменьшил свое потребление, и перед тем предельным удовольствием, которое он получит завтра за счет выручки от данного рискового актива x.

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

Стохастический коэффициент дисконтирования

Итак, у нас есть выражение:

Обозначим весь коэффициент перед иксом как mt+1 и назовем его стохастический коэффициент дисконтирования. После этого наше уравнение установления цен примет более компактный вид:

Название стохастический коэффициент дисконтирования обобщает ситуацию с обычным коэффициентом дисконтирования. Давайте, например, рассмотрим ситуацию, где нет никакой неопределенности и где величина выручки завтра известна заранее. Это ситуация, когда риск отсутствует. В этом случае цена сегодня и выручка завтра связаны следующим образом:

Где Rf базовая процентная ставка (предполагаем, что базовая процентная ставка положительная, поэтому коэффициент дисконтирования 1/Rf меньше единицы и наша цена сегодня, естественно, чуть меньше, чем выручка, которую мы получим завтра).

Если убрать зависимость от индекса t, то можно записать уравнение установления цен в максимально компактном виде:

Если есть какие-то рисковые инструменты, тогда стоимость будет следующей:

Если рисковый инструмент имеет такую же ожидаемую доходность, что и безрисковый инструмент, разумно предположить, что, поскольку вложения в него связаны с некоторой неопределенностью, с определенным риском, его стоимость сегодня будет меньше. Полученное нами выше общее уравнение ценообразования можно рассматривать как обобщение этих ситуаций. Оно говорит, что все дополнительные поправки, связанные с риском, имеют своим источником один стохастический коэффициент дисконтирования, который является одним и тем же для всех рисковых и безрисковых инструментов. Для объекта m есть несколько разных названий: стохастический коэффициент дисконтирования, ядро ценообразования. Если математическое ожидание представить себе в виде интеграла, то тогда функция m выступает там в качестве ядра интегрирования. Все теории ценообразования так или иначе занимаются тем, что пытаются связать этот m с данными. То есть, если у вас есть какие-то данные, вы строите модель, как из них получить этот коэффициент m.

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

Простейший случай это вклад. У вас есть 1 рубль сегодня, и вы ожидаете какую-то доходность завтра Rt+1. Это может быть какая-то акция, у которой есть сегодняшняя цена pt. Завтрашняя цена может быть какая-то иная, случайная величина pt+1, плюс дополнительно владельцу этой акции могут быть выплачены какие-то дивиденды dt+1 (цена и дивиденды, конечно, связаны). Это может быть какой-то бонд, у которого, наоборот, купон фиксированный 1, и тогда речь идет о том, какая у него цена сегодня pt. Это может быть опцион, например колл-опцион. Вы покупаете его за некоторую сумму сегодня Ct, и он дает вам выручку, которая связана со страйк-ценой, с ценой актива по какой-то такой формуле из теории опционов: max(St - K, O). Во всех этих и многих других ситуациях (наш список можно продолжить) уравнение установления цен, полученное нами, применимо. С практической точки зрения вопрос заключается только в том, чтобы объяснить или предложить модель построения этого стохастического коэффициента дисконтирования m.

Связь цен и корреляции рисков

В нашей формуле установления цен присутствуют две случайные величины выручка нашего актива x и стохастический коэффициент дисконтирования m. Связь между этими двумя величинами можно померить, посчитав их ковариацию. Согласно известной формуле:

cov(m,x) = E[mx] - E[m]E[x]

Выражение E[mx] и присутствует в уравнении установления цен. Перепишем наше уравнение установления цен, выразив этот компонент через два остальных члена этого равенства:

pt = E[m]E[x] + cov(m,x)

Само математическое ожидание стохастического коэффициента дисконтирования E[m] можно представить себе следующим образом. Если у нас есть безрисковый вклад, то есть мы вложили единицу, то тогда мы должны получить:

Поскольку Rf не является случайной величиной, ее можно вынести за знак математического ожидания, и наше уравнение принимает вид:

Теперь заменим математическое ожидание стохастического коэффициента дисконтирования E[m] на величину, обратную базовой процентной ставке:

Итак, что же у нас получилось? Сегодняшняя цена актива имеет две составляющие. Первая составляющая зависит только от самого актива (это, можно сказать, приведенное, с помощью базовой процентной ставки, к сегодняшнему дню математическое ожидание выручки нашего актива). Вторая составляющая, которая добавляется, связывает наш актив и коэффициент дисконтирования. Назовем вторую часть формулы cov(m,x)платой за риск. Она является поправкой к приведенной текущей стоимости, к первой части формулы. Давайте подумаем, какой может быть поправка. Она может быть как отрицательной, так и положительной. Это зависит от того, как наш актив скоррелирован со стохастическим коэффициентом дисконтирования. Давайте вспомним формулу для m и напишем это выражение чуть более подробно:

Величина u't(ct) не является случайной.

Чем больше потребление, тем меньше становится производная функции u, то есть с увеличением потребления u't+1уменьшается. Если же наш актив ведет себя следующим образом: когда потребление увеличивается, наш актив тоже увеличивается (то есть это актив, который хорошо работает в ситуации, когда экономика и благосостояние растут), то тогда такой актив имеет отрицательную ковариацию cov(m,x). Наш актив становится дешевле. Когда наш актив является чем-то вроде страховки и, наоборот, хорошо работает, когда потребление падает, в тех ситуациях он приносит нам доход. А когда употребление растет, он не так хорош, его поведение, поведение этой случайной величины и поведение производной функции u' одинаковы эта величина положительная, и мы платим дополнительную величину.

Функция u вогнутая, чем больше растет потребление (consumption), тем производная этой функции меньше. Если величина x с ростом потребления увеличивается, то есть ведет себя как актив, который приносит хорошую прибыль, когда экономика растет, он скоррелирован отрицательно с величиной u', и тогда добавка, плата за риск, отрицательна. Какой в этом смысл? Если вы дополнительно инвестируете в такой актив,то ваш уровень потребления как пользователя становится более волатильным и для вас это приемлемо только в том случае, если цена этого актива будет с каким-то дисконтом (cov(m,x) будет снижать цену по сравнению с базовой стоимостью). И наоборот, когда актив это что-то вроде страховки (когда потребление падает) и ведет себя хорошо, то тогда он положительно скоррелирован с производной функцией u, и тогда у вас появляется дополнительная премия, которую вы платите, чтобы инвестировать в этот актив.

Избыточная доходность. Системный и идиосинкратический риск

Посмотрим, какие выкладки получаются для вкладов. Пусть у нас сегодня есть один рубль, который мы вложили в какой-то рисковый инструмент. Согласно нашему уравнению ценообразования мы должны получить для доходности нашего инструмента Ri. Имеем:

Если мы умножим обе части этой формулы на базовую процентную ставку и перенесем ковариацию в левую часть, а единицу в правую часть, тогда получим следующую формулу:

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

Посмотрим, что нам еще дает уравнение установления цен, записанное в таком виде:

Рисковый актив x обладает некоторой волатильностью. Заметим, что в наше уравнение установления цен входит именно ковариация m и x, а не вариация случайной величины x. Например, если x и m скоррелированы слабо, значение ковариации практически равно нулю, то, несмотря на то что x может иметь очень большую или очень маленькую волатильность, цена p, согласно этому уравнению, будет той же самой и определяться компонентой формулы E[x]/Rf, фактически от E[x]. Из этого можно сделать вывод: важна волатильность случайной величины x сама по себе, а именно ее проекция на m. Можно записать, что x является суммой двух величин проекции величины x на m и всего остального:

Для проекции можно записать явную формулу:

Эта формула похожа на формулу, которая пишется для проекции одного вектора на другой в векторном пространстве. Что же касается ортогональной части , то ее ковариация с m равна нулю:

Случайная величина x, ожидаемая доходность актива, может иметь некоторую волатильность, то есть некоторый риск. При этом часть этого риска влияет на цену (является систематическим риском та часть, которая является проекцией на m). Другая же часть, хоть и является случайной, никак не влияет на цену и называется идиосинкратической. Риск какого-то инструмента, какого-то актива, всегда распадается на систематическую и идиосинкратическую части.

Итак, подведем некоторые итоги. Наше уравнение ценообразования, которое связывает цену инструмента сегодня с ожидаемой выручкой завтра, дисконтированной на m, достаточно универсальное:

Основная сложность в применении этого уравнения в явном виде заключается в том, что очень сложно измерить этот коэффициент mt+1. Для каждого конкретного инвестора это возможно было бы сделать, если б устроить ему большой опрос, но померить температуру в среднем по больнице достаточно сложно. Поэтому любая дальнейшая деятельность заключается в том, чтобы уточнять это уравнение.

Одной из первых попыток построить работающую модель была попытка под названием CAPM (Capital Asset Pricing Model), которая утверждает, что наш стохастический коэффициент дисконтирования есть просто линейная комбинация, в которую входит Rw доходность портфеля благосостояния.

Доходность этого портфеля благосостояния можно померить, если в качестве ориентира взять какой-нибудь большой индекс, например Standard & Poor's 500, и посмотреть доходность этого индекса. Эту модель называют моделью с одним фактором. Более сложные модели, такие как APT (Arbitrage pricing theory), говорят, что m представляет собой линейную комбинацию нескольких факторов.

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

Все статьи этой серии

Подробнее..

Построение кривой дисконтирования. Ликбез для гика, Ч. 5

16.07.2020 16:05:50 | Автор: admin
Давайте научимся строить кривую дисконтирования. Скажу сразу: очень важно иметь актуальные рыночные данные. Если вы будете искать interest rate свопы на доллар, евро или какую-нибудь другую валюту, то в интернете не так много открытой информации. Большинство данных доступны либо через торговые терминалы, либо у специальных компаний провайдеров рыночных данных. Я нашел на сайте одной крупной скандинавской банковской группы данные по датской, шведской и норвежской кронам, а также данные для евро и доллара.



Далее мы попробуем построить кривую дисконтирования для шведской кроны.


Данный пост адаптированная версия моей третьей видеолекции Построение кривой дисконтирования в рамках курса Finmath for Fintech.

Итак, наша кривая дисконтирования для кроны будет состоять из ставок овернайт на каждый день. Первое, что нам известно, так называемый base rate ставка на короткие депозиты (кредиты). Далее, известны свопы, начиная с одного года до тридцати лет. Для иллюстрации метода мы построим кривую до десяти лет. Текущие значения рыночных данных можно увидеть на этом изображении:



Чтобы начать строить кривую, нам нужно сделать несколько предположений.

Давайте для упрощения считать, что наши свопы это fix floating свопы с периодичностью выплат раз в шесть месяцев. Ниже приведена схема для одногодичного свопа. Мы знаем, что в начале base rate равен нулю процентов. Чтобы посчитать честную цену свопа, нам нужно знать значение дискаунт-фактора шести месяцев и дискаунт-фактора 12 месяцев. Что у нас будет в качестве плавающей ноги? Предположим, что в качестве нее мы будем платить среднее значение овернайтов за каждый из диапазонов. То есть значение плавающей ноги до шести месяцев это будет среднее значение овернайтов за 180 дней. Плавающая нога для точки 12 месяцев будет то же самое, только здесь будет суммирование начиная со 181 дня до 360-го.



Данный способ усреднения широко известен. Он называется overnight index swap и очень часто используется в рыночных продуктах. Плавающая нога тут определяется как среднее за период.

Мы знаем значение базовой ставки и стоимость свопа. Очевидно, что если мы запишем формулу честной цены в лоб, то у нас будет слишком много неизвестных. У нас неизвестен дискаунт-фактор для 6 месяцев, дискаунт-фактор для 12 месяцев и неизвестны значения процентных ставок кроме одного самого первого. Слишком много неизвестных, и всего лишь одно уравнение.



В решении этой задачи нам поможет следующая гипотеза. Мы знаем процентную ставку в точке ноль это base rate. Мы предположим, что наши процентные ставки изменяются линейно. Обозначим как X значение процентной ставки в точке 12 месяцев.



В точке 6 месяцев это будет X/2 (среднее арифметическое между нулем и X), и мы можем найти значение процентной ставки в любой произвольный день. И нет ничего сложного в том, чтобы посчитать нашу плавающую процентную ставку в точках 6 и 12 месяцев:

$\begin{eqnarray} L_1&=& \frac{X}{4} \end{eqnarray}$



$\begin{eqnarray} L_1&=& \frac{3X}{4} \end{eqnarray}$



Теперь перейдем к дискаунт-факторам. Мы используем кривую дисконтирования на основе овернайт рэйта. Поэтому дискаунт-фактор в точке шесть месяцев произведение 180 дискаунт-факторов в каждой точке, и это будет, очевидно, являться какой-то функцией от X.



Дискаунт-фактор в точке 12 месяцев строится аналогичным образом с той лишь разницей, что мне нужно больше множителей. Это тоже будет какая-то функция от X.



Итак, дискаунт-факторы выражены через X, также есть первое и второе значения плавающей ставки. Перейдем к записи уравнения. Значение цены свопа нам известно, допустим, оно равно P. Вспомним уравнение для честной цены. Нам надо P умножить на дисконт-фактор в точке двенадцати месяцев и приравнять к следующей сумме:



Напомню, дискаунт-фактор для одного дня будет определяться следующей формулой:

$\begin{eqnarray} DF_i&=& \frac{1}{(1+\frac{r_i}{360})} \end{eqnarray}$



где ri значение процентной ставки. Число 360 я использую из предположения, что в году 360 дней (это вполне распространенное соглашение о календарях). В каждой конкретной точке мы знаем, как выразить дискаунт-фактор, ri выражается через X, с исползованием линейной интерполяции. Наше уравнение оказывается всего с одним неизвестным, и его можно решить, используя численные методы. Как это делается смотрите в коде на Python.

Итак, мы знаем, как найти значение нашей ставки в точке 1 год. Используя предположение о линейной интерполяции и исходя из значения свопа, которое нам известно с рынка, мы найдем наше значение X. Вот мы построили первый участок нашей кривой:



Теперь, чтобы посчитать цену свопа на два года, нам нужно значение в точке 6 месяцев, 12 месяцев, 18 месяцев и 2 года. Мы будем использовать точно такое же предположение, как в прошлый раз. Назовем значение искомой ставки Y и также будем использовать предположение о линии интерполяции, восстановив второй участок кривой. Таким образом, шаг за шагом мы дойдем до конца до точки 10 лет.



Такой метод называется bootstrap. Он не является идеальным или единственно верным, но достаточно прост для реализации и понимания в качестве стартового уровня метод bootstrap отлично подходит.



Мы нашли дискаунт-кривую. Что она нам дает? Если говорить формально, то это значения овернайт-ставки в любой точке в будущем до десяти лет. Вы, наверное, спросите: А кому это надо?. Действительно, трудно себе представить сценарий, когда к вам придет клиент и скажет: Я хочу открыть однодневный депозит, который начнется через 567 дней. Это довольно непонятная ситуация, и в таком непосредственном виде воспринимать построенную кривую не стоит.

Представим себе, что у нас есть какой-то платеж в будущем, скажем семь с половиной лет. Вопрос: как мы узнаем его текущую стоимость?

Как раз на этот вопрос и даст ответ дискаунт-кривая. Мы пройдем по каждой точке кривой, посчитаем в каждой точке дискаунт-фактор и закончим свой путь в точке семь с половиной лет, найдем результирующий дискаунт-фактор, умножим на платеж это будет честная цена.



Ту модель, которую я использовал, а именно какие я брал плавающие ставки, как я интерполировал промежуточные значения, и вообще тот факт, что я выбрал интерполяцию, очень сильно было определено тем, какие именно данные у меня есть. У меня было очень мало данных только одна базовая ставка и значения свопов. Если мне доступно больше данных, либо они другие, то, скорее всего, я изменю модель. Но метод bootstrap (когда вы строите кривую сначала на коротком участке, а затем строите все дальше и дальше, опираясь на полученные ранее значения) все равно применим.

Теперь вспомним, что помимо дискаунт-кривых нам нужны кривые LIBOR (TIBOR, EURIBOR и пр.). Разница будет в том, какие инструменты мы добавляем в нашу модель для расчета. Мы будем искать контракты, содержащие LIBOR, и похожим способом, используя метод bootstrap, восстановим LIBOR-кривую.

Если вам придется строить настоящую LIBOR-кривую, очень внимательно отнеситесь к тому, какие инструменты вы используете для ее построения, внимательно оцените ту модель, которую вы будете применять. В данном случае я использовал дисконтирование овернайт, но для построения LIBOR-кривой нужен другой способ. Скорее всего, дисконтирование будет каждые три месяца или шесть, в зависимости от инструмента. Если у вас есть достаточно данных, вы можете построить LIBOR-кривую, EURIBOR-кривую, TIBOR-кривую и любую другую.

Если к вам приходит клиент со словами: Я хочу процентный своп не на десять лет, а на 134 месяца, в которые буду платить каждые 25 дней плавающий LIBOR это не проблема. У нас есть LIBOR-кривая, мы используем предположение об интерполяции, мы можем восстановить значение LIBOR в любой точке. Мы знаем значение дискаунт-кривой в каждой точке, мы тоже можем подсчитать все платежи и найти ту самую цену фиксированной ноги, которая уравновешивает эти плавающие платежи. Тем самым вы можете найти значения честной цены для совершенно любого инструмента, построив несколько кривых.

Итак, давайте еще раз пробежимся по основным моментам. Я взял доступные данные и сформулировал несколько допущений. Во-первых, расписание платежей: как часто, с какой периодичностью каждая сторона платит фиксированную ногу и плавающую ногу. Во-вторых, как я буду считать ставку на плавающей ноге. Третье предположение о линейной интерполяции ставок. Используя все эти три предположения, я сформулировал несколько нелинейных уравнений, которые решил численно. Jupyter notebook вы найдете по ссылке. Последовательно, начиная с самого короткого отрезка в один год, далее два года, три и т.д., я восстановил кривую на промежутке до 10 лет. Это моя дискаунт-кривая, которую я могу использовать для оценки любых инструментов. Такой метод называется bootstrap: отрезок кривой, который я посчитал в самом начале, использую на втором шаге, а то, что получил на втором шаге, я использую для третьего шага и так далее, пока кривая не сформируется полностью.

Надеюсь, теперь вы больше не плаваете в теме плавающих процентных ставок и среди interest rate свопов сможете найти ванильный. А еще сможете построить любую кривую методом bootstrap.

Все статьи этой серии:
Стоимость денег, типы процентов, дисконтирование и форвардные ставки. Ликбез для гика, Ч.1
Облигации: купонные и бескупонные, расчет доходности. Ликбез для гика, Ч.2
Облигации: оценка рисков и примеры использования. Ликбез для гика, Ч.3
Как банки берут друг у друга в долг. Плавающие ставки, процентные свопы. Ликбез для гика, Ч. 4
Построение кривой дисконтирования. Ликбез для гика, Ч. 5
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru