Доходность по скорректированному по опциям спреду
[
задает опции с использованием одного или нескольких необязательных аргументов в дополнение к входным параметрам в предыдущем синтаксисе. MYield
,BEMBSYield
] = mbsoas2yield(___,CouponRate
,Delay
,Interpolation
,PrepaySpeed
,PrepayMatrix
)
Учитывая скорректированный по опциону спред, спотовую кривую и предположение о предоплате, вычислите теоретическое выражение к погашению ипотечного пула. Во-первых, создайте матрицу облигаций:
Bonds = [datenum('11/21/2002') 0 100 0 2 1; datenum('02/20/2003') 0 100 0 2 1; datenum('07/31/2004') 0.03 100 2 3 1; datenum('08/15/2007') 0.035 100 2 3 1; datenum('08/15/2012') 0.04875 100 2 3 1; datenum('02/15/2031') 0.05375 100 2 3 1];
Выберите дату расчета.
Settle = datenum('20-Aug-2002');
Примите следующие чистые цены для облигаций:
Prices = [ 98.97467; 98.58044; 100.10534; 98.18054; 101.38136; 99.25411];
Используйте следующую формулу для вычисления спотового компаундирования для связей:
SpotCompounding = 2*ones(size(Prices));
Вычислите нулевую кривую.
[ZeroRatesP, CurveDatesP] = zbtprice(Bonds, Prices, Settle); ZeroCurve = [CurveDatesP, ZeroRatesP, SpotCompounding]
ZeroCurve = 6×3
105 ×
7.3154 0.0000 0.0000
7.3163 0.0000 0.0000
7.3216 0.0000 0.0000
7.3327 0.0000 0.0000
7.3510 0.0000 0.0000
7.4185 0.0000 0.0000
Присвойте следующие параметры:
OAS = [26.0502; 28.6348; 31.2222]; Maturity = datenum('02-Jan-2030'); IssueDate = datenum('02-Jan-2000'); GrossRate = 0.08125; CouponRate = 0.075; Delay = 14; Interpolation = 1; PrepaySpeed = [0 50 100];
Вычислите выражение ипотеки и эквивалентные выражения ипотеки.
[MYield BEMBSYield] = mbsoas2yield(ZeroCurve, OAS, Settle, ... Maturity, IssueDate, GrossRate, CouponRate, Delay, ... Interpolation, PrepaySpeed)
MYield = 3×1
0.0527
0.0513
0.0499
BEMBSYield = 3×1
0.0533
0.0518
0.0504
ZeroCurve
- Нулевая криваяНулевая кривая, заданная как трехколоночная матрица, где:
Столбец 1 представляет собой серийные номера дат.
Столбец 2 является спотовыми ставками со сроками, соответствующими датам в столбце 1, десятичным числом (для примера 0,075).
Столбец 3 представляет собой значение коэффициентов компаундирования в столбце 2. (Это спот-ставка агентства на дату расчета.) Допустимые значения компаундирования: 1
(ежегодно), 2
(полугодовой, 3
(три раза в год), 4
(ежеквартально), 6
(раз в два месяца), 12
(ежемесячно), и -1
(непрерывно).
Для примера:
[datenum('1-Jan-2003') 0.0154 12; datenum('1-Jan-2004') 0.0250 12; ...... datenum('1-Jan-2020') 0.0675 2];
Типы данных: double
| char
| cell
OAS
- Скорректированные по опциям спредыСкорректированные по опциям спреды в базисных точках задаются как NMBS
-by- 1
вектор.
Типы данных: double
Settle
- Дата расчетаДата расчета, заданная как NMBS
-by- 1
вектор с последовательными номерами дат или массив ячеек с векторами символов дат. Settle
должно быть раньше Maturity
.
Типы данных: double
| char
| cell
Maturity
- Дата погашенияДата зрелости, заданная как NMBS
-by- 1
вектор с последовательными номерами дат или массив ячеек с векторами символов дат.
Типы данных: double
| char
| cell
IssueDate
- Дата выпускаДата выпуска, заданная как NMBS
-by- 1
вектор с последовательными номерами дат или массив ячеек с векторами символов дат.
Типы данных: double
| char
| cell
GrossRate
- Ставка брутто-купона (включая комиссии)Ставка брутто-купона (включая комиссии), указанная в виде NMBS
-by- 1
вектор десятичных значений.
Типы данных: double
CouponRate
- Ставка чистого купонаGrossRate
(по умолчанию) | вектор десятичных значений(Необязательно) Ставка чистого купона, заданная как NMBS
-by- 1
вектор десятичных значений.
Типы данных: double
Delay
- Задержка (в днях) между выплатой от домовладельца и получением держателем облигации0
(без задержки между платежом и квитанцией) (по умолчанию) | вектор(Необязательно) Задержка (в днях) между оплатой от домовладельца и получением держателем облигации в виде NMBS
-by- 1
вектор.
Типы данных: double
Interpolation
- Метод интерполяции для вычисления соответствующих спот-ставок для денежного потока облигации1
(линейный) (по умолчанию) | вектор(Необязательно) Метод интерполяции для вычисления соответствующих спот-ставок для денежного потока облигации, заданный как NMBS
-by- 1
вектор. Доступными методами являются (0
) ближайший, (1
) линейный, и (2
) кубический сплайн. Для получения дополнительной информации о поддерживаемых методах интерполяции см. interp1
.
Типы данных: double
PrepaySpeed
- Скорость относительно стандарта PSA0
(без предоплаты) (по умолчанию) | вектор(Необязательно) Скорость относительно стандарта PSA, заданная как NMBS
-by- 1
вектор. Стандарт PSA 100
.
Примечание
Установите PrepaySpeed
на []
если вы вводите настроенное PrepayMatrix
.
Типы данных: double
PrepayMatrix
- Настраиваемый вектор предоплаты(Необязательно) Настраиваемый вектор предоплаты, заданный как NaN
-подставленная матрица размера max(TermRemaining)
-by- NMBS
. Каждый столбец соответствует каждому ипотечному обеспечению, и каждая строка соответствует каждому месяцу после расчета.
Примечание
Использование PrepayMatrix
только когда PrepaySpeed
не задан.
Типы данных: double
MYield
- Доходность к погашению обеспеченности, обеспеченной ипотечным кредитомДоходность к погашению обеспеченности, обеспеченной ипотекой, возвращенная в качестве NMBS
-by- 1
вектор. Это выражение смешивается ежемесячно (12 раз в год).
BEMBSYield
- Эквивалентное выражение облигаций обеспеченного ипотечным кредитом обеспеченияЭквивалентное выражение облигаций обеспеченного ипотечным кредитом обеспечения, возвращенная в качестве NMBS
-by- 1
вектор. Это выражение компаундируется в год (два раза в год).
[1] Унифицированные практики PSA, SF-49
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.