Ценовые ограничения с помощью Черной модели ценообразования опционов
[CapPrice,Caplets]
= capbyblk(RateSpec,Strike,Settle,Maturity,Volatility)
[CapPrice,Caplets]
= capbyblk(___,Name,Value)
[
добавляют дополнительные аргументы пары "имя-значение".CapPrice
,Caplets
]
= capbyblk(___,Name,Value
)
Рассмотрите инвестора, который входит в контракт, который прописные буквы процентная ставка по ссуде в размере 100 000$ в 8% ежеквартально соединили в течение 3 месяцев, начав 1 января 2009. Предположение, что 1 января 2008 нулевой уровень составляет 6,9394%, постоянно составляемые и энергозависимость, составляет 20%, используйте эти данные, чтобы вычислить цену прописной буквы. Во-первых, вычислите RateSpec
:
ValuationDate = 'Jan-01-2008'; EndDates ='April-01-2010'; Rates = 0.069394; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', ValuationDate, ... 'StartDates', ValuationDate,'EndDates', EndDates, ... 'Rates', Rates,'Compounding', Compounding,'Basis', Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.8554
Rates: 0.0694
EndTimes: 2.2500
StartTimes: 0
EndDates: 734229
StartDates: 733408
ValuationDate: 733408
Basis: 1
EndMonthRule: 1
Вычислите цену прописной буквы.
Settle = 'Jan-01-2009'; % cap starts in a year Maturity = 'April-01-2009'; Volatility = 0.20; CapRate = 0.08; CapReset = 4; Principal=100000; CapPrice = capbyblk(RateSpec, CapRate, Settle, Maturity, Volatility,... 'Reset',CapReset,'ValuationDate',ValuationDate,'Principal', Principal,... 'Basis', Basis)
CapPrice = 51.6125
Задайте уровни LIBOR и OIS.
Settle = datenum('15-Mar-2013');
CurveDates = daysadd(Settle,360*[1/12 2/12 3/12 6/12 1 2 3 4 5 7 10],1);
OISRates = [.0018 .0019 .0021 .0023 .0031 .006 .011 .017 .021 .026 .03]';
LiborRates = [.0045 .0047 .005 .0055 .0075 .0109 .0162 .0216 .0262 .0309 .0348]';
Создайте связанный RateSpec
для кривых LIBOR и OIS.
OISCurve = intenvset('Rates',OISRates,'StartDate',Settle,'EndDates',CurveDates,'Compounding',2,'Basis',1); LiborCurve = intenvset('Rates',LiborRates,'StartDate',Settle,'EndDates',CurveDates,'Compounding',2,'Basis',1);
Задайте инструменты Прописной буквы.
Maturity = {'15-Mar-2018';'15-Mar-2020'}; Strike = [0.04;0.05]; BlackVol = 0.2;
Оцените инструменты прописной буквы с помощью структуры термина OISCurve
и для дисконтирования потоков наличности и для генерации будущих форвардных курсов.
[Price, Caplets] = capbyblk(OISCurve, Strike, Settle, Maturity, BlackVol)
Price = 2×1
0.7472
0.9890
Caplets = 2×7
0 0.0000 0.0033 0.2996 0.4443 NaN NaN
0 0.0000 0.0003 0.1134 0.2112 0.2292 0.4349
Оцените инструменты прописной буквы с помощью структуры термина LiborCurve
, чтобы сгенерировать будущие форвардные курсы. Структура термина OISCurve
используется для дисконтирования потоков наличности.
[PriceLC, CapletsLC] = capbyblk(OISCurve, Strike, Settle, Maturity, BlackVol,'ProjectionCurve',LiborCurve)
PriceLC = 2×1
1.3293
1.6329
CapletsLC = 2×7
0 0.0000 0.0337 0.4250 0.8706 NaN NaN
0 0.0000 0.0052 0.1767 0.4849 0.3663 0.5998
Задайте RateSpec
.
Rates = [0.0358; 0.0421; 0.0473; 0.0527; 0.0543]; 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'; Strike = [0.03;0.035]; Reset = 1; Principal ={{'15-Nov-2012' 100;'15-Nov-2013' 70;'15-Nov-2014' 40;'15-Nov-2015' 10}};
Оцените прописные буквы амортизации.
Volatility = 0.10; Price = capbyblk (RateSpec, Strike, Settle, Maturity, Volatility,... 'Reset', Reset,'Principal', Principal)
Price = 2×1
3.0339
2.0141
Создайте RateSpec
.
ValuationDate = 'Mar-01-2016'; EndDates = {'Mar-01-2017';'Mar-01-2018';'Mar-01-2019';'Mar-01-2020';'Mar-01-2021'}; Rates = [-0.21; -0.12; 0.01; 0.10; 0.20]/100; Compounding = 1; Basis = 1; RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',ValuationDate, ... 'EndDates',EndDates,'Rates',Rates,'Compounding',Compounding,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 736390
ValuationDate: 736390
Basis: 1
EndMonthRule: 1
Оцените прописную букву с отрицательной забастовкой с помощью модели Shifted Black.
Settle = 'Jun-01-2016'; % Cap starts in 3 months. Maturity = 'Sep-01-2016'; ShiftedBlackVolatility = 0.31; CapRate = -0.003; % -0.3 percent strike. CapReset = 4; Principal = 100000; Shift = 0.01; % 1 percent shift. CapPrice = capbyblk(RateSpec,CapRate,Settle,Maturity,ShiftedBlackVolatility,... 'Reset',CapReset,'ValuationDate',ValuationDate,'Principal',Principal,... 'Basis',Basis,'Shift',Shift)
CapPrice = 26.0733
Strike
— Уровень, на котором осуществлена прописная букваУровень, на котором осуществлена прописная буква, задал как NINST
-by-1
вектор десятичных значений.
Типы данных: double
Settle
— Расчетный день для прописной буквыРасчетный день для прописной буквы, заданной как последовательный номер даты или вектор символов даты.
Типы данных: double
| char
Maturity
— Дата погашения для прописной буквыДата погашения для прописной буквы, заданной как последовательный номер даты или вектор символов даты.
Типы данных: double
| char
Volatility
— Значения колебанийЗначения колебаний, заданные как NINST
-by-1
вектор числовых значений.
Вход Volatility
не предназначается для поверхностей энергозависимости или кубов. Если вы задаете матрицу для входа Volatility
, capbyblk
внутренне преобразовывает его в вектор. capbyblk
принимает, что колебания, заданные во входе Volatility
, являются плоскими колебаниями, которые применяются одинаково к каждому из caplets.
Типы данных: double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[CapPrice,Caplets] = capbyblk(RateSpec,Strike,Settle,Maturity,Volatility,'Reset',CapReset,'Principal',100000,'Basis',7)
сброс
Сбросьте оплату частоты в год 1
(значение по умолчанию) | числовойСбросьте оплату частоты в год, заданный как NINST
-by-1
вектор.
Типы данных: double
'Principal'
— Отвлеченная основная сумма100
(значение по умолчанию) | числовойОтвлеченная основная сумма, заданная как NINST
-by-1
вектор или NINST
-by-1
массив ячеек. Когда Principal
является NINST
-by-1
массив ячеек, каждым элементом является NumDates
-by-2
массив ячеек, где первый столбец является датами, и второй столбец является сопоставленной основной суммой. Дата указывает в последний день, что основное значение допустимо.
Используйте Principal
, чтобы передать расписание, чтобы вычислить цену за прописную букву амортизации.
Типы данных: double
| cell
'Basis'
— Основание дневного количества инструмента0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Основание дневного количества, представляющее основание, используемое при пересчитывании на год входного форвардного курса, заданного как 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
'ProjectionCurve'
— Кривая уровня используется в генерации будущих форвардных курсовProjectionCurve
не задан, то RateSpec
используется и для дисконтирования потоков наличности и для проектирования будущих форвардных курсов (значение по умолчанию) | структураКривая уровня, которая будет использоваться в генерации будущих форвардных курсов. Эта структура должна быть создана с помощью intenvset
. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: struct
'Shift'
— Переключите десятичные числа на нижний регистр для переключенной модели Black0
(никакой сдвиг) (значение по умолчанию) | положительное десятичное числоПереключите десятичные числа на нижний регистр для переключенной модели Black, заданное использование скаляра или NINST
-by-1
вектор уровня переключает положительные десятичные числа на нижний регистр. Установите этот параметр на положительный уровень, переключают десятичные числа на нижний регистр, чтобы добавить положительный сдвиг на форвардный курс и забастовку, которая эффективно устанавливает отрицательную нижнюю границу для форвардного курса. Например, Shift
0.01
равен 1%-му сдвигу.
Типы данных: double
CapPrice
— Ожидаемая цена прописной буквыОжидаемая цена прописной буквы, возвращенной как NINST
-by-1
вектор.
Caplets
— CapletsCaplets, возвращенный как NINST
-by-NCF
массив caplets, дополненного NaN
s.
Модель Shifted Black является по существу тем же самым как моделью Черного цвета, за исключением того, что это моделирует перемещения (F + Shift) как базовый актив вместо F (который является форвардным курсом в случае caplets).
Эта модель позволяет отрицательные уровни с фиксированной отрицательной нижней границей, заданной суммой сдвига; то есть, нулевая нижняя граница модели Черного цвета была переключена.
Где F является прямым значением, и K является забастовкой.
Где F +Shift является прямым значением, и K +Shift является борьбой за переключенную версию.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.