floatbyhjm

Цена с плавающей ставкой из дерева процентных ставок Heath-Jarrow-Morton

Описание

пример

[Price,PriceTree] = floatbyhjm(HJMTree,Spread,Settle,Maturity) цены в купюре с плавающей ставкой из дерева процентных ставок Heath-Jarrow-Morton.

floatbyhjm вычисляет цены ванильных купюр с плавающей ставкой, амортизирующих купюр с плавающей ставкой, купюр с ограниченной плавающей ставкой, купюр с плавающей ставкой и банкнот с фиксированной плавающей ставкой.

пример

[Price,PriceTree] = floatbyhjm(___,Name,Value) добавляет дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

Оцените 20-базовую записку точки плавающей ставкой с помощью дерева прямой ставки HJM.

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

load deriv.mat;

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

Spread = 20;
Settle = '01-Jan-2000';
Maturity = '01-Jan-2003';

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

Price = floatbyhjm(HJMTree, Spread, Settle, Maturity)
Price = 100.5529

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

Создайте 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';
Spread = 15;

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

Principal ={{'15-Nov-2012' 100;'15-Nov-2013' 70;'15-Nov-2014' 40;'15-Nov-2015' 10}};

Создайте дерево HJM с помощью следующих данных:

MatDates = {'15-Nov-2012'; '15-Nov-2013';'15-Nov-2014';'15-Nov-2015';'15-Nov-2016';'15-Nov-2017'};
HJMTimeSpec = hjmtimespec(RateSpec.ValuationDate, MatDates);
Volatility = [.10; .08; .06; .04];
CurveTerm = [ 1; 2; 3; 4];
HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6);
HJMT = hjmtree(HJMVolSpec,RateSpec,HJMTimeSpec);

Вычислите цену амортизирующей ноты с плавающей скоростью.

Price = floatbyhjm(HJMT, Spread, Settle, Maturity, 'Principal', Principal)
Price = 100.3059

Оцените ошейник с запиской с плавающей ставкой с помощью CapRate и FloorRate входной параметр для определения ценообразования ошейника.

Оцените портфель записок с плавающей ставкой с помощью следующих данных:

Rates = [0.0287; 0.03024; 0.03345; 0.03861; 0.04033];
ValuationDate = '1-April-2012';
StartDates = ValuationDate;
EndDates = {'1-April-2013';'1-April-2014';'1-April-2015' ;...
'1-April-2016';'1-April-2017'};
Compounding = 1;

Создайте RateSpec.

RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,...
'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);

Создайте дерево HJM со следующими данными:

MatDates = {'1-April-2013'; '1-April-2014';'1-April-2015';...
'1-April-2016';'1-April-2017';'1-April-2018'};
HJMTimeSpec = hjmtimespec(RateSpec.ValuationDate, MatDates);
Volatility = [.10; .08; .06; .04];
CurveTerm = [ 1; 2; 3; 4];
HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6);
HJMT = hjmtree(HJMVolSpec,RateSpec,HJMTimeSpec);

Создайте инструмент ноты с плавающей скоростью.

Settle ='1-April-2012';
Maturity = '1-April-2016';
Spread = 10;
Principal = 100;

Вычислите цену двух ограниченных кавычек с плавающей ставкой.

CapStrike = [0.04;0.055];
PriceCapped = floatbyhjm(HJMT, Spread, Settle, Maturity,...
'CapRate', CapStrike)
PriceCapped = 2×1

   98.9986
  100.2051

Вычислите цену двух записок с плавающей ставкой.

FloorStrike = [0.035;0.040];
PriceCollared = floatbyhjm(HJMT, Spread, Settle, Maturity,...
'CapRate', CapStrike, 'FloorRate', FloorStrike)
PriceCollared = 2×1

   99.9246
  102.2321

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

свернуть все

Древовидная структура процентной ставки, созданная hjmtree

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

Количество базисных точек над скоростью ссылки, заданное как NINST-by- 1 вектор.

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

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

The Settle дата для каждой ноты с плавающей скоростью устанавливается в ValuationDate дерева HJM. Аргумент ноты с плавающей скоростью Settle игнорируется.

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

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

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [Price,PriceTree] = floatbyhjm(HJMTree,Spread,Settle,Maturity,'Basis',3)

Частота платежей в год, заданная как разделенная разделенными запятой парами, состоящая из 'FloatReset' и a NINST-by- 1 вектор.

Примечание

Платежи по купюрам с плавающей ставкой (FRN) определяются эффективной процентной ставкой между датами сброса. Если период сброса для FRN охватывает более одного уровня дерева, вычисление платежа становится невозможным из-за рекомбинантного характера дерева. То есть древовидный путь, соединяющий две последовательные даты сброса, не может быть однозначно определен, поскольку существует несколько возможных путей для соединения двух дат платежа.

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

Базис отсчета дней, представляющий базис, используемый при аннуализации входа дерева прямой скорости, заданный как разделенная запятой пара, состоящий из 'Basis' и a 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

Условные основные суммы, заданные как разделенная разделенными запятой парами, состоящая из 'Principal' и вектор или массив ячеек.

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

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

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

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

Флаг правила конца месяца для генерации дат при Maturity - дата конца месяца для месяца, имеющего 30 или менее дней, заданная как разделенная разделенными запятой парами, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] использование NINST-by- 1 вектор.

  • 0 = Игнорировать правило, означающее, что дата платежа всегда является одним и тем же числовым днем месяца.

  • 1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.

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

Флаг для корректировки денежных потоков на основе фактического количества дней периода, заданный как разделенная разделенными запятой парами, состоящая из 'AdjustCashFlowsBasis' и a NINST-by- 1 вектор логических единиц со значениями 0 (false) или 1 Правда.

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

Праздничные дни, используемые в вычислении рабочих дней, заданные как разделенная разделенными запятой парами, состоящая из 'Holidays' и номера дат MATLAB с использованием NHolidays-by- 1 вектор.

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

Соглашения о рабочих днях, заданные как разделенная разделенными запятой парами, состоящая из 'BusinessDayConvention' и вектор символов или N-by- 1 массив ячеек из векторов символов соглашений о рабочих днях. Выбор для соглашения о рабочих днях определяет режим обработки нерабочих дней. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, установленные законом праздничные дни). Значения:

  • actual - Нерабочие дни фактически игнорируются. Денежные потоки, которые приходятся на нерабочие дни, считаются распределенными на фактическую дату.

  • follow - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными на следующий рабочий день.

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

  • previous - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными в предыдущий рабочий день.

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

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

Годовая скорость прописной буквы, заданная как разделенная разделенными запятой парами, состоящая из 'CapRate' и a NINST-by- 1 десятичный годовой темп или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек, и первый столбец массива ячеек является датами, а второй столбец - связанными скоростями прописной буквы. Дата указывает на последний день действия предельной ставки.

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

Годовая минимальная ставка, заданная как разделенная разделенными запятой парами, состоящая из 'FloorRate' и a NINST-by- 1 десятичный годовой темп или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек, и первый столбец массива ячеек является датами, а второй столбец - связанными скоростями этажа. Дата указывает на последний день действия минимальной ставки.

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

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

свернуть все

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

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

  • PriceTree.PBush содержит чистые цены.

  • PriceTree.AIBush содержит начисленные проценты.

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

Подробнее о

свернуть все

Примечание с плавающей скоростью

floating-rate note является обеспечением, подобным облигации, но процентная ставка банкноты периодически сбрасывается относительно ссылки индекса ставки, чтобы отразить колебания рыночных процентных ставок.

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