capbyhw

Инструмент прописной буквы из дерева процентных ставок Hull-White

Описание

пример

[Price,PriceTree] = capbyhw(HWTree,Strike,Settle,Maturity) вычисляет цену прописной буквы из дерева процентных ставок Hull-White. capbyhw вычисляет цены на ванильные прописные буквы и амортизационные прописные буквы.

пример

[Price,PriceTree] = capbyhw(___,CapReset,Basis,Principal,Options) добавляет необязательные аргументы.

Примеры

свернуть все

Загрузите файл deriv.mat, который обеспечивает HWTree. The HWTree структура содержит информацию о времени и процентной ставке, необходимую для оценки прописной буквы инструмента.

load deriv.mat;

Установите необходимые значения. Другие аргументы будут использовать значения по умолчанию.

Strike = 0.03;
Settle = '01-Jan-2004';
Maturity = '01-Jan-2007';

Использование capbyhw для вычисления цены колпачкового прибора.

Price = capbyhw(HWTree, Strike, Settle, Maturity)
Price = 2.3090

Определите RateSpec.

Rates = [0.035; 0.042; 0.047; 0.052; 0.054];
ValuationDate = '01-April-2014';
StartDates = ValuationDate;
EndDates = {'01-April-2019'};
Compounding = 1;
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,...
'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 1
             Disc: [5x1 double]
            Rates: [5x1 double]
         EndTimes: [5x1 double]
       StartTimes: [5x1 double]
         EndDates: 737516
       StartDates: 735690
    ValuationDate: 735690
            Basis: 0
     EndMonthRule: 1

Определите контрольно-измерительные приборы.

Settle ='01-April-2014';
Maturity = '01-April-2018';
Strike = 0.055;
CapReset = 1;
Principal ={{'01-April-2015' 100;'01-April-2016' 60;'01-April-2017' 40;'01-April-2018' 20};
            100};

Создайте дерево аппаратных средств.

VolDates = ['01-April-2015';'01-April-2016';'01-April-2017';'01-April-2018'];
VolCurve = 0.05;
AlphaDates = '01-April-2018';
AlphaCurve = 0.10;

HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... 
                      AlphaDates, AlphaCurve);
HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding);
HWTree = hwtree(HWVolSpec, RateSpec, HWTimeSpec)
HWTree = struct with fields:
      FinObj: 'HWFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2 3]
        dObs: [735690 736055 736421 736786]
      CFlowT: {[4x1 double]  [3x1 double]  [2x1 double]  [4]}
       Probs: {[3x1 double]  [3x3 double]  [3x5 double]}
     Connect: {[2]  [2 3 4]  [2 3 4 5 6]}
     FwdTree: {[1.0350]  [1.1300 1.0363 0.9503]  [1x5 double]  [1x7 double]}

Оцените амортизационные и ванильные прописные буквы.

Basis = 0;
Price  = capbyhw(HWTree, Strike, Settle, Maturity, CapReset, Basis, Principal)
Price = 2×1

    1.6754
    4.6149

Входные параметры

свернуть все

Древовидная структура процентной ставки, заданная при помощи hwtree.

Типы данных: struct

Скорость, с которой осуществляется прописная буква, задается как NINST-by- 1 вектор десятичных значений.

Типы данных: double

Дата расчета для прописной буквы, заданная как NINST-by- 1 вектор серийных номеров дат или векторов символов дат. The Settle дата для каждой прописной буквы устанавливается в ValuationDate дерева HW. Аргумент cap Settle игнорируется.

Типы данных: double | char | cell

Дата зрелости для прописной буквы, заданная как NINST-by- 1 вектор серийных номеров дат или векторов символов дат.

Типы данных: double | char | cell

(Необязательно) Сбрасывать частотный платеж в год, заданный как NINST-by- 1 вектор.

Типы данных: double

(Необязательно) Базис отсчета дней, представляющий базис, используемый при аннуализации входной форвардной скорости, заданный как NINST-by- 1 вектор целых чисел.

  • 0 = факт/факт

  • 1 = 30/360 (SIA)

  • 2 = факт/360

  • 3 = факт/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Для получения дополнительной информации см. раздел Базиса.

Типы данных: double

(Необязательно) Условная основная сумма, заданная как NINST-by- 1 условных основных сумм, или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек, где первый столбец является датами, а второй - связанным основным объемом. Дата указывает на последний день действия основного значения.

Использование Principal для прохождения расписания для вычисления цены амортизирующей прописной буквы.

Типы данных: double | cell

(Необязательно) Структура опций ценообразования производных, заданная с помощью derivset.

Типы данных: struct

Выходные аргументы

свернуть все

Ожидаемая цена прописной буквы в момент 0, возвращается как NINST-by- 1 вектор.

Древовидная структура со значениями прописной буквы в каждом узле, возвращаемая как MATLAB® структура деревьев, содержащих векторы цен на приборы и вектор времени наблюдения для каждого узла:

  • PriceTree.PTree содержит предельные цены.

  • PriceTree.tObs содержит время наблюдения.

  • PriceTree.Connect содержит векторы связности. Каждый элемент массива ячеек описывает, как узлы на этом уровне соединяются с следующим. Для заданного уровня дерева существуют NumNodes элементы в векторе, и они содержат индекс узла на следующем уровне, с которым соединяется средняя ветвь. Вычитание 1 из этого значения указывает, где соединяется восходящая ветвь, и добавление 1 указывает, где соединяется нисходящая ветвь.

  • PriceTree.Probs содержит массивы вероятностей. Каждый элемент массива ячеек содержит вероятности перехода вверх, посередине и вниз для каждого узла уровня.

Подробнее о

свернуть все

Прописная буква

cap является договором, который включает гарантию, устанавливающую максимальную процентную ставку, подлежащую уплате держателем, на основе плавающей процентной ставки.

Окупаемость для прописной буквы:

max(CurrentRateCapRate,0)

Для получения дополнительной информации см. Прописную букву.

Представлено до R2006a