reeviewer Исследовать HWTree и PriceTree При расчете цены на европейскую облигациюВ этом примере показано, как использовать treeviewer для проверки информации о дереве для дерева Халл-Уайт при определении цены на европейскую вызываемую связь.
Определите информацию о кривой процентных ставок.
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.Connect определяет древовидную структуру. 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). Эта функция отображает структуру дерева «корпус-белый» (HWT) в левой панели. Визуализация дерева на правой панели пуста. Визуализация фактического дерева процентных ставок:
1. На панели визуализации дерева щелкните Путь и схема.
2. Выберите первый путь, щелкнув первый узел восходящей ветви в t = 1.
3. Продолжить, щелкнув вверх ветвь в следующем узле в t = 2.
На следующих рисунках показаны treeviewer диаграммы путей для этих выбранных объектов.


4. Продолжайте последовательно щелкать все узлы, пока не достигнете конца ветви. Весь выбранный контур выделяется красным цветом.
5. Выберите второй путь, щелкнув первый узел нижней ветви в t = 1. Продолжайте нажимать кнопку мыши на нижних узлах, как в первой ветви. Вторая ветвь выделена фиолетовым цветом.

Белые деревья корпуса имеют два дополнительных свойства, называемых Probs и Connect. 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}
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 структуры для любого из следующих типов дерева: