Опцион ценового европейского колла по облигациям по модели Black
добавляет необязательные входные аргументы для CallPrice = bkcall(___,Period,Basis,EndMonthRule,InterpMethod,StrikeConvention)Period, Basis, EndMonthRule, InterpMethod, и StrikeConvention.
В этом примере показано, как оценить европейский опцион колл по облигациям с использованием модели Black. Рассмотрим европейский опцион колл по облигациям со сроком погашения через 9,75 года. Базовая облигация имеет чистую цену $935, номинальную стоимость $1000, и выплачивает 10% полугодовых купонов. Поскольку срок погашения облигации истекает через 9,75 года, купон в размере 50 долларов будет выплачен через 3 месяца и снова через 9 месяцев. Также предположим, что годовая волатильность цены форвардных облигаций составляет 9%. Кроме того, предположим, что срок действия опциона истекает через 10 месяцев и цена страйка составляет $1000, и что годовые ставки дисконтирования без риска на срок 3, 9 и 10 месяцев составляют 9%, 9,5% и 10% соответственно.
% specify the option information Settle = '15-Mar-2004'; Expiry = '15-Jan-2005'; % 10 months from settlement Strike = 1000; Sigma = 0.09; Convention = [0 1]'; % specify the interest-rate environment ZeroData = [datenum('15-Jun-2004') 0.09 -1; % 3 months datenum('15-Dec-2004') 0.095 -1; % 9 months datenum(Expiry) 0.10 -1]; % 10 months % specify the bond information CleanPrice = 935; CouponRate = 0.1; Maturity = '15-Dec-2013'; % 9.75 years from settlement Face = 1000; BondData = [CleanPrice CouponRate datenum(Maturity) Face]; Period = 2; Basis = 1; % call Black's model CallPrices = bkcall(Strike, ZeroData, Sigma, BondData, Settle,... Expiry, Period, Basis, [], [], Convention)
CallPrices = 2×1
9.4873
7.9686
Когда цена страйка является грязной ценой (Convention = 0), стоимость опциона колла составляет $9,49. Когда цена страйка является чистой ценой (Convention = 1), стоимость опциона колла составляет $7,97.
Strike - Цена страйкаЦена страйка, указанная как скалярное число или NOPTоколо-1 вектор ударных цен.
Типы данных: double
ZeroData - Информация о нулевой ставке, используемая для дисконтирования будущих денежных потоковИнформация о нулевой ставке, используемая для дисконтирования будущих денежных потоков, определяемая с помощью матрицы из двух столбцов (необязательно из трех столбцов), содержащей информацию о нулевой (спотовой) ставке, используемую для дисконтирования будущих денежных потоков.
Столбец 1 - Дата серийного срока, связанная с нулевой ставкой во втором столбце.
Столбец 2 - годовые нулевые ставки в десятичной форме, подходящие для дисконтирования денежных потоков, происходящих на дату, указанную в первом столбце. Все даты должны наступать после Settle (даты должны соответствовать будущим горизонтам инвестиций) и должны быть в порядке возрастания.
Колонка 3 - (факультативно) Годовая частота компаундирования. Значения: 1 (ежегодно), 2 (полугодовой, по умолчанию), 3 (три раза в год), 4 (ежеквартально), 6 (раз в два месяца), 12 (ежемесячно), и -1 (непрерывный).
Если денежные потоки происходят после дат, охватываемых ZeroData, входную нулевую кривую, соответствующую нулевую ставку для дисконтирования таких денежных потоков получают путем экстраполяции ближайшей ставки на кривой (то есть, если денежный поток происходит до первой или после последней даты на входной нулевой кривой, предполагается плоская кривая).
Кроме того, можно использовать метод getZeroRates для IRDataCurve объект с Dates свойство для создания вектора дат и данных, приемлемых для bkcall. Дополнительные сведения см. в разделе Преобразование объекта IRDataCurve или IRFфункциональCurve.
Типы данных: double
Sigma - Волатильность цен в годовом исчислении, требуемая по модели BlackГодовые волатильности цен, требуемые моделью Black, указанные как скаляр или NOPTоколо-1 вектор.
Типы данных: struct
BondData - Характеристики основных облигаций Характеристики нижележащих связей, указанные как вектор строки с тремя (необязательно четырьмя) столбцами или NOPTоколо-3 (необязательно NOPTоколо-4) матрица, определяющая характеристики нижележащих облигаций в виде:
[CleanPrice CouponRate Maturity Face]
CleanPrice - цена без учета начисленных процентов.
CouponRate - десятичная ставка купона.
Maturity - дата погашения облигации в формате номера серийной даты.
Face - номинальная стоимость облигации. Если не указано, номинал принимается равным 100.
Типы данных: double
Settle - Дата расчетаДата расчета, указанная как серийный номер даты или вектор символов даты. Settle также представляет начальную ссылочную дату для входной нулевой кривой.
Типы данных: char | double
Expiry - Дата погашения опциона Дата погашения опциона, указанная как скаляр или NOPTоколо-1 вектор серийных номеров дат или массив ячеек векторов символов дат.
Типы данных: char | cell | double
Period - Количество купонов в год на нижележащие облигации2 (полугодовой) (по умолчанию) | целое число со значением 0, 1, 2, 3, 4, 6, или 12(Необязательно) Количество купонов в год для базовой облигации, указанное как целое число с поддерживаемыми значениями 0, 1, 2, 3, 4, 6, и 12.
Типы данных: double
Basis - Основа подсчета дней по основным облигациям0 (факт/факт) (по умолчанию) | целое число от 0 кому 13(Необязательно) Основание для подсчета дней базовых связей, указанное как скаляр или NOPTоколо-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
EndMonthRule - Флаг правила на конец месяца 1 (в действии) (по умолчанию) | неотрицательное целое число [0,1](Необязательно) Флаг правила на конец месяца, указанный как скаляр или NOPTоколо-1 вектор правил конца месяца.
0 = Игнорировать правило, означающее, что дата выплаты бонусного купона всегда совпадает с числовым днем месяца.
1 = Установить правило, означающее, что дата выплаты бонусного купона всегда является последним фактическим днем месяца.
Типы данных: logical
InterpMethod - Метод интерполяции нулевой кривой1 (линейная интерполяция) (по умолчанию) | целое число со значением 0, 1, или 2(Необязательно) Метод интерполяции нулевой кривой для денежных потоков, которые не попадают на дату, найденную в ZeroData точечная кривая, заданная как скалярное целое число. InterpMethod используется для интерполяции соответствующей нулевой учетной ставки. Доступные методы интерполяции (0) ближайший, (1) линейный, и (2) куб. Дополнительные сведения о методах интерполяции см. в разделе interp1.
Типы данных: double
StrikeConvention - Соглашение о цене страйка опционного контракта0 (по умолчанию) | целое число со значением 0 или 1(Необязательно) Соглашение о цене страйка опционного контракта, указанное как скаляр или NOPTоколо-1 вектор.
StrikeConvention = 0 (по умолчанию) определяет цену страйка как денежную (грязную) цену, уплаченную за базовую облигацию.
StrikeConvention = 1 определяет цену страйка как приведенную (чистую) цену, уплаченную за базовую облигацию. При оценке модели Блэка начисленные проценты облигации по истечении срока опциона добавляются к входной цене страйка.
Типы данных: double
CallPrice - Цена европейского колл-опциона на облигации, полученные по модели BlackЦена для европейского колл-опциона по облигациям, полученным из модели Black, возвращенная как NOPTоколо-1 вектор.
[1] Халл, Джон К. Опционы, фьючерсы и другие деривативы. 5-е издание, Прентис Холл, 2003, стр. 287-288, 508-515.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.