Программное обеспечение Financial Instruments Toolbox™ поддерживает вычисления, связанные с типовыми ипотечными пулами с фиксированной процентной ставкой и займами со вздутыми выплатами. Типовые ипотечные пулы с фиксированной процентной ставкой и займы со вздутыми выплатами имеют сертификаты передачи (PC), которые обычно встраивали колл-опционы в форме предварительной оплаты. Предварительная оплата является избыточной оплатой, применился к принципалу PC. Эти ускоренные платежи уменьшают эффективную жизнь PC.
Тулбокс идет со стандартной Ассоциацией Рынка облигаций (PSA) модель предварительной оплаты и может сгенерировать множители стандартных скоростей предварительной оплаты. Общедоступная Ассоциация рынка ценных бумаг обеспечивает набор универсальных методов для вычисления характеристик ценных бумаг, обеспеченных закладной, когда существует принятая функция предварительной оплаты.
В качестве альтернативы кроме стандартной реализации PSA в этом тулбоксе, можно предоставить собственные спроектированные векторы предварительной оплаты. В настоящее время, однако, пользовательская функциональность предварительной оплаты, которая включает специфичную для пула информацию и прогнозы процентной ставки, не доступна в этом тулбоксе. Если вы планируете использовать пользовательские векторы предварительной оплаты в своих вычислениях, вы, по-видимому, уже владеете таким набором в MATLAB®.
Из-за типовой, универсальной природы функций передачи тулбокса можно подстроить их, чтобы соответствовать конкретной ипотеке. Большинство функций требует, по крайней мере, этого набора входных параметров:
Грубая купонная ставка
Расчетный день
Выпустите (эффективную) дату
Дата погашения
Типичные дополнительные входные параметры включают стандартную скорость предварительной оплаты (или настроенный вектор), сетевая купонная ставка (если отличающийся от грубой купонной ставки), и платежная задержка номера дней.
Все вычисления основаны на ожидаемых платежных днях и фактическом потоке наличности инвестору. Например, когда GrossRate
и CouponRate
отличайтесь как входные параметры к mbsdurp
, функция возвращает модифицированную длительность на основе CouponRate
. (Существенное исключение mbspassthrough
, который возвращает количества интереса на основе GrossRate
.)
Можно сгенерировать PSA несколько векторов предварительной оплаты быстро. Чтобы сгенерировать векторы предварительной оплаты из 100 и 200 PSA, ввести
PSASpeed = [100, 200]; [CPR, SMM] = psaspeed2rate(PSASpeed);
Эта функция вычисляет два значения предварительной оплаты: условный уровень предварительной оплаты (CPR) и уровень одного ежемесячного выхода из строя (SMM). CPR является процентом выдающегося принципала, предварительно оплаченного за один год. SMM является процентом выдающегося принципала, предварительно оплаченного за один месяц. Другими словами, CPR является ежегодной версией SMM.
Начиная с целого 360 2 массив является слишком длинным, чтобы показать в этом документе, наблюдать SMM (100 и 200 PSA) графики, расположенные с интервалами на расстоянии в один месяц, вместо этого.
Предположения предварительной оплаты формируют основание, на котором базируются намного более всесторонние вычисления MBS. Как рисунок, наблюдайте следующий пример, который показывает использование функции mbscfamounts
сгенерировать потоки наличности и синхронизации на основе набора стандартных предварительных оплат.
Рассмотрите три ипотечных пула, которые были проданы на дате выпуска (который запускается неамортизированный). Первые два пула "воздушный шар" за 60 месяцев и третье регулярно амортизируются в конец. Скорости предварительной оплаты приняты, чтобы быть 100, 200, и 200 PSA, соответственно.
Settle = [datenum('1-Feb-2000'); datenum('1-Feb-2000'); datenum('1-Feb-2000')]; Maturity = [datenum('1-Feb-2030')]; IssueDate = datenum('1-Feb-2000'); GrossRate = 0.08125; CouponRate = 0.075; Delay = 14; PSASpeed = [100, 200]; [CPR, SMM] = psaspeed2rate(PSASpeed); PrepayMatrix = ones(360,3); PrepayMatrix(1:60,1:2) = SMM(1:60,1:2); PrepayMatrix(:,3) = SMM(:,2); [CFlowAmounts, CFlowDates, TFactors, Factors] = ... mbscfamounts(Settle, Maturity, IssueDate, GrossRate, ... CouponRate, Delay, [], PrepayMatrix);
Четвертый выходной аргумент, Factors
, указывает на часть баланса, все еще выдающегося в начале каждого месяца. Снимок состояния этого аргумента в редакторе переменных MATLAB иллюстрирует 60-месячную жизнь первых двух из ипотек с крупными разовыми платежами в погашение долга и продолжением третьей ипотеки до конца (360 месяцев).
Можно с готовностью видеть тот mbscfamounts
базовый блок большей части фиксированной процентной ставки и потоков наличности пула воздушного шара.
Предварительная оплата выгодна для владельца передачи, когда ипотечный пул был куплен со скидкой. Следующий пример сравнивает ипотечные выражения (составленный ежемесячно) по сравнению с покупкой чистая цена с постоянной скоростью предварительной оплаты. Пример иллюстрирует, что, когда вы купили пул со скидкой, предварительная оплата генерирует более высокое выражение с уменьшением покупной цены.
Price = [85; 90; 95]; Settle = datenum('15-Apr-2002'); Maturity = datenum('1 Jan 2030'); IssueDate = datenum('1-Jan-2000'); GrossRate = 0.08125; CouponRate = 0.075; Delay = 14; Speed = 100;
Вычислите ипотеку и доходности по облигациям.
[MYield, BEMBSYield] = mbsyield(Price, Settle, Maturity, ... IssueDate, GrossRate, CouponRate, Delay, Speed)
MYield = 0.1018 0.0918 0.0828 BEMBSYield = 0.1040 0.0936 0.0842
Если для этого того же пула ипотек, не было никакой предварительной оплаты (Speed = 0
), выражения уменьшились бы к
MYield = 0.0926 0.0861 0.0802 BEMBSYield = 0.0944 0.0877 0.0815
Аналогично, если уровень удвоенной предварительной оплаты (Speed = 200
), выражения увеличились бы до
MYield = 0.1124 0.0984 0.0858 BEMBSYield = 0.1151 0.1004 0.0873
Для того же вектора предварительной оплаты глубже обесценьте пулы, зарабатывают более высокие выражения. Для получения дополнительной информации смотрите mbsprice
и mbsyield
.
Financial Instruments Toolbox обеспечивает самые основные меры по риску портфеля пула:
Рассмотрите следующий пример, который вычисляет Маколея и измененную длительность, учитывая цену ипотечного пула.
Price = [95; 100; 105]; Settle = datenum('15-Apr-2002'); Maturity = datenum('1-Jan-2030'); IssueDate = datenum('1-Jan-2000'); GrossRate = 0.08125; CouponRate = 0.075; Delay = 14; Speed = 100; [YearDuration, ModDuration] = mbsdurp(Price, Settle, ... Maturity, IssueDate, GrossRate, CouponRate, Delay, Speed)
YearDuration = 6.1341 6.3882 6.6339 ModDuration = 5.8863 6.1552 6.4159
Используя функции Financial Instruments Toolbox, можно получить измененную длительность и выпуклость или от цены или от выражения, пока вы задаете вектор предварительной оплаты или принятую скорость предварительной оплаты. Функции измерения риска тулбокса (mbsdurp
, mbsdury
, mbsconvp
, mbsconvy
, и mbswal
) придерживайтесь инструкций, перечисленных в Универсальном руководстве Методов PSA.
Для точной оценки ипотечного пула необходимо сгенерировать пути процентной ставки и использовать их с характеристиками ипотечного пула, чтобы правильно оценить пул. Широко используемая методология является настроенным опцией распространением (OAS). OAS измеряет распространение выражения, которое не непосредственно относится к характеристикам инвестиций фиксированного дохода.
Предварительная оплата изменяет потоки наличности в противном случае регулярно амортизирующего ипотечного пула. Всестороннее настроенное опцией вычисление распространения обычно начинается с генерации набора путей точечных уровней, чтобы предсказать предварительную оплату. Путь является набором i пути точечного уровня с соответствующими j потоками наличности на каждом из тех путей.
Эффект OAS на оценке пула показывают математически в следующем уравнении, где K является настроенным опцией распространением.
В качестве альтернативы, если вы больше интересуетесь чувствительностью ипотечного пула к изменениям процентной ставки, используйте эффективную длительность, которая является более соответствующей мерой. Эффективная длительность задана математически следующим уравнением.
Тулбокс имеет все компоненты, требуемые вычислить OAS и эффективную длительность, если вы предоставляете векторы предварительной оплаты или предположения. Для OAS, учитывая вектор предварительной оплаты, можно сгенерировать набор потоков наличности с mbscfamounts
. Дисконтирование этих потоков наличности с референсной кривой и затем добавлением OAS производит рыночную цену. Смотрите Вычислительное Настроенное Опцией Распространение для обсуждения расчета настроенного опцией распространения.
Эффективная длительность является более сложным вопросом. В то время как модифицированная длительность изменяет процесс дисконтирования (путем изменения выражения, используемого к дисконтированным потокам денежных средств), эффективная длительность должна составлять изменение в потоке наличности из-за изменения в выражении. Возможное решение состоит в том, чтобы повторно вычислить ценовое использование mbsprice
для небольшого изменения в выражении, и во вверх и во вниз направления. В этом случае необходимо повторно вычислить вход предварительной оплаты. Внутренне, это изменяет потоки наличности ипотечного пула. Предположение, что OAS остается постоянным во всех средах выражения, можно применить набор дисконтирования факторов к потокам наличности во вверх и вниз по средам выражения, чтобы найти эффективную длительность.
mbscfamounts
| mbsconvp
| mbsconvy
| mbsdurp
| mbsdury
| mbsnoprepay
| mbsoas2price
| mbsoas2yield
| mbspassthrough
| mbsprice
| mbsprice2oas
| mbsprice2speed
| mbswal
| mbsyield
| mbsyield2oas
| mbsyield2speed
| psaspeed2default
| psaspeed2rate