exponenta event banner

mbsprice2oas

Скорректированный на опцион спред по данной цене

Описание

пример

OAS = mbsprice2oas(ZeroCurve,Price,Settle,Maturity,IssueDate,GrossRate) вычисляет скорректированный опцией разброс в базисных точках.

пример

OAS = mbsprice2oas(___,CouponRate,Delay,Interpolation,PrepaySpeed,PrepayMatrix) указывает параметры, использующие один или несколько необязательных аргументов в дополнение к входным аргументам в предыдущем синтаксисе.

Примеры

свернуть все

Рассчитайте скорректированный на опцион спред 30-летней ипотеки с фиксированной ставкой с оставшимся около 28-летним средневзвешенным сроком погашения, учитывая допущения в 0, 50 и 100 предоплат PSA. Сначала создайте матрицу облигаций:

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

Присвойте следующие параметры:

Price         = 95;
Maturity      = datenum('02-Jan-2030');
IssueDate     = datenum('02-Jan-2000');
GrossRate     = 0.08125;
CouponRate    = 0.075;
Delay         = 14;
Interpolation = 1;
PrepaySpeed   = [0; 50; 100];
Interpolation = 1;

Вычислите скорректированный опцией разброс.

OAS = mbsprice2oas(ZeroCurve, Price, Settle, Maturity, ...
IssueDate, GrossRate, CouponRate, Delay, Interpolation, ... 
PrepaySpeed)
OAS = 3×1

   26.0508
   28.6355
   31.2232

Входные аргументы

свернуть все

Нулевая кривая, заданная как матрица из трех столбцов, где:

  • Столбец 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

Чистая цена за каждые 100 долларов номинальной стоимости выпуска облигаций, указанная как NMBSоколо-1 вектор.

Типы данных: double

Дата расчета, указанная как NMBSоколо-1 вектор с использованием серийных номеров дат или массива ячеек векторов символов даты. Settle должно быть раньше, чем Maturity.

Типы данных: double | char | cell

Дата погашения, указанная как NMBSоколо-1 вектор с использованием серийных номеров дат или массива ячеек векторов символов даты.

Типы данных: double | char | cell

Дата выпуска, указанная как NMBSоколо-1 вектор с использованием серийных номеров дат или массива ячеек векторов символов даты.

Типы данных: double | char | cell

Валовая купонная ставка (включая комиссии), указанная как NMBSоколо-1 вектор десятичных значений.

Типы данных: double

(Необязательно) Чистая купонная ставка, указанная как NMBSоколо-1 вектор десятичных значений.

Типы данных: double

(Необязательно) Задержка (в днях) между оплатой от домовладельца и получением держателем облигаций, указанная как NMBSоколо-1 вектор.

Типы данных: double

(Необязательно) Метод интерполяции для вычисления соответствующих спотовых курсов для денежного потока облигации, указанный как NMBSоколо-1 вектор. Доступные методы: (0) ближайший, (1) линейный, и (2) кубический сплайн. Дополнительные сведения о поддерживаемых методах интерполяции см. в разделе interp1.

Типы данных: double

(Необязательно) Скорость относительно стандарта PSA, указанная как NMBSоколо-1 вектор. Стандарт PSA: 100.

Примечание

Установите PrepaySpeed кому [] при вводе настраиваемого PrepayMatrix.

Типы данных: double

(Необязательно) Настраиваемый вектор предоплаты, указанный как NaN-добавленная матрица размера max(TermRemaining)около-NMBS. Каждый столбец соответствует каждому залоговому обеспечению, а каждая строка соответствует каждому месяцу после расчета.

Примечание

Использовать PrepayMatrix только когда PrepaySpeed не указан.

Типы данных: double

Выходные аргументы

свернуть все

Нулевая волатильность OAS в базисной точке (bp), возвращенная как NMBSоколо-1 вектор.

Ссылки

[1] Единообразная практика PSA, SF-49

Представлен до R2006a