swaptionbynormal

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

Описание

пример

Price = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDates,Maturity,Volatility) цены swaptions использование модели ценообразования опционов Normal или Bachelier.

пример

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

Примеры

свернуть все

Задайте кривую нулевой ширины и создайте 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

Задайте swaption.

ExerciseDate = datenum('20-Jan-2021');
Maturity = datenum('20-Jan-2026');
OptSpec = 'call';
LegReset = [1 1];

Вычислите уровень подкачки паритета.

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

Цена с Черной энергозависимостью.

Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,BlackVol)
Price = 5.9756

Цена с Нормальной энергозависимостью.

Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 5.5537

Создайте RateSpec.

Rate = 0.06;
Compounding  = -1;
ValuationDate = 'Jan-1-2010';
EndDates =   'Jan-1-2020'; 
Basis = 1; 
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', ValuationDate, ...
'EndDates', EndDates, 'Rates', Rate, 'Compounding', Compounding, 'Basis', Basis);

Задайте swaption.

ExerciseDate = datenum('20-Jan-2021');
Maturity = datenum('20-Jan-2026');
Settle = 'Jan-1-2010';
OptSpec = 'call';
Strike = .09;
NormalVol = .03;
Reset = [1 4];  % 1st column represents receiving leg, 2nd column represents paying leg
Basis = [1 7];  % 1st column represents receiving leg, 2nd column represents paying leg

Цена с Нормальной энергозависимостью.

Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol,'Reset',Reset,'Basis',Basis)
Price_Normal = 5.9084

Задайте 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

Задайте swaption инструмент и цену с swaptionbyblk.

ExerciseDate = datenum('20-Jan-2021');
Maturity = datenum('20-Jan-2026');
OptSpec = 'call';

[~,ParSwapRate] = swapbyzero(RateSpec,[NaN 0],Settle,Maturity,'StartDate',ExerciseDate)
ParSwapRate = 0.0326
Strike = ParSwapRate;
BlackVol = .3;
NormalVol = BlackVol*ParSwapRate;

Price = swaptionbyblk(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,BlackVol)
Price = 3.6908

Оцените swaption инструмент с помощью swaptionbynormal.

Price_Normal = swaptionbynormal(RateSpec,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 3.7602

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

 Price_Normal = swaptionbynormal(RateSpec,OptSpec,-.005,Settle,ExerciseDate,Maturity,NormalVol)
Price_Normal = 16.3674

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

свернуть все

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

Если дисконтная кривая для участка оплаты отличается, чем участок получения, RateSpec может быть NINST- 2 входная переменная RateSpecs, со вторым входом, являющимся скидкой, изгибаются для участка оплаты. Если только одна кривая задана, то она используется, чтобы обесценить оба участка.

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

Определение опции как 'call' или 'put'В виде NINST- 1 массив ячеек из символьных векторов.

'call' swaption или Payer swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции платит фиксированной процентной ставке и получает плавающий курс.

'put' swaption или Receiver swaption, позволяет покупателю опции вводить в процентную ставку, загружают, который покупатель опции получает фиксированную процентную ставку и платит плавающему курсу.

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

Ударьте значения уровня подкачки в виде NINST- 1 вектор из десятичных значений.

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

Расчетный день (представляющий уладить дату каждого swaption) в виде NINST- 1 вектор из последовательных чисел даты или массив ячеек векторов символов даты, объектов datetime или объектов строки. Settle не должен быть позже, чем ExerciseDates.

Settle дата вводится для swaptionbynormal дата оценки, в которую оценен swaption (опция, чтобы ввести в подкачку). swaption покупатель платит эту цену на эту дату, чтобы содержать swaption.

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

Даты, в которые swaption истекает и базовая подкачка, запускаются в виде NINST- 1 вектор из последовательных чисел даты или массив ячеек векторов символов даты, объектов datetime или объектов строки. Существует только один ExerciseDate на дате окончания срока действия опции. Это - также StartDate из базовой прямой подкачки.

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

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

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

Значения колебаний (для нормальной энергозависимости) в виде NINST- 1 вектор из числовых значений.

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

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

Аргументы name-value

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

Пример: Price = swaptionbynormal(OISCurve,OptSpec,Strike,Settle,ExerciseDate,Maturity,NormalVol,'Reset',4)

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

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

Базис дневного количества инструмента, представляющего базис, используемый при пересчитывании на год входа, называет структуру в виде разделенной запятой пары, состоящей из 'Basis' и NINST- 1 вектор или NINST- 2 матрица, представляющая базис для каждого участка. Если Basis NINST- 2, первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.

Значения:

  •  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

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

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

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

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

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

свернуть все

Цены на swaptions во время 0, возвращенный как NINST- 1 вектор из цен.

Больше о

свернуть все

Вызовите Swaption

Call swaption или Плательщик swaption позволяют покупателю опции вводить в процентный своп, в котором покупатель опции платит фиксированную процентную ставку и получает плавающий курс.

Поместите Swaption

Put swaption или Приемник swaption позволяют покупателю опции вводить в процентный своп, в котором покупатель опции получает фиксированную процентную ставку и платит плавающий курс.

Введенный в R2017a