floorbynormal

Ценовое использование этажей Normal или модель ценообразования Bachelier

Синтаксис

[FloorPrice,Floorlets] = floorbynormal(RateSpec,Strike,Settle,Maturity,Volatility)
[FloorPrice,Floorlets] = floorbynormal(___,Name,Value)

Описание

пример

[FloorPrice,Floorlets] = floorbynormal(RateSpec,Strike,Settle,Maturity,Volatility) ценовые этажи с помощью Нормальной модели ценообразования (Bachelier) для отрицательных уровней. floorbynormal вычисляет цены этажей ванили и этажей амортизации.

пример

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

Примеры

свернуть все

Рассмотрите инвестора, который входит в контракт, который ставит в тупик процентную ставку по ссуде в размере 100 000$ на уровне-.6%, ежеквартально составленных в течение 3 месяцев, начиная 1 января 2009. Предположение, что 1 января 2008 нулевой уровень составляет.69394%, постоянно составляемые и энергозависимость, составляет 20%, используйте эти данные, чтобы вычислить минимальную цену. Во-первых, вычислите RateSpec, и затем используйте floorbynormal, чтобы вычислить FloorPrice.

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

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

Settle = 'Jan-01-2009'; % floor starts in a year
Maturity = 'April-01-2009';
Volatility = 0.20;
FloorRate = -0.006;
FloorReset = 4;
Principal=100000;

FloorPrice = floorbynormal(RateSpec, FloorRate, Settle, Maturity, Volatility,...
'Reset',FloorReset,'ValuationDate',ValuationDate,'Principal', Principal,...
'Basis', Basis)
FloorPrice = 1.8212e+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

Задайте инструмент пола и цену с floorbyblk.

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

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

Price = floorbyblk(RateSpec,Strike,Settle,ExerciseDate,BlackVol)
Price = 1.2297

Оцените инструмент пола с помощью floorbynormal.

Price_Normal = floorbynormal(RateSpec,Strike,Settle,ExerciseDate,NormalVol)
Price_Normal = 1.9099

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

 Price_Normal = floorbynormal(RateSpec,-.005,Settle,ExerciseDate,NormalVol)
Price_Normal = 0.0857

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

свернуть все

Структура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

Основание дневного количества инструмента, представляющего основание, используемое при пересчитывании на год входного форвардного курса, заданного как пара, разделенная запятой, состоящая из 'Basis' и NINST-by-1 вектор целых чисел. Значения:

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

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

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

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

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

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

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

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

свернуть все

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

Floorlets, возвращенный как NINST-by-NCF массив caplets, дополненного NaN s.

Введенный в R2017a