reeviewer
Изучение HWTree
и PriceTree
При ценообразовании Европейской Callable BondЭтот пример демонстрирует, как использовать treeviewer
чтобы изучить информацию о дереве для дерева Халл-Уайт, когда вы цените европейскую callable облигацию.
Определите информацию о кривой процентной ставки.
Rates = [0.035; 0.042147; 0.047345; 0.052707]; ValuationDate = 'Jan-1-2019'; EndDates = {'Jan-1-2020'; 'Jan-1-2021'; 'Jan-1-2022'; 'Jan-1-2023'}; Compounding = 1;
Определите инструменты взаимозаменяемой связи. Первый инструмент является первой записью в массивах. Так, например, первый инструмент имеет страйк-цену 98 долларов и срок погашения 1 января 2022 года.
Settle = '01-Jan-2019'; Maturity = {'01-Jan-2022'; '01-Jan-2023'}; CouponRate = {{'01-Jan-2021' .0425; '01-Jan-2023' .0450}}; OptType = 'call'; Strike = [98; 95]; ExerciseDates= {'01-Jan-2021'; '01-Jan-2022'}; Basis = 1;
Определите информацию о волатильности и HW
однофакторные параметры.
VolDates = ['1-Jan-2020'; '1-Jan-2021'; '1-Jan-2022'; '1-Jan-2023']; VolCurve = 0.05; AlphaDates = '01-01-2023'; AlphaCurve = 0.05;
Использование hwtree
чтобы создать однофакторное дерево.
RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis); HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve, AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWTimeSpec.Basis = Basis; HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
Использование optembndbyhw
для оценки вызываемой связи со встроенными опциями.
[Price, PriceTree] = optembndbyhw(HWT, CouponRate, Settle, Maturity, OptType, Strike,... ExerciseDates, 'Period', 1, 'Basis', Basis)
Price = 2×1
96.4131
92.9341
PriceTree = struct with fields:
FinObj: 'HWPriceTree'
tObs: [0 1 2 3 4]
PTree: {1x5 cell}
ProbTree: {1x5 cell}
ExTree: {1x5 cell}
ExProbTree: {1x5 cell}
ExProbsByTreeLevel: [2x5 double]
Connect: {[2] [2 3 4] [2 3 4 5 6]}
Использование treeviewer
для изучения дерева процентных ставок Hull-White, которое является входом для встроенного ценника опций.
treeviewer(HWT)
Дерево Халл-Уайт имеет 4 уровня узлов. Корневой узел находится в t = 0
три узла находятся в t = 1
пять узлов находятся в t = 2
, и семь узлов находятся в t = 3
. Каждый узел представляет конкретное состояние. В этом случае состояние определяется форвардной кривой процентной ставки, HWT.FwdTree
. Комбинация HWT.FwdTree
и HWT.Connec
t определяет древовидную структуру. FwdTree
содержит значения форвардной процентной ставки на каждом узле. Другие поля содержат другую информацию, относящуюся к интерпретации значений в FwdTree
. Самые важные из них VolSpec
, TimeSpec
, и RateSpec,
которые содержат информацию о волатильности, временной структуре и структуре скорости, соответственно.
Для примера, HWT.FwdTree
является:
HWT.FwdTree
ans=1×4 cell array
{[1.0350]} {1x3 double} {1x5 double} {1x7 double}
Если вы отображаете узлы графически с наложенными скоростями передачи, это выглядит следующим образом:
Можно использовать treeviewer
функция для визуализации скоростей в дереве с treeviewer(HWT)
. Эта функция отображает структуру дерева Hull-White (HWT
) в левой панели. Древовидная визуализация на правой панели пуста. Визуализация фактического дерева процентных ставок:
1. На панели «Визуализация дерева» нажмите кнопку Путь и схема.
2. Выберите первый путь, щелкнув первый узел верхней ветви в t =
1
.
3. Продолжите, нажав на ветвь вверх в следующем узле t =
2
.
Следующие рисунки показывают treeviewer
пути для этих вариантов выбора.
4. Продолжайте последовательно кликать все узлы, пока вы не достигнете конца ветви. Весь выбранный путь подсвечивается красным цветом.
5. Выберите второй путь, щелкнув первый узел нижней ветви в t =
1
. Продолжите клики по нижним узлам, как и в первой ветви. Вторая ветвь подсвечена фиолетовым цветом.
Hull-White деревья имеют два дополнительных свойства называемые Probs
и Connect
. The Probs
свойство представляет вероятности перехода и Connect
свойство определяет, как узлы соединяются вместе.
Connect
Область
HWT.Connect
описывает связь узлов заданного уровня дерева с узлами на следующем уровне дерева.
HWT.Connect
ans=1×3 cell array
{[2]} {[2 3 4]} {[2 3 4 5 6]}
Первое значение HWT.Connect
соответствует t = 0
для корневого узла и указывает, что корневой узел соединяется с узлом 2 следующего уровня в t = 1
. Чтобы визуализировать это, рассмотрим следующий рисунок соединения дерева, где номера узлов были наложены над каждым узлом.
В частности, HWT.Connect
представляет индекс узла на следующем уровне дерева (t + 1
), с которой соединяется средняя ветвь узла.
Следующая запись в HWT.Connect
при t = 1
является [2,3,4
]. Это означает, что узел 1 в t = 1
имеет среднюю ветвь с узлом 2 в t = 2
, узел 2 в t = 1
имеет среднюю ветвь с узлом 3 в t = 2
, и узел 3 в t = 1
имеет среднюю ветвь с узлом 4 в t = 2
. Далее следует графическое представление.
Средний путь ветви, явно заданный в HWT.Connect
, окрашен в красный цвет, а неявные верхний и нижний пути ветви окрашены в желтый цвет. Наложение всех путей, определенных в HWT.Connect
красная и неявная верхняя и нижняя ветви желтого цвета создают следующую древовидную структуру.
Форма на рисунке является такой же формой, полученной при запуске функции treeviewer(HWT)
.
Probs
Область
Используя следующий рисунок, примите к сведению, что вы хотите знать вероятность при t = 1
(второй уровень дерева), который верхний узел занимает из одного из трех путей.
HWT.Probs
задает вероятности перехода конкретной ветви от заданного узла к узлу на следующем уровне дерева.
HWT.Probs
ans=1×3 cell array
{3x1 double} {3x3 double} {3x5 double}
The Probs
поле состоит из массива ячеек с одной камерой на уровень дерева. Найдите вероятности всех трех узлов в t = 1
, что соответствует второму уровню дерева.
HWT.Probs{2}
ans = 3×3
0.1429 0.1667 0.1929
0.6642 0.6667 0.6642
0.1929 0.1667 0.1429
Каждый столбец представляет отдельный узел. Первый узел в t = 1
соответствует первому столбцу, и вероятности составляют 14,29%, 66,42% и 19,30%.
Вероятность движения вверх (путь 1) является верхним значением (14,29%), средний путь является средним значением (66,42%), а путь вниз (путь 3) является нижним значением в массиве (19,30%). Следующая схема суммирует эту информацию.
PriceTree
СтруктураВыходные выходы функции ценообразования PriceTree
. PriceTree
имеет следующие поля.
PriceTree.PTree
- содержит чистые цены каждого инструмента.
PriceTree.ExTree
- содержит массивы индикаторов упражнений, где значение 1
указывает, что опция была реализована и значение 0 указывает, что опция не была реализована.
PriceTree.ExProbTree
- содержит вероятности упражнений. Значение 0 указывает, что упражнения не было, а ненулевое значение дает вероятность добраться до того узла, где выполняются упражнения.
PriceTree.ProbTree
- содержит дерево вероятностей, указывающее, насколько вероятно достигнуть любого узла из корневого узла.
PriceTree.ExProbsByTreeLevel
- содержит вероятность упражнения для заданной опции во время наблюдения дерева. Это агрегированное представление PriceTree.ExProbTree
который суммирует значения по всем узлам в конкретный момент времени.
Обратите внимание, что для ProbTree
, PTree
, ExTree
, и ExProbTree
каждая камера представляет разное время в дереве, а внутри каждой камеры - массив. Каждый столбец массива представляет другой узел в дереве на этом конкретном уровне дерева. Эта структура такая же, как и в HWT.Probs
. Однако для PTree
, ExTree
, и ExProbTree
каждая строка представляет другой инструмент. Поскольку этот пример оценивает два инструмента, существует только две строки. ProbTree
содержит только одну строку, так как вероятность достижения определенного узла не зависит от оцениваемого инструмента.
Глядя на PriceTree.ProbTree
, исследуйте вероятности достижения каждого из пяти узлов от корневого узла при t = 2
, который является третьим уровнем дерева.
PriceTree.ProbTree{3}
ans = 1×5
0.0238 0.2218 0.5087 0.2218 0.0238
Эти результаты отображаются в следующей схеме, где все узлы накладываются со своими вероятностями. Корневой узел в t = 0
всегда имеет вероятность достижения, следовательно, имеет значение 1
.
Глядя на PriceTree.ExTree
можно определить, выполняются ли опции. Если один из двух инструментов имеет опции, реализованные при t = 2
, который является третьим уровнем дерева, значений в ExTree
являются 1
; в противном случае значение 0
.
PriceTree.ExTree{3}
ans = 2×5
0 0 1 1 1
0 0 0 0 0
При t = 2
первый инструмент имеет свою опцию, реализованный в некоторых узлах, в то время как для второго инструмента нет никакого упражнения. Следующая схема суммирует индикаторы упражнений на дереве.
Исследуйте ExProbTree
, который содержит вероятности упражнений. Эти значения указывают на вероятность выполнения опции.
PriceTree.ExProbTree{3}
ans = 2×5
0 0 0.5087 0.2218 0.0238
0 0 0 0 0
ExProbsByTreeLevel
является агрегированным представлением ExProbTrees
. Исследуйте вероятности упражнений для двух опций во время наблюдения дерева.
PriceTree.ExProbsByTreeLevel
ans = 2×5
0 0 0.7544 0 0
0 0 0 0.7124 0
Первая строка соответствует инструменту 1, а вторая строка соответствует инструменту 2.
Можно использовать treeviewer
чтобы изучить tree
и PriceTree
структуры для любого из следующих типов дерева: