Ценовой европейский пут-опцион на связях с помощью модели Black
добавляют дополнительные входные параметры для PutPrice
= bkput(___,Period
,Basis
,EndMonthRule
,InterpMethod
,StrikeConvention
)Period
, Basis
, EndMonthRule
, InterpMethod
, и StrikeConvention
.
В этом примере показано, как оценить европейские пут-опционы на связях с помощью модели Black. Рассмотрите европейский пут-опцион на облигации с погашением за 10 лет. Базовая связь имеет чистую цену 122,82$, номинальную стоимость 100$, и платит 8%-е полугодовые купоны. Кроме того, примите, что пересчитанная на год энергозависимость прямой доходности облигации составляет 20%. Кроме того, предположите, что опция истекает за 2,25 года и имеет цену исполнения опциона 115$, и что пересчитываемая на год постоянно составляемая безрисковая нулевая (точечная) кривая является плоской в 5%. В течение гипотетического расчетного дня от 15 марта 2004, следующий код иллюстрирует использование модели Черного цвета, чтобы скопировать помещенные цены в Примере 22.2 из ссылки Оболочки. В частности, это иллюстрирует, как преобразовать энергозависимость выражения брокера в волатильность цен, подходящую для модели Черного цвета.
% Specify the option information. Settle = '15-Mar-2004'; Expiry = '15-Jun-2006'; % 2.25 years from settlement Strike = 115; YieldSigma = 0.2; Convention = [0; 1]; % Specify the interest-rate environment. Since the % zero curve is flat, interpolation into the curve always returns % 0.05. Thus, the following curve is not unique to the solution. ZeroData = [datenum('15-Jun-2004') 0.05 -1; datenum('15-Dec-2004') 0.05 -1; datenum(Expiry) 0.05 -1]; % Specify the bond information. CleanPrice = 122.82; CouponRate = 0.08; Maturity = '15-Mar-2014'; % 10 years from settlement Face = 100; BondData = [CleanPrice CouponRate datenum(Maturity) Face]; Period = 2; % semiannual coupons Basis = 1; % 30/360 day-count basis % Convert a broker's yield volatility quote to a price volatility % required by Black's model. To duplicate Example 22.2 in Hull, % first compute the periodic (semiannual) yield to maturity from % the clean bond price. Yield = bndyield(CleanPrice, CouponRate, Settle, Maturity,... Period, Basis); % Compute the duration of the bond at option expiration. Most % fixed-income sensitivity analyses use the modified duration % statistic to examine the impact of small changes in periodic % yields on bond prices. However, Hull's example operates in % continuous time (annualized instantaneous volatilities and % continuously compounded zero yields for discounting coupons). % To duplicate Hull's results, use the second output of BNDDURY, % the Macaulay duration. [Modified, Macaulay] = bnddury(Yield, CouponRate, Expiry,... Maturity, Period, Basis); % Convert the yield-to-maturity from a periodic to a % continuous yield. Yield = Period .* log(1 + Yield./Period); % Convert the yield volatility to a price volatility via % Hull's Equation 22.6 (page 514). PriceSigma = Macaulay .* Yield .* YieldSigma; % Finally, call Black's model. PutPrices = bkput(Strike, ZeroData, PriceSigma, BondData,... Settle, Expiry, Period, Basis, [], [], Convention)
PutPrices = 2×1
1.7838
2.4071
Когда цена исполнения опциона является грязной ценой (Convention
= 0 ), значение колл-опциона составляет 1,78$. Когда цена исполнения опциона является чистой ценой (
Convention
= 1 ), значение колл-опциона составляет 2,41$.
Strike
— Цена исполнения опционаЦена исполнения опциона в виде числового скаляра или NOPT
- 1
вектор из цен исполнения опциона.
Типы данных: double
ZeroData
— Нулевая информация об уровне раньше обесценивала будущие потоки наличностиНулевая информация об уровне раньше обесценивала будущие потоки наличности, заданное использование 2D столбца (опционально с тремя столбцами), матрица, содержащая нулевую (точечную) информацию об уровне раньше, обесценивала будущие потоки наличности.
Столбец 1 — Последовательная дата погашения сопоставлена с нулевым уровнем во втором столбце.
Столбец 2 — Пересчитанные на год нулевые уровни, в десятичной форме, подходящей для дисконтирования потоков наличности, происходящих в день заданный в первом столбце. Все даты должны произойти после Settle
(даты должны соответствовать будущим инвестиционным горизонтам), и должно быть в порядке возрастания.
Столбец 3 — (дополнительная) Ежегодная частота соединения. Значениями является 1
(ежегодный), 2
(полугодовой, по умолчанию), 3
(три раза в год), 4
(ежеквартально), 6
(два раза в месяц), 12
(ежемесячно), и -1
(непрерывный).
Если потоки наличности происходят вне дат, заполненных ZeroData
, входная кривая нулевой ширины, соответствующий нулевой уровень для дисконтирования таких потоков наличности получен путем экстраполирования самого близкого уровня на кривой (то есть, если поток наличности происходит перед первым или после последней даты на входной кривой нулевой ширины, пологая кривая принята).
Кроме того, можно использовать метод getZeroRates
для IRDataCurve
объект с Dates
свойство создать вектор из дат и данных, приемлемых для bkput
. Для получения дополнительной информации смотрите Преобразование Объекта IRDataCurve или IRFunctionCurve.
Типы данных: 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
— Количество купонов в год для лежания в основе связи
(полугодовое) (значение по умолчанию) | целое число со значением 0
, 1
, 2
, 3
, 4
, 6
, или 12
(Необязательно) Количество купонов в год для базовой связи в виде целого числа с поддерживаемыми значениями 0
, 1, 2
, 3
, 4
, 6
, и
12
.
Типы данных: double
Basis
— Базис дневного количества базовых связей
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
(Необязательно) базис Дневного количества базовых связей в виде скаляра или NOPT
- 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
EndMonthRule
— Флаг правила конца месяца
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
(Необязательно) Конец месяца управляет флагом в виде скаляра или NOPT
- 1
вектор из правил конца месяца.
0 = Проигнорируйте правило, подразумевая, что платежный день облигационного купона всегда является тем же числовым днем месяца.
1 = Установите правило о, подразумевая, что платежный день облигационного купона всегда является прошлым фактическим днем месяца.
Типы данных: логический
InterpMethod
— Метод интерполяции кривой нулевой ширины
(линейная интерполяция) (значение по умолчанию) | целое число со значением 0
, 1
, или 2
(Необязательно) метод интерполяции Кривой нулевой ширины для потоков наличности, которые не падают на дату, найденную в ZeroData
определите кривую в виде скалярного целого числа. InterpMethod
используется, чтобы интерполировать соответствующую нулевую учетную ставку. Доступные методы интерполяции (0
) самый близкий, (1
) линейный, и (2
) кубический. Для получения дополнительной информации о методах интерполяции смотрите interp1
.
Типы данных: double
StrikeConvention
— Соглашение цены исполнения опциона опционного контракта
(значение по умолчанию) | целое число со значением 0
или 1
(Необязательно) соглашение цены исполнения опциона Опционного контракта в виде скаляра или NOPT
- 1
вектор.
StrikeConvention = 0
(значение по умолчанию) задает цену исполнения опциона как наличную (грязную) цену, заплаченную за базовую связь.
StrikeConvention = 1
задает цену исполнения опциона как заключенную в кавычки (чистую) цену, заплаченную за базовую связь. При оценке модели Черного цвета начисленные проценты связи по истечению опции добавляются к входной цене исполнения опциона.
Типы данных: double
PutPrice
— Цена за европейский пут-опцион на связях выведена из модели BlackЦена за европейский пут-опцион на связях, выведенных из модели Black, возвращенной как NOPT
- 1
вектор.
[1] Оболочка, Джон К. Опции, фьючерсы и Другие Производные. 5-й Выпуск, Prentice Hall, 2003, стр 287–288, 508–515.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.