预付建模与同业拆借市场船体白两因素模型和模型
这个例子展示了如何使用功能模型在MATLAB®预付的金融工具的工具箱™。具体地说,理查德和辊提前还款模型的一个变体是实现使用两个因素Hull-White同业拆借市场利率模型和模型模拟未来利率路径。一种抵押贷款支持证券定价与自定义和默认的提前还款模型。
介绍
预付建模的分析是至关重要的抵押贷款支持证券(MBS)。提前支付的个人抵押贷款持有者影响现金流的数量和时机和抵押贷款担保证券(例如,利息的证券),提前还款可以极大地影响证券的价值。
PSA模型
最基本的提前还款模型是公共证券协会(PSA)模型,它假定一个过渡阶段,然后一个常数条件提前还款利率(CPR)。PSA模型可以生成使用金融工具MATLAB工具箱函数<一个href="//www.tatmou.com/nl/nl/help/fininst/psaspeed2rate.html" data-docid="fininst_ug#btxewww-2297" class="a">psaspeed2rate。
G2PP_CPR = psaspeed2rate(200年[100]);图绘制(G2PP_CPR)标题(<年代p一个n年代tyle="color:#A020F0">“100年和200年PSA提前还款的速度”)包含(<年代p一个n年代tyle="color:#A020F0">“月”)ylabel (<年代p一个n年代tyle="color:#A020F0">“心肺复苏”)ylim([0 .14点])传说({<年代p一个n年代tyle="color:#A020F0">100 PSA,<年代p一个n年代tyle="color:#A020F0">200 PSA},<年代p一个n年代tyle="color:#A020F0">“位置”,<年代p一个n年代tyle="color:#A020F0">“最佳”)
抵押贷款支持证券
分析了MBS在这个例子中2020年到期,在这一节中列出的属性。现金流生成的PSA提前还款速度只需进入PSA速度作为输入参数。
%参数MBS定价透传解决= datenum (<年代p一个n年代tyle="color:#A020F0">的15 - 12月- 2007);成熟= datenum (<年代p一个n年代tyle="color:#A020F0">的15 - 12月- 2020);IssueDate = datenum (<年代p一个n年代tyle="color:#A020F0">的15 - 12月- 2000);GrossRate = .0475;CouponRate = .045;延迟= 14;时间= 12;基础= 4;<年代p一个n年代tyle="color:#228B22">%产生现金流为基线情况下使用100 PSA和日期[CFlowAmounts, CFlowDates] = mbscfamounts(结算、成熟度、IssueDate<年代p一个n年代tyle="color:#0000FF">…GrossRate CouponRate,延迟,100);CFlowDates CFlowTimes = yearfrac(解决);NumCouponsRemaining = cpncount(定居,成熟,期间,基础1 IssueDate);
理查德和辊模型
虽然提前还款建模往往涉及复杂的和复杂的建模,通常在贷款水平,这个示例使用稍微修改的方法基于提出的模型理查德和辊(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6]。
理查德和辊提前还款模型包括以下因素:
再融资动机
季节性(月)
调味料或年龄的抵押贷款
倦怠
理查德和辊提出一个乘法模型如下:
自定义模型在这个例子中,<年代p一个ncl一个年代年代="emphasis">倦怠的乘数,描述了提前还款的趋势缓慢,当大量的房主已经再融资,被忽略和前三个条件。
再融资动机是票面利率之比的函数可用的抵押贷款的抵押贷款利率在特定的时间点。例如,美国储蓄机构监理局(OTS)提出以下模型:
再融资的激励需要一个模拟未来的利率。在本例中这将在稍后讨论。
C_M =。1: .1:2;G2PP_Refi = .2406 - .1389 *: (5.952 * (1.089 - C_M));图绘制(C_M G2PP_Refi)包含(<年代p一个n年代tyle="color:#A020F0">的优惠券/抵押贷款利率)ylabel (<年代p一个n年代tyle="color:#A020F0">“心肺复苏”)标题(<年代p一个n年代tyle="color:#A020F0">“再融资动机”)
调味了提前还款的趋势加大初抵押贷款在平。OTS调味乘数模型如下:
调味料= 1 (360 1);调味料(一)=(一)/ 30;图绘制(调味料)xlim([360])标题(<年代p一个n年代tyle="color:#A020F0">“调味乘数”)包含(<年代p一个n年代tyle="color:#A020F0">“月”)
季节性乘数简单模型提前支付的季节性行为——这个数据是基于图3的<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6],它适用于吉利美30年的行为,独栋mbs。
季节性= [。9476。73。96。98。92 .99 1.1 1.18 1.21 1.23 .97]; figure plot(Seasonality) xlim([1 12]) ax = gca; ax.XTick = 1:12; ax.XTickLabel = {<年代p一个n年代tyle="color:#A020F0">“1月”,<年代p一个n年代tyle="color:#A020F0">2月的,<年代p一个n年代tyle="color:#A020F0">“3”,<年代p一个n年代tyle="color:#A020F0">4月的,<年代p一个n年代tyle="color:#A020F0">“可能”,<年代p一个n年代tyle="color:#A020F0">“君”,<年代p一个n年代tyle="color:#A020F0">“7”,<年代p一个n年代tyle="color:#A020F0">“8月”,<年代p一个n年代tyle="color:#0000FF">…“9”,<年代p一个n年代tyle="color:#A020F0">“10月”,<年代p一个n年代tyle="color:#A020F0">11月的,<年代p一个n年代tyle="color:#A020F0">12月的};标题(<年代p一个n年代tyle="color:#A020F0">“季节性乘数”)
G2 + +利率模型
自融资激励需要一个模拟未来的利率,必须使用一个利率模型。一个选择是一个双重加性高斯模型,称为G2 + + Brigo和墨丘里奥教练(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">2]。
G2 + +利率模型是:
在哪里<年代p一个ncl一个年代年代="inlineequation">
是一个二维布朗运动与相关<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
是短期汇率,<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
均值回归常数和吗<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
波动率常数,<年代p一个ncl一个年代年代="inlineequation">
是市场远期利率,或观察到的远期利率结算日期。
伦敦银行间拆放款利率市场模式
伦敦银行间拆放款利率市场模型(LMM)与费率模型的不同之处在于,它发展的一组离散的远期利率。具体来说,对数正态LMM指定为每个远期利率扩散方程如下:
在哪里
dW 是一个<年代p一个ncl一个年代年代="emphasis">N维几何布朗运动:
LMM涉及远期利率基于无套利的漂移参数。具体来说,现货LIBOR测量下,飘表示为以下几点:
在哪里
是时候分数与第i个远期利率
是一个指数函数定义的关系<年代p一个ncl一个年代年代="inlineequation">
与现货LIBOR计价单位被定义为以下几点:
鉴于上述,LMM是如何的选择模型波动性和相关性。
利率的波动可以建模与随机波动,但是对于这个示例使用确定性波动,所以需要指定一个函数形式。最受欢迎的功能形式的文献如下:
在哪里<年代p一个ncl一个年代年代="inlineequation">
调整曲线匹配的波动<年代p一个ncl一个年代年代="inlineequation">
远期利率。
同样,需要指定远期利率之间的关系。这可以从历史数据估计价格或安装选项。在这个例子中,将使用以下函数形式:
一旦指定波动性和相关性,需要校准的参数,这可以用历史或市场数据,通常互换期权或帽和地板。对于本例,我们简单地使用相关的合理估计和波动率参数。
%波动函数,使用一个选择的参数LMMVolFunc = @ (t) ((1) * (2) t +)。* exp (* t)——(3) + (4);LMMVolParams = [。13 .04美元。7。08);<年代p一个n年代tyle="color:#228B22">%波动规范fplot (@ (t) LMMVolFunc (LMMVolParams t), 10[0])标题([<年代p一个n年代tyle="color:#A020F0">“波动函数与参数”mat2str (LMMVolParams)]) ylabel (<年代p一个n年代tyle="color:#A020F0">的波动率(%))包含(<年代p一个n年代tyle="color:#A020F0">“男高音(年)”)
校准市场数据
G2 + +模型中的参数可以校准市场数据。通常情况下,校准参数来观察利率上限,地板和/或掉期期权数据。现在,市值数据用于校准。
这个数据是硬编码但可以与数据库导入MATLAB工具箱™或数据处理工具箱™。
% 0曲线——这个数据是硬编码的,但是可以引导%使用IRDataCurve的引导方法。ZeroTimes = (3/12 6/12 1 5 7 10 20 30) ';ZeroRates = (0.033 0.034 0.035 0.040 0.042 0.044 0.048 0.0475) ';ZeroDates = daysadd(结算360 * ZeroTimes 1);DiscountRates = zero2disc (ZeroRates ZeroDates,解决);irdc = IRDataCurve (<年代p一个n年代tyle="color:#A020F0">“零”、结算、ZeroDates ZeroRates);图绘制(ZeroDates ZeroRates) datetick标题([<年代p一个n年代tyle="color:#A020F0">“我们零线”datestr(解决)))
%帽数据重置= 2;名义= 100;CapMaturity = daysadd(结算360 * [1:5 7 10 15 20 25 30],1);CapVolatility = [。28。30。32。31 .30 .27 .23 .2 .18 .17 .165]';<年代p一个n年代tyle="color:#228B22">% ATM与swapbyzero罢工可以计算罢工= [0.0353 0.0366 0.0378 0.0390 0.0402 0.0421 0.0439<年代p一个n年代tyle="color:#0000FF">…0.0456 0.0471 0.0471 0.0471];<年代p一个n年代tyle="color:#228B22">%,这可能与capbyblk计算BlackCapPrices = [0.1532 0.6416 1.3366 2.0290 2.7366 4.2960 6.5992<年代p一个n年代tyle="color:#0000FF">…9.6787 12.2580 14.0969 15.7873];图散射(CapMaturity CapVolatility) datetick标题([<年代p一个n年代tyle="color:#A020F0">“ATM波动上限”datestr(解决)))
调整模型参数,一个参数设置会发现最小化的平方之和帽的G2 + +预测值之间的差异和观察到的黑帽子值。优化工具箱™函数<一个href="//www.tatmou.com/nl/nl/help/optim/ug/lsqnonlin.html" data-docid="optim_ug#buuhch7" class="a">lsqnonlin虽然在这个例子中,使用其他方法(例如,全局优化)也可能是适用的。这个函数<一个href="//www.tatmou.com/nl/nl/help/fininst/capbylg2f.html" data-docid="fininst_ug#btxewvg-313" class="a">capbylg2f计算分析值上限给定的参数值。
上界和下界为模型参数设置为相对限制。Brigo和墨丘里奥教练讨论,相关参数,<年代p一个ncl一个年代年代="inlineequation">
,通常可以接近1当合适的利率上限价格G2 + +模型。因此,<年代p一个ncl一个年代年代="inlineequation">
之间的限制是吗7和。7确保参数代表一个真正的双因素模型。剩下的均值回归和波动参数之间的约束0和。5。校准仍然是一个复杂的任务,下面的情节似乎表明,最适合的参数较好地再现上限价格,应该注意的是,这里列出的程序仅仅代表了一种方法。
%调用lsqnonlin校准参数objfun = @ (x) BlackCapPrices capbylg2f (irdc, x (1), (2) x (3), (4) x, x(5),罢工,CapMaturity);x0 = [。5。05。1。01- - - - - -。1]; lb = [0 0 0 0 -.7]; ub = [.5 .5 .5 .5 .7]; G2PP_Params = lsqnonlin(objfun,x0,lb,ub);
局部最小值。lsqnonlin停止是因为最后的平方和的变化相对于其初始值小于公差的值函数。
一个= G2PP_Params (1);b = G2PP_Params (2);σ= G2PP_Params (3);η= G2PP_Params (4);ρ= G2PP_Params (5);<年代p一个n年代tyle="color:#228B22">%比较结果图散射(CapMaturity BlackCapPrices)<年代p一个n年代tyle="color:#A020F0">在散射(CapMaturity capbylg2f (irdc, a, b,σ,埃塔(ρ,罢工,CapMaturity),<年代p一个n年代tyle="color:#A020F0">“处方”)datetick标题(<年代p一个n年代tyle="color:#A020F0">“市场和模型隐含价格”)ylabel (<年代p一个n年代tyle="color:#A020F0">的价格($))
G2 + +模型实现
的<一个href="//www.tatmou.com/nl/nl/help/fininst/lineargaussian2f.html" data-docid="fininst_ug#btxewv3-1187" class="a">LinearGaussian2F模型可以用于指定G2 + +利率模型和模拟未来的路径。
% G2 + +模型从Brigo和墨丘里奥教练时间齐次波动%的参数G2PP = LinearGaussian2F (irdc, a, b,σ,η,ρ);
伦敦银行间拆放款利率市场模式的实现
波动性和相关性已经校准后,使用蒙特卡罗模拟进化率在时间。的<一个href="//www.tatmou.com/nl/nl/help/fininst/libormarketmodel.html" data-docid="fininst_ug#btxewv3-1168" class="a">LiborMarketModel对象用于模拟远期利率。
而减少的因素是经常使用的LMM减少计算复杂度,减少在这个例子没有因素。
6米LIBOR利率选择演化模拟。因为每月预付必须计算向量,插值用于生成中间。使用简单的线性插值。
numForwardRates = 46;<年代p一个n年代tyle="color:#228B22">%,而不是健康,VolPhi仅仅是硬编码的%的代表一个波动随时间下降。VolPhi = linspace (1.2, 8, numForwardRates-1)”;β=。08;βCorrFunc = @ (i, j) exp(β* abs (i j));CorrMat = CorrFunc (meshgrid (1: numForwardRates-1)”, meshgrid (1: numForwardRates-1),β);VolFunc =细胞(长度(VolPhi), 1);<年代p一个n年代tyle="color:#0000FF">为jdx = 1:长度(VolPhi) VolFunc (jdx) = {@ (t) VolPhi (jdx) *(大小(t))。* (LMMVolParams (1) * t +<年代p一个n年代tyle="color:#0000FF">…LMMVolParams (2))。* exp (-LMMVolParams (3) * t) + LMMVolParams (4)};<年代p一个n年代tyle="color:#0000FF">结束LMM = LiborMarketModel (irdc VolFunc CorrMat);
G2 + +蒙特卡罗模拟
可以模拟各种利率路径通过调用<一个href="//www.tatmou.com/nl/nl/help/fininst/lineargaussian2f.simtermstructs_lineargaussian2f.html" data-docid="fininst_ug#btxewv4-1198" class="a">simTermStructs方法。
这样的双重高斯模型的一个限制是它允许负利率。这是一个问题,特别是在低利率环境。处理这种可能性,任何利率路径-利率只是拒绝了。
nPeriods = NumCouponsRemaining;nTrials = 100;DeltaTime = 1/12;<年代p一个n年代tyle="color:#228B22">%产生因素和短期利率男高音= (1/12 1 2 3 4 5 7 10 15 20 30);G2PP_SimZeroRates = G2PP.simTermStructs (nPeriods,<年代p一个n年代tyle="color:#A020F0">“NTRIALS”nTrials,<年代p一个n年代tyle="color:#0000FF">…“男高音”男高音歌唱家,<年代p一个n年代tyle="color:#A020F0">“DeltaTime”,DeltaTime);SimDates = daysadd(结算360 * DeltaTime * (0: nPeriods), 1);<年代p一个n年代tyle="color:#228B22">%男高音将恢复为每个模拟日期。stepsize是%这里包括促进计算折扣因素%模拟路径。% -删除任何路径NegIdx =挤压(任何(G2PP_SimZeroRates < (0, 1), 2));G2PP_SimZeroRates (:,:, NegIdx) = [];nTrials =大小(G2PP_SimZeroRates, 3);<年代p一个n年代tyle="color:#228B22">%情节演变的一个示例路径trialIdx = 1;图冲浪(男高音、SimDates G2PP_SimZeroRates (:,:, trialIdx)) datetick<年代p一个n年代tyle="color:#A020F0">ykeeptickskeeplimits标题([<年代p一个n年代tyle="color:#A020F0">零的演化曲线试验:num2str (trialIdx)<年代p一个n年代tyle="color:#A020F0">“G2 + +模型”])包含(<年代p一个n年代tyle="color:#A020F0">“男高音(年)”)
伦敦银行间拆放款利率市场模型模拟
可以模拟各种利率路径通过调用<一个href="//www.tatmou.com/nl/nl/help/fininst/libormarketmodel.simtermstructs_libormarketmodel.html" data-docid="fininst_ug#btxewv3-1179" class="a">simTermStructs的方法<一个href="//www.tatmou.com/nl/nl/help/fininst/libormarketmodel.html" data-docid="fininst_ug#btxewv3-1168" class="a">LiborMarketModel对象。
LMMPeriod = 2;<年代p一个n年代tyle="color:#228B22">%半年利率LMMNumPeriods = NumCouponsRemaining / 12 * LMMPeriod;<年代p一个n年代tyle="color:#228B22">%的半年时间LMMDeltaTime = 1 / LMMPeriod;LMMNTRIALS = 100;<年代p一个n年代tyle="color:#228B22">%模拟[LMMZeroRates, LMMForwardRates] = LMM.simTermStructs (LMMNumPeriods,<年代p一个n年代tyle="color:#A020F0">“nTrials”LMMNTRIALS,<年代p一个n年代tyle="color:#A020F0">“DeltaTime”,LMMDeltaTime);ForwardTimes = 1/2:1/2: numForwardRates / 2;LMMSimTimes = 0:1 / LMMPeriod: LMMNumPeriods / LMMPeriod;<年代p一个n年代tyle="color:#228B22">%情节演变的一个示例路径trialIdx = 1;图tmpPlotData = LMMZeroRates (:,:, trialIdx);tmpPlotData (tmpPlotData = = 0) =南;冲浪(ForwardTimes LMMSimTimes tmpPlotData)标题([<年代p一个n年代tyle="color:#A020F0">零的演化曲线试验:num2str (trialIdx)<年代p一个n年代tyle="color:#A020F0">“伦敦银行同业拆息市场模式”])包含(<年代p一个n年代tyle="color:#A020F0">“男高音(年)”)
从仿真计算的抵押贷款利率
一旦利率路径模拟,抵押贷款利率需要计算的一种方法,讨论了(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">7),是计算的抵押贷款利率2年期和10年期利率的组合。
对于这个示例,下面是使用:
%计算抵押贷款利率从利率路径TwoYearRates =挤压(G2PP_SimZeroRates(:,男高音= = 2,:));TenYearRates =挤压(G2PP_SimZeroRates(:,男高音= = 7,:));G2PP_MortgageRates = .024 + 2 * TwoYearRates + 6 * TenYearRates;(LMMMortgageRates =紧缩。024+。2*LMMZeroRates(:,4,:) + .6*LMMZeroRates(:,20,:)); LMMDiscountFactors = squeeze(cumprod(1./(1 + LMMZeroRates(:,1,:)*.5)));<年代p一个n年代tyle="color:#228B22">%插入到每月的抵押贷款利率MonthlySimTimes = 0:1/12: LMMNumPeriods / LMMPeriod;LMMMonthlyMortgageRates = 0 (nPeriods + 1, LMMNTRIALS);LMMMonthlyDF = 0 (nPeriods + 1, LMMNTRIALS);<年代p一个n年代tyle="color:#0000FF">为trialidx = 1: LMMNTRIALS LMMMonthlyMortgageRates (:, trialidx) = interp1 (LMMSimTimes, LMMMortgageRates (:, trialidx) MonthlySimTimes,<年代p一个n年代tyle="color:#A020F0">“线性”,<年代p一个n年代tyle="color:#A020F0">“extrap”);LMMMonthlyDF (:, trialidx) = interp1 (LMMSimTimes, LMMDiscountFactors (:, trialidx) MonthlySimTimes,<年代p一个n年代tyle="color:#A020F0">“线性”,<年代p一个n年代tyle="color:#A020F0">“extrap”);<年代p一个n年代tyle="color:#0000FF">结束
计算CPR和生成和评估现金流
一旦抵押贷款利率已经模拟,CPR可以从每个利率的乘法模型计算路径。
%计算调味料和再融资乘数调味料的= (nPeriods + 1, - 1);调味料(1:30)= 1/30 * (1:30);G2PP_Refi = .2406 - .1389 *: 5.952 * (1.089 - CouponRate. / G2PP_MortgageRates));LMM_Refi = .2406 - .1389 *: 5.952 * (1.089 - CouponRate. / LMMMonthlyMortgageRates));<年代p一个n年代tyle="color:#228B22">%的CPR是通过评估乘法计算模型G2PP_CPR = bsxfun (@times G2PP_Refi,调味料。*(季节性(CFlowDates)(月)'));LMM_CPR = bsxfun (@times LMM_Refi,调味料。*(季节性(CFlowDates)(月)'));<年代p一个n年代tyle="color:#228B22">%计算单每月死亡率(多发性骨髓瘤)心肺复苏G2PP_SMM = 1 - (1 - G2PP_CPR) ^ (1/12);LMM_SMM = 1 - (1 - LMM_CPR) ^ (1/12);<年代p一个n年代tyle="color:#228B22">%情节CPR对100 PSACPR_PSA100 = psaspeed2rate (100);图PSA_handle =情节(CPR_PSA100 (1: nPeriods),<年代p一个n年代tyle="color:#A020F0">“处方”);持有<年代p一个n年代tyle="color:#A020F0">在G2PP_handle =情节(G2PP_CPR,<年代p一个n年代tyle="color:#A020F0">“b”);LMM_handle =情节(LMM_CPR,<年代p一个n年代tyle="color:#A020F0">‘g’);标题(<年代p一个n年代tyle="color:#A020F0">“提前还款的速度”)传说([PSA_handle (1) G2PP_handle (1) LMM_handle (1)), {<年代p一个n年代tyle="color:#A020F0">100 PSA,<年代p一个n年代tyle="color:#A020F0">“G2PP心肺复苏”,<年代p一个n年代tyle="color:#A020F0">“LMM心肺复苏”},<年代p一个n年代tyle="color:#A020F0">“位置”,<年代p一个n年代tyle="color:#A020F0">“最佳”);
产生的现金流和计算现值
向量的单每月死亡率计算模式为每个利率路径,对MBS现金流计算和折扣。
%计算基准零速度在每个现金流时间CFlowZero = interp1 (ZeroTimes ZeroRates CFlowTimes,<年代p一个n年代tyle="color:#A020F0">“线性”,<年代p一个n年代tyle="color:#A020F0">“extrap”);<年代p一个n年代tyle="color:#228B22">%计算为每个现金流DF时间CFlowDF_Zero = zero2disc (CFlowZero CFlowDates,解决);<年代p一个n年代tyle="color:#228B22">%计算使用零的MBS价格曲线Price_Zero = CFlowAmounts * CFlowDF_Zero ';<年代p一个n年代tyle="color:#228B22">%为每个红外路径生成现金流G2PP_CFlowAmounts = mbscfamounts(结算,<年代p一个n年代tyle="color:#0000FF">…repmat(成熟度1 nTrials) IssueDate, GrossRate, CouponRate,延迟,[],G2PP_SMM(2:最终,:));<年代p一个n年代tyle="color:#228B22">%计算每个IR的DF路径G2PP_CFlowDFSim = cumprod (exp(挤压(-G2PP_SimZeroRates (: 1:)。* DeltaTime)));<年代p一个n年代tyle="color:#228B22">%为每个MBS现金流现值G2PP_Price_Ind = (G2PP_CFlowAmounts。* G2PP_CFlowDFSim ', 2);G2PP_Price =意味着(G2PP_Price_Ind);<年代p一个n年代tyle="color:#228B22">%重复LMMLMM_CFlowAmounts = mbscfamounts(结算,<年代p一个n年代tyle="color:#0000FF">…repmat(成熟度1 LMMNTRIALS) IssueDate, GrossRate, CouponRate,延迟,[],LMM_SMM(2:最终,:));<年代p一个n年代tyle="color:#228B22">%为每个MBS现金流现值LMM_Price_Ind = (LMM_CFlowAmounts。* LMMMonthlyDF ', 2);LMM_Price =意味着(LMM_Price_Ind);
不同的方法可以比较的结果。G2 + +模型试验的数量通常会低于100的过滤掉任何生产负利率的路径。
此外,而对G2 + +模型试验在本例中设置为100时,通常情况下,大量的模拟需要运行产生一个精确的估值。
流(<年代p一个n年代tyle="color:#A020F0">的蒙特卡洛试验:# % 8 d \ n 'nTrials)
#蒙特卡罗试验:72
流(<年代p一个n年代tyle="color:#A020F0">的时间/试验:# % 8 d \ n \ n”nPeriods)
#时间/试验:156
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格与诗篇100:% 8.4 f \ n 'Price_Zero)
MBS价格与诗篇100:1.0187
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格定制G2PP提前还款模型:% 8.4 f \ n \ n 'G2PP_Price)
与定制G2PP提前还款模型MBS价格:0.9884
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格定制LMM提前还款模型:% 8.4 f \ n \ n 'LMM_Price)
与定制LMM提前还款模型MBS价格:0.9993
结论
这个例子展示了如何校准和模拟G2 + +利率模型和如何使用生成的利率路径在提前还款模型松散地基于理查德和辊模型。这个例子还提供了一个有用的起点使用G2 + +和LMM利率模型在其他金融应用程序。
参考书目
这个例子是基于下列书籍,报纸,期刊文章:
安徒生,l . v . Piterbarg。<年代p一个ncl一个年代年代="emphasis">利率建模。大西洋金融出版社,2010年。
Brigo、d和f·墨丘里奥教练。<年代p一个ncl一个年代年代="emphasis">利率模型——理论和实践与微笑,通胀和信贷(第二版。2006。)。施普林格-。ISBN 978-3-540-22149-4, 2001。
Hayre, L。、。<年代p一个ncl一个年代年代="emphasis">所罗门美邦指导住房抵押贷款和资产支持证券。纽约:约翰·威利& Sons, 2001。
Karpishpan Y。,O. Turel, and A. Hasha. "Introducing the Citi LMM Term Structure Model for Mortgages".<年代p一个ncl一个年代年代="emphasis">《华尔街日报》的固定收入。20卷。44-58,2010年。
Rebonato, R。,K. McKay, and R. White (2010).<年代p一个ncl一个年代年代="emphasis">Sabr /伦敦银行同业拆息市场模式:复杂的利率衍生品定价、校准和套期保值。约翰威利& Sons, 2010。
理查德,s F。,和R。Roll。“提前支付固定利率的抵押贷款支持证券”。<年代p一个ncl一个年代年代="emphasis">项目组合管理杂志》上。1989年。
储蓄机构监理局,“投资组合净值模型手册”。2000年3月。
Stein h·J。,Bel我koff, A. L., Levin, K. and Tian, X. "Analysis of Mortgage Backed Securities: Before and after the Credit Crisis" (January 5, 2007). "Credit Risk Frontiers: Subprime Crisis, Pricing and Hedging, CVA, MBS, Ratings, and Liquidity". Bielecki, Tomasz,; Damiano Brigo and Frederic Patras., eds., February 2011. Available at SSRN:<一个href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=955358" target="_blank">https://papers.ssrn.com/sol3/papers.cfm?abstract_id=955358
另请参阅
mbscfamounts
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvp
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvy
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdurp
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdury
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsnoprepay
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbspassthrough
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbswal
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2speed
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2speed
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2default
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2rate
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsoas2price
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsoas2yield
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2oas
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2oas
相关的例子
更多关于
这个例子展示了如何使用功能模型在MATLAB®预付的金融工具的工具箱™。具体地说,理查德和辊提前还款模型的一个变体是实现使用两个因素Hull-White同业拆借市场利率模型和模型模拟未来利率路径。一种抵押贷款支持证券定价与自定义和默认的提前还款模型。 预付建模的分析是至关重要的抵押贷款支持证券(MBS)。提前支付的个人抵押贷款持有者影响现金流的数量和时机和抵押贷款担保证券(例如,利息的证券),提前还款可以极大地影响证券的价值。 最基本的提前还款模型是公共证券协会(PSA)模型,它假定一个过渡阶段,然后一个常数条件提前还款利率(CPR)。PSA模型可以生成使用金融工具MATLAB工具箱函数<一个href="//www.tatmou.com/nl/nl/help/fininst/psaspeed2rate.html" data-docid="fininst_ug#btxewww-2297" class="a"> 分析了MBS在这个例子中2020年到期,在这一节中列出的属性。现金流生成的PSA提前还款速度只需进入PSA速度作为输入参数。 虽然提前还款建模往往涉及复杂的和复杂的建模,通常在贷款水平,这个示例使用稍微修改的方法基于提出的模型理查德和辊(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6 理查德和辊提前还款模型包括以下因素: 再融资动机 季节性(月) 调味料或年龄的抵押贷款 倦怠 理查德和辊提出一个乘法模型如下:
自定义模型在这个例子中,<年代p一个ncl一个年代年代="emphasis">倦怠的乘数 再融资动机是票面利率之比的函数可用的抵押贷款的抵押贷款利率在特定的时间点。例如,美国储蓄机构监理局(OTS)提出以下模型:
再融资的激励需要一个模拟未来的利率。在本例中这将在稍后讨论。 调味了提前还款的趋势加大初抵押贷款在平。OTS调味乘数模型如下: 季节性乘数简单模型提前支付的季节性行为——这个数据是基于图3的<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6 自融资激励需要一个模拟未来的利率,必须使用一个利率模型。一个选择是一个双重加性高斯模型,称为G2 + + Brigo和墨丘里奥教练(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">2 G2 + +利率模型是:
在哪里<年代p一个ncl一个年代年代="inlineequation">
是一个二维布朗运动与相关<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
是短期汇率,<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
均值回归常数和吗<年代p一个ncl一个年代年代="inlineequation">
和<年代p一个ncl一个年代年代="inlineequation">
波动率常数,<年代p一个ncl一个年代年代="inlineequation">
是市场远期利率,或观察到的远期利率结算日期。 伦敦银行间拆放款利率市场模型(LMM)与费率模型的不同之处在于,它发展的一组离散的远期利率。具体来说,对数正态LMM指定为每个远期利率扩散方程如下:
在哪里 dW
LMM涉及远期利率基于无套利的漂移参数。具体来说,现货LIBOR测量下,飘表示为以下几点:
在哪里
是时候分数与第i个远期利率
是一个指数函数定义的关系<年代p一个ncl一个年代年代="inlineequation">
与现货LIBOR计价单位被定义为以下几点:
鉴于上述,LMM是如何的选择模型波动性和相关性。 利率的波动可以建模与随机波动,但是对于这个示例使用确定性波动,所以需要指定一个函数形式。最受欢迎的功能形式的文献如下:
在哪里<年代p一个ncl一个年代年代="inlineequation">
调整曲线匹配的波动<年代p一个ncl一个年代年代="inlineequation">
远期利率。 同样,需要指定远期利率之间的关系。这可以从历史数据估计价格或安装选项。在这个例子中,将使用以下函数形式:
一旦指定波动性和相关性,需要校准的参数,这可以用历史或市场数据,通常互换期权或帽和地板。对于本例,我们简单地使用相关的合理估计和波动率参数。 G2 + +模型中的参数可以校准市场数据。通常情况下,校准参数来观察利率上限,地板和/或掉期期权数据。现在,市值数据用于校准。 这个数据是硬编码但可以与数据库导入MATLAB工具箱™或数据处理工具箱™。 调整模型参数,一个参数设置会发现最小化的平方之和帽的G2 + +预测值之间的差异和观察到的黑帽子值。优化工具箱™函数<一个href="//www.tatmou.com/nl/nl/help/optim/ug/lsqnonlin.html" data-docid="optim_ug#buuhch7" class="a"> 上界和下界为模型参数设置为相对限制。Brigo和墨丘里奥教练讨论,相关参数,<年代p一个ncl一个年代年代="inlineequation">
,通常可以接近 的<一个href="//www.tatmou.com/nl/nl/help/fininst/lineargaussian2f.html" data-docid="fininst_ug#btxewv3-1187" class="a"> 波动性和相关性已经校准后,使用蒙特卡罗模拟进化率在时间。的<一个href="//www.tatmou.com/nl/nl/help/fininst/libormarketmodel.html" data-docid="fininst_ug#btxewv3-1168" class="a"> 而减少的因素是经常使用的LMM减少计算复杂度,减少在这个例子没有因素。 6米LIBOR利率选择演化模拟。因为每月预付必须计算向量,插值用于生成中间。使用简单的线性插值。 可以模拟各种利率路径通过调用<一个href="//www.tatmou.com/nl/nl/help/fininst/lineargaussian2f.simtermstructs_lineargaussian2f.html" data-docid="fininst_ug#btxewv4-1198" class="a"> 这样的双重高斯模型的一个限制是它允许负利率。这是一个问题,特别是在低利率环境。处理这种可能性,任何利率路径-利率只是拒绝了。 可以模拟各种利率路径通过调用<一个href="//www.tatmou.com/nl/nl/help/fininst/libormarketmodel.simtermstructs_libormarketmodel.html" data-docid="fininst_ug#btxewv3-1179" class="a"> 一旦利率路径模拟,抵押贷款利率需要计算的一种方法,讨论了(<一个href="//www.tatmou.com/nl/nl/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">7 对于这个示例,下面是使用:
一旦抵押贷款利率已经模拟,CPR可以从每个利率的乘法模型计算路径。 向量的单每月死亡率计算模式为每个利率路径,对MBS现金流计算和折扣。 不同的方法可以比较的结果。G2 + +模型试验的数量通常会低于100的过滤掉任何生产负利率的路径。 此外,而对G2 + +模型试验在本例中设置为100时,通常情况下,大量的模拟需要运行产生一个精确的估值。 这个例子展示了如何校准和模拟G2 + +利率模型和如何使用生成的利率路径在提前还款模型松散地基于理查德和辊模型。这个例子还提供了一个有用的起点使用G2 + +和LMM利率模型在其他金融应用程序。 这个例子是基于下列书籍,报纸,期刊文章: 安徒生,l . v . Piterbarg。<年代p一个ncl一个年代年代="emphasis">利率建模。 Brigo、d和f·墨丘里奥教练。<年代p一个ncl一个年代年代="emphasis">利率模型——理论和实践与微笑,通胀和信贷 Hayre, L。、。<年代p一个ncl一个年代年代="emphasis">所罗门美邦指导住房抵押贷款和资产支持证券 Karpishpan Y。,O. Turel, and A. Hasha. "Introducing the Citi LMM Term Structure Model for Mortgages".<年代p一个ncl一个年代年代="emphasis">《华尔街日报》的固定收入。 Rebonato, R。,K. McKay, and R. White (2010).<年代p一个ncl一个年代年代="emphasis">Sabr /伦敦银行同业拆息市场模式:复杂的利率衍生品定价、校准和套期保值 理查德,s F。,和R。Roll。“提前支付固定利率的抵押贷款支持证券”。<年代p一个ncl一个年代年代="emphasis">项目组合管理杂志》上。 储蓄机构监理局,“投资组合净值模型手册”。2000年3月。 Stein h·J。,Bel我koff, A. L., Levin, K. and Tian, X. "Analysis of Mortgage Backed Securities: Before and after the Credit Crisis" (January 5, 2007). "Credit Risk Frontiers: Subprime Crisis, Pricing and Hedging, CVA, MBS, Ratings, and Liquidity". Bielecki, Tomasz,; Damiano Brigo and Frederic Patras., eds., February 2011. Available at SSRN:<一个href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=955358" target="_blank">https://papers.ssrn.com/sol3/papers.cfm?abstract_id=955358介绍
PSA模型
psaspeed2rate
G2PP_CPR = psaspeed2rate(200年[100]);图绘制(G2PP_CPR)标题(<年代p一个n年代tyle="color:#A020F0">“100年和200年PSA提前还款的速度”
抵押贷款支持证券
%参数MBS定价透传
理查德和辊模型
C_M =。1: .1:2;G2PP_Refi = .2406 - .1389 *: (5.952 * (1.089 - C_M));图绘制(C_M G2PP_Refi)包含(<年代p一个n年代tyle="color:#A020F0">的优惠券/抵押贷款利率
调味料= 1 (360 1);调味料(一)=(一)/ 30;图绘制(调味料)xlim([360])标题(<年代p一个n年代tyle="color:#A020F0">“调味乘数”
季节性= [。9476。73。96。98。92 .99 1.1 1.18 1.21 1.23 .97]; figure plot(Seasonality) xlim([1 12]) ax = gca; ax.XTick = 1:12; ax.XTickLabel = {<年代p一个n年代tyle="color:#A020F0">“1月”
G2 + +利率模型
伦敦银行间拆放款利率市场模式
%波动函数,使用一个选择的参数
校准市场数据
% 0曲线——这个数据是硬编码的,但是可以引导
%帽数据
lsqnonlin
capbylg2f
%调用lsqnonlin校准参数
局部最小值。lsqnonlin停止是因为最后的平方和的变化相对于其初始值小于公差的值函数。
一个= G2PP_Params (1);b = G2PP_Params (2);σ= G2PP_Params (3);η= G2PP_Params (4);ρ= G2PP_Params (5);<年代p一个n年代tyle="color:#228B22">%比较结果
G2 + +模型实现
LinearGaussian2F
% G2 + +模型从Brigo和墨丘里奥教练时间齐次波动
伦敦银行间拆放款利率市场模式的实现
LiborMarketModel
numForwardRates = 46;<年代p一个n年代tyle="color:#228B22">%,而不是健康,VolPhi仅仅是硬编码的
G2 + +蒙特卡罗模拟
simTermStructs
nPeriods = NumCouponsRemaining;nTrials = 100;DeltaTime = 1/12;<年代p一个n年代tyle="color:#228B22">%产生因素和短期利率
伦敦银行间拆放款利率市场模型模拟
simTermStructs
LiborMarketModel
LMMPeriod = 2;<年代p一个n年代tyle="color:#228B22">%半年利率
从仿真计算的抵押贷款利率
%计算抵押贷款利率从利率路径
计算CPR和生成和评估现金流
%计算调味料和再融资乘数
产生的现金流和计算现值
%计算基准零速度在每个现金流时间
流(<年代p一个n年代tyle="color:#A020F0">的蒙特卡洛试验:# % 8 d \ n '
#蒙特卡罗试验:72
流(<年代p一个n年代tyle="color:#A020F0">的时间/试验:# % 8 d \ n \ n”
#时间/试验:156
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格与诗篇100:% 8.4 f \ n '
MBS价格与诗篇100:1.0187
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格定制G2PP提前还款模型:% 8.4 f \ n \ n '
与定制G2PP提前还款模型MBS价格:0.9884
流(<年代p一个n年代tyle="color:#A020F0">“MBS价格定制LMM提前还款模型:% 8.4 f \ n \ n '
与定制LMM提前还款模型MBS价格:0.9993
结论
参考书目
另请参阅
mbscfamounts
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvp
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvy
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdurp
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdury
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsnoprepay
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbspassthrough
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbswal
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2speed
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2speed
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2default
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2rate
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsoas2price
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsoas2yield
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2oas
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2oas
相关的例子
更多关于