www.gusucode.com > fininst 案例源码程序 matlab代码 > fininst/ComputetheTheoreticalYieldtoMaturityofaMortgagePoolExample.m
%% Compute the Theoretical Yield to Maturity of a Mortgage Pool % Copyright 2015 The MathWorks, Inc. %% % Given an option-adjusted spread, a spot curve, and a prepayment assumption, % compute the theoretical yield to maturity of a mortgage pool. First, create % the bonds matrix: 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]; %% % Choose a settlement date. Settle = datenum('20-Aug-2002'); %% % Assume the following clean prices for the bonds: Prices = [ 98.97467; 98.58044; 100.10534; 98.18054; 101.38136; 99.25411]; %% % Use the following formula to compute spot compounding for the bonds: SpotCompounding = 2*ones(size(Prices)); %% % Compute the zero curve. [ZeroRatesP, CurveDatesP] = zbtprice(Bonds, Prices, Settle); ZeroCurve = [CurveDatesP, ZeroRatesP, SpotCompounding] %% % Assign the following parameters: 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]; %% % Compute the mortgage yield and bond equivalent mortgage yield. [MYield BEMBSYield] = mbsoas2yield(ZeroCurve, OAS, Settle, ... Maturity, IssueDate, GrossRate, CouponRate, Delay, ... Interpolation, PrepaySpeed)