Решите, что опция настроила распространение с помощью модели Hull-White
[OAS,OAD,OAC]
= oasbyhw(HWTree,Price,CouponRate,Settle,Maturity,OptSpec,Strike,ExerciseDates)[OAS,OAD,OAC]
= oasbyhw(___,Name,Value)Этот пример показывает, как вычислить OAS и OAD использование модели Hull-White (HW) с помощью следующих данных.
ValuationDate = 'October-25-2010'; Rates = [0.0355; 0.0382; 0.0427; 0.0489]; StartDates = ValuationDate; EndDates = datemnth(ValuationDate, 12:12:48)'; Compounding = 1; % define RateSpec RateSpec = intenvset('ValuationDate', ValuationDate,... 'StartDates', StartDates, 'EndDates', EndDates, ... 'Rates', Rates,'Compounding', Compounding); % specify VolsSpec and TimeSpec Sigma = 0.05; Alpha = 0.01; VS = hwvolspec(ValuationDate, EndDates, Sigma*ones(size(EndDates)),... EndDates, Alpha*ones(size(EndDates))); TS = hwtimespec(ValuationDate, EndDates, Compounding); % build the HW tree HWTree = hwtree(VS, RateSpec, TS); % instrument information CouponRate = 0.045; Settle = ValuationDate; Maturity = '25-October-2014'; OptSpec = 'call'; Strike = 100; ExerciseDates = {'25-October-2010','25-October-2013'}; Period = 1; AmericanOpt = 0; Price = 97; % compute the OAS [OAS, OAD] = oasbyhw(HWTree, Price, CouponRate, Settle, Maturity,... OptSpec, Strike, ExerciseDates, 'Period', Period, 'AmericanOpt', AmericanOpt)
OAS = -12.8538
OAD = 3.2910
Этот пример показывает, как вычислить цену вызываемой связи с помощью Белого как оболочка дерева.
Используйте следующие данные о связи:
Settle = datenum('20-Aug-2014'); % Bond Properties Maturity = datenum('01-Apr-2034'); CouponRate = .0625; CallDates = datemnth('01-Oct-2014',6*(0:19)); CallStrikes = [102.85 102.7 102.55 102.4 102.25 102.1 101.95 101.8 ... 101.65 101.5 101.35 101.2 101.05 100.9 100.75 100.6 100.45 100.3 ... 100.15 100];
Используйте следующие данные кривой нулевой ширины:
CurveDates = datemnth(Settle,12*[1 2 3 5 7 10 20 30]'); ZeroRates = [.11 0.30 0.64 1.44 2.07 2.61 3.29 3.55]'/100;
Задайте RateSpec и создайте дерево HW.
RateSpec = intenvset('StartDate',Settle,'EndDates',CurveDates,'Rates',ZeroRates); % HW Model Properties alpha = .1; sigma = .01; TimeSpec = hwtimespec(Settle,cfdates(Settle,Maturity,12),2); VolSpec = hwvolspec(Settle,Maturity,sigma,Maturity,alpha); HWTree = hwtree(VolSpec,RateSpec,TimeSpec,'method','HW2000')
HWTree = struct with fields:
FinObj: 'HWFwdTree'
VolSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [1x236 double]
dObs: [1x236 double]
CFlowT: {1x236 cell}
Probs: {1x235 cell}
Connect: {1x235 cell}
FwdTree: {1x236 cell}
Вычислите OAS для связи.
Price = 103.25;
OAS = oasbyhw(HWTree, Price, CouponRate, Settle, Maturity, 'call', CallStrikes, CallDates)OAS = 234.8209
Если вы хотите вычислить OAS, который только измеряет стоимость опции, можно передать в специфичной для выпускающего кривой вместо безрисковой кривой (это было бы сделано в аргументе RateSpec).
HWTree — Древовидная структура процентной ставкиДревовидная структура процентной ставки, заданная при помощи hwtree.
Типы данных: struct
Price — Рыночные цены связей со встроенными опциямиРыночные цены связей со встроенными опциями, заданными как NINST-by-1 вектор.
Типы данных: double
CouponRate — Уровень облигационного купона Уровень облигационного купона, заданный как NINST-by-1 десятичный годовой показатель.
Типы данных: double
Settle — Расчетный деньРасчетный день для опции связи, заданной как NINST-by-1 вектор последовательных чисел даты или векторов символов даты.
Дата Settle каждой связи со встроенной опцией назначена к ValuationDate дерева HW. Аргумент Settle связи проигнорирован.
Типы данных: double | char
Maturity — Дата погашенияДата погашения, заданная как NINST-by-1 вектор последовательных чисел даты или векторов символов даты.
Типы данных: double | char
OptSpec — Определение опции 'call' или 'put' | массив ячеек из символьных векторов со значениями 'call' или 'put'Определение опции, заданной как NINST-by-1 массив ячеек из символьных векторов.
Типы данных: char | cell
Strike — Значения цены исполнения опциона опцииЗначение цены исполнения опциона опции, заданное как NINST-by-1 или NINST-by-NSTRIKES в зависимости от типа опции:
Европейская опция — NINST-by-1 вектор значений цены исполнения опциона.
Опция Бермуд — NINST количеством забастовок (NSTRIKES) матрица значений цены исполнения опциона. Каждая строка является расписанием для одной опции. Если опция имеет меньше, чем возможности осуществления NSTRIKES, конец строки дополнен NaN s.
Американская опция — NINST-by-1 вектор значений цены исполнения опциона для каждой опции.
Типы данных: double
ExerciseDates — Даты осуществления опцииДаты осуществления опции, заданные как NINST-by-1, NINST-by-2 или NINST-by-NSTRIKES последовательные числа даты или векторы символов даты, в зависимости от типа опции:
Для европейской опции используйте NINST-by-1 вектор дат. Для европейской опции на дате окончания срока действия опции существует только один ExerciseDates.
Для опции Бермуд используйте NINST-by-NSTRIKES вектор дат. Каждая строка является расписанием для одной опции.
Для американской опции используйте NINST-by-2 вектор контуров даты осуществления. Опция может быть осуществлена в любую дату между или включая пару дат на той строке. Если только одна non-NaN дата перечислена, или если ExerciseDates является NINST-by-1 вектор, опция осуществлена между базовой связью дата Settle и одной перечисленной датой осуществления.
Типы данных: double | char
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
OAS = oasbybk(BDTTree,Price,CouponRate,Settle,Maturity,OptSpec,Strike,ExerciseDates,'Period',4)'AmericanOpt' — Тип опции0 (значение по умолчанию) | целое число со значениями 0 или 1Тип опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt' и NINST-by-1 положительное целое число, отмечает с помощью значений:
0 — Европеец/Бермуды
1 — Американец
Типы данных: double
'Period' — Купоны в год2 в год (значение по умолчанию) | векторКупоны в год, заданный как пара, разделенная запятой, состоящая из 'Period' и NINST-by-1 вектор.
Типы данных: double
'Basis' — Основание дневного количества0 (фактическое/фактическое) (значение по умолчанию) | целое число от 0 до 13Основание дневного количества, заданное как пара, разделенная запятой, состоящая из 'Basis' и 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
'EndMonthRule' — Флаг правила конца месяца1 (в действительности) (значение по умолчанию) | неотрицательное целое число со значениями 0 или 1Флаг правила конца месяца, заданный как пара, разделенная запятой, состоящая из 'EndMonthRule' и неотрицательного целого числа с помощью NINST-by-1 вектор. Это правило применяется только, когда Maturity является датой конца месяца в течение месяца, имея 30 или меньше дней.
0 = Игнорирует правило, означая, что платежный день облигационного купона всегда является тем же числовым днем месяца.
1 = Установленное правило о, означая, что платежный день облигационного купона всегда является прошлым фактическим днем месяца.
Типы данных: double
'IssueDate' — Дата выпуска облигацийДата выпуска облигаций, заданная как пара, разделенная запятой, состоящая из 'IssueDate' и NINST-by-1 вектор с помощью последовательных чисел даты или векторов символов даты.
Типы данных: double | char
'FirstCouponDate' — Неправильная первая дата купонаНеправильная первая дата купона, заданная как пара, разделенная запятой, состоящая из 'FirstCouponDate' и NINST-by-1 вектор с помощью последовательных векторов символов даты или даты чисел даты.
Когда FirstCouponDate и LastCouponDate оба заданы, FirstCouponDate более приоритетен в определении структуры купонного платежа. Если вы не задаете FirstCouponDate, платежные дни потока наличности определяются от других входных параметров.
Типы данных: double | char
'LastCouponDate' — Неправильная последняя дата купонаНеправильная последняя дата купона, заданная как пара, разделенная запятой, состоящая из 'LastCouponDate' и NINST-by-1 вектор с помощью последовательных чисел даты или векторов символов даты.
В отсутствие заданного FirstCouponDate заданный LastCouponDate определяет структуру купона связи. Структура купона связи является усеченной в LastCouponDate, независимо от того, где это падает и сопровождается только датой потока наличности зрелости связи. Если вы не задаете LastCouponDate, платежные дни потока наличности определяются от других входных параметров.
Типы данных: char | double
'StartDate' — Передайте срок начала работы платежейПередайте срок начала работы платежей (дата, с которой поток наличности связи рассматривается), заданный как пара, разделенная запятой, состоящая из 'StartDate' и NINST-by-1 вектор с помощью последовательных чисел даты или векторов символов даты.
Если вы не задаете StartDate, эффективная дата начала является датой Settle.
Типы данных: char | double
'Face' — Номинальная стоимость100 (значение по умолчанию) | неотрицательное значение | массив ячеек неотрицательных значенийПоверхность или номинальная стоимость, заданная как пара, разделенная запятой, состоящая из 'Face' и NINST-by-1 вектор.
Типы данных: double
Опции Производные оценивая опцииПроизводные оценивая опции, заданные как пара, разделенная запятой, состоящая из 'Options' и структуры, которая создается с derivset.
Типы данных: struct
OAS — Опция настроила распространениеОпция настроила распространение, возвращенное как NINST-by-1 вектор.
OAD — Опция настроила длительностьОпция настроила длительность, возвращенную как NINST-by-1 вектор.
OAC — Опция настроила выпуклостьОпция настроила выпуклость, возвращенную как NINST-by-1 вектор.
bond with embedded option позволяет выпускающему выкупать (вызываемый) или искупать (с правом досрочного погашения) связь по предопределенной цене в заданные будущие даты.
Программное обеспечение Financial Instruments Toolbox™ поддерживает американца, европейца и Бермуды вызываемые и связи с правом досрочного погашения. Оценка для связи со встроенными опциями следующие:
Вызываемая связь — держатель купил облигацию и продал колл-опцион выпускающему. Например, если процентные ставки понижаются ко времени даты погашения, выпускающий может рефинансировать ее долг на более дешевом уровне и может вызвать связь. Цена вызываемой связи:
Price callable bond = Price Option free bond − Price call option
Связь с правом досрочного погашения — держатель купил облигацию и пут-опцион. Например, если процентные ставки повышаются, будущее значение купонных платежей становится менее ценным. Поэтому инвестор может продать связь назад выпускающему и затем предоставить доходы в другом месте на более высоком уровне. Цена связи с правом досрочного погашения:
Price puttable bond = Price Option free bond + Price put option
[1] Fabozzi, F. Руководство ценных бумаг фиксированного дохода. 7-й выпуск. McGraw-Hill, 2005.
[2] Windas, T. Введение в настроенный опцией анализ распространения. 3-й выпуск. Нажатие Bloomberg, 2007.
hwprice | hwtree | instoptembnd | oasbybdt | oasbybk | oasbyhjm | optembndbyhw
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.