exponenta event banner

floorbynormal

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

Описание

пример

[FloorPrice,Floorlets] = floorbynormal(RateSpec,Strike,Settle,Maturity,Volatility) цены этажей с использованием модели ценообразования Normal (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около-1 вектор десятичных значений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Флорлеты, возвращенные как NINSTоколо-NCF массив кэплетов, дополненных NaNs.

Подробнее

свернуть все

Пол

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

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

max (FloorRate CurrentRate, 0)

Представлен в R2017a