capbynormal

Ценовые прописные буквы с использованием модели Normal или Bachelier

Описание

пример

[CapPrice,Caplets] = capbynormal(RateSpec,Strike,Settle,Maturity,Volatility) прописные буквы цен с использованием модели ценообразования Normal (Bachelier) для отрицательных ставок. capbynormal вычисляет цены на ванильные прописные буквы и амортизационные прописные буквы.

пример

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

Примеры

свернуть все

Рассмотрим инвестора, который попадает в контракт, который ограничивает процентную ставку по кредиту на 100 000 долларов на уровне -,08% ежеквартально в течение 3 месяцев, начиная с 1 января 2009 года. Принимая, что на 1 января 2008 года нулевая ставка составляет 0,69394% постоянно сложнее, а волатильность составляет 20%, используйте эти данные для вычисления предельной цены. Сначала вычислите RateSpec, а затем используйте capbynormal для вычисления CapPrice.

ValuationDate = 'Jan-01-2008';
EndDates ='April-01-2010';
Rates = 0.0069394;
Compounding = -1;
Basis = 1;

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


Settle = 'Jan-01-2009'; % cap starts in a year
Maturity = 'April-01-2009';
Volatility = 0.20;
CapRate = -0.008;
CapReset = 4;
Principal=100000;

CapPrice = capbynormal(RateSpec,  CapRate, Settle, Maturity, Volatility,...
'Reset',CapReset,'ValuationDate',ValuationDate,'Principal', Principal,...
'Basis', Basis)
CapPrice = 2.1682e+03

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

Settle = datenum('20-Jan-2016');
ZeroTimes = [.5 1 2 3 4 5 7 10 20 30]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = datemnth(Settle,12*ZeroTimes);
RateSpec = intenvset('StartDate',Settle,'EndDates',ZeroDates,'Rates',ZeroRates)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: 2
             Disc: [10x1 double]
            Rates: [10x1 double]
         EndTimes: [10x1 double]
       StartTimes: [10x1 double]
         EndDates: [10x1 double]
       StartDates: 736349
    ValuationDate: 736349
            Basis: 0
     EndMonthRule: 1

Определите прописная буква инструмент и цену с capbyblk.

ExerciseDate = datenum('20-Jan-2026');

[~,ParSwapRate] = swapbyzero(RateSpec,[NaN 0],Settle,ExerciseDate)
ParSwapRate = 0.0216
Strike = .01;
BlackVol = .3;
NormalVol = BlackVol*ParSwapRate;

Price = capbyblk(RateSpec,Strike,Settle,ExerciseDate,BlackVol)
Price = 11.8693

Оцените прописную букву с помощью capbynormal.

Price_Normal = capbynormal(RateSpec,Strike,Settle,ExerciseDate,NormalVol)
Price_Normal = 12.5495

Оцените прописную букву с помощью capbynormal для негативного удара.

 Price_Normal = capbynormal(RateSpec,-.005,Settle,ExerciseDate,NormalVol)
Price_Normal = 24.4816

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

свернуть все

Структура процентной ставки (в годовом исчислении и постоянно сложной), определяемая RateSpec получен из intenvset. Для получения информации о спецификации процентной ставки смотрите intenvset.

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

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

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

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

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

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

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

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

Для получения дополнительной информации о модели Normal, смотрите Работа с отрицательными процентными ставками с использованием функций.

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

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

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

Пример: [CapPrice,Caplets] = capbynormal(RateSpec,Strike,Settle,Maturity,Volatility,'Reset',CapReset,'Principal',100000,'Basis',7)

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

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

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

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

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

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

Дата наблюдения инвестиционного горизонта, заданная как разделенная разделенными запятой парами, состоящая из 'ValuationDate' и серийный номер даты, вектор символов даты, объект datetime или строковые массивы.

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

Кривая ставки, которая будет использоваться при прогнозировании будущих денежных потоков, заданная как разделенная разделенными запятой парами, состоящая из 'ProjectionCurve' и структуру кривой скорости. Эта структура должна быть создана с помощью intenvset. Используйте этот необязательный вход, если прямая кривая отличается от кривой скидки.

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

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

свернуть все

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

Caplets, возвращается как NINST-by- NCF массив каплетов, заполненных NaNс.

Подробнее о

свернуть все

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

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

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

max(CurrentRateCapRate,0)

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

Введенный в R2017a