exponenta event banner

floorbybdt

Инструмент ценового дна из дерева процентных ставок Black-Derman-Toy

Описание

пример

[Price,PriceTree] = floorbybdt(BDTTree,Strike,Settle,Maturity) вычисляет цену напольного инструмента из дерева процентных ставок Black-Derman-Toy. floorbybdt вычисляет цены на ванильные полы и амортизирующие полы.

пример

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

Примеры

свернуть все

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

load deriv.mat;

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

Strike = 0.10;
Settle = '01-Jan-2000';
Maturity = '01-Jan-2004';

Использовать floorbybdt для расчета цены напольного инструмента.

Price = floorbybdt(BDTTree, Strike, Settle, Maturity)
Price = 0.2428

Сначала задайте требуемые аргументы для трех необходимых спецификаций.

Compounding = 1; 
ValuationDate = '01-01-2000'; 
StartDate = ValuationDate; 
EndDates = ['01-01-2001'; '01-01-2002'; '01-01-2003'; 
'01-01-2004'; '01-01-2005']; 
Rates = [.1; .11; .12; .125; .13]; 
Volatility = [.2; .19; .18; .17; .16];

Создайте спецификации.

RateSpec = intenvset('Compounding', Compounding,... 
'ValuationDate', ValuationDate,... 
'StartDates', StartDate,... 
'EndDates', EndDates,... 
'Rates', Rates); 
BDTTimeSpec = bdttimespec(ValuationDate, EndDates, Compounding); 
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Volatility);

Создайте дерево BDT из спецификаций.

BDTTree = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec)
BDTTree = struct with fields:
      FinObj: 'BDTFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2 3 4]
        dObs: [730486 730852 731217 731582 731947]
        TFwd: {[5x1 double]  [4x1 double]  [3x1 double]  [2x1 double]  [4]}
      CFlowT: {[5x1 double]  [4x1 double]  [3x1 double]  [2x1 double]  [5]}
     FwdTree: {1x5 cell}

Задайте аргументы этажа. Остальные аргументы будут использовать значения по умолчанию.

FloorStrike = 0.10; 
Settlement = ValuationDate; 
Maturity = '01-01-2002'; 
FloorReset = 1;

Использовать floorbybdt чтобы найти цену напольного инструмента.

Price= floorbybdt(BDTTree, FloorStrike, Settlement, Maturity,... 
FloorReset)
Price = 0.0863

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

Rates = [0.03583; 0.042147; 0.047345; 0.052707; 0.054302];
ValuationDate = '15-Nov-2011';
StartDates = ValuationDate;
EndDates = {'15-Nov-2012';'15-Nov-2013';'15-Nov-2014' ;'15-Nov-2015';'15-Nov-2016'};
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: [5x1 double]
       StartDates: 734822
    ValuationDate: 734822
            Basis: 0
     EndMonthRule: 1

Определите инструмент пола.

Settle ='15-Nov-2011';
Maturity = '15-Nov-2015';
Strike = 0.039;
Reset = 1;
Principal ={{'15-Nov-2012' 100;'15-Nov-2013' 70;'15-Nov-2014' 40;'15-Nov-2015' 10}};

Создайте дерево BDT.

BDTTimeSpec = bdttimespec(ValuationDate, EndDates);
Volatility = 0.10;  
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Volatility*ones(1,length(EndDates))');
BDTTree = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec)
BDTTree = struct with fields:
      FinObj: 'BDTFwdTree'
     VolSpec: [1x1 struct]
    TimeSpec: [1x1 struct]
    RateSpec: [1x1 struct]
        tObs: [0 1 2 3 4]
        dObs: [734822 735188 735553 735918 736283]
        TFwd: {[5x1 double]  [4x1 double]  [3x1 double]  [2x1 double]  [4]}
      CFlowT: {[5x1 double]  [4x1 double]  [3x1 double]  [2x1 double]  [5]}
     FwdTree: {1x5 cell}

Цена амортизирующего пола.

Basis = 0;
Price = floorbybdt(BDTTree, Strike, Settle, Maturity, Reset, Basis, Principal)
Price = 0.3060

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

свернуть все

Древовидная структура процентных ставок, определенная с помощью bdttree.

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

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

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

Дата расчета для этажа, указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат. Settle для каждого этажа устанавливается дата ValuationDate дерева BDT. Аргумент floor Settle игнорируется.

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

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

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

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

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

(Необязательно) База подсчета дней, представляющая основу, используемую при ежегодной индексации входной форвардной ставки, указанной как NINSTоколо-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около-1 условных основных сумм или NINSTоколо-1 массив ячеек, где каждый элемент является NumDatesоколо-2 массив ячеек, где первый столбец - даты, а второй столбец - связанная сумма основного долга. Дата указывает последний день, когда действительным является основное значение.

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

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

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

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

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

свернуть все

Ожидаемая цена этажа в момент времени 0, возвращенная как NINSTоколо-1 вектор.

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

  • PriceTree.PTree содержит цены этажей.

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

Подробнее

свернуть все

Пол

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

Выплата за этаж составляет:

max (FloorRate CurrentRate, 0)

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