Используйте t 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)

Figure Tree Viewer contains 2 axes and other objects of type uicontrol. Axes 1 contains 43 objects of type line. Axes 2 is empty.

Дерево Халл-Уайт имеет 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). Эта функция отображает структуру дерева 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 структуры для любого из следующих типов дерева: