这个例子展示了如何使用金融工具工具箱™中的功能在MATLAB®中建模提前支付。具体来说,Richard and Roll提前支付模型的一个变化是使用两个因素赫尔-怀特利率模型和伦敦银行间同业拆借利率市场模型来模拟未来的利率路径。抵押贷款支持证券的定价采用自定义和默认提前支付模型。 提前还款建模对于抵押贷款支持证券(MBS)的分析至关重要。个人抵押贷款持有人提前还款会影响现金流的金额和时间,对于抵押债务抵押(例如,仅利息证券),提前还款会极大地影响证券的价值。 最基本的提前支付模型是公共证券协会(PSA)模型,它假设一个上升阶段,然后是一个常数条件提前支付率(CPR)。PSA模型可以在MATLAB中使用Financial Instruments Toolbox函数生成<一个href="//www.tianjin-qmedu.com/help/fininst/psaspeed2rate.html" class="a"> 本例中分析的住房抵押贷款支持证券将于2020年到期,并具有本节概述的属性。只需输入PSA速度作为输入参数,就可以为PSA提前支付速度生成现金流。 虽然提前支付建模通常涉及复杂和复杂的建模,通常是在贷款级别,但本示例使用了基于Richard和Roll提出的模型的稍微修改的方法[<一个href="//www.tianjin-qmedu.com/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6 Richard and Roll提前支付模型涉及以下因素: 再融资动机 季节性(一年中的月份) 抵押的调料或年龄 倦怠 Richard和Roll提出了一个乘法模型:
对于本例中的自定义模型,<年代p一个ncl一个年代年代="emphasis">倦怠的乘数 再融资激励是一个函数在特定时间点,抵押贷款的息票率与可用抵押贷款利率之比。例如,储蓄管理局(OTS)提出了以下模型:
再融资激励需要模拟未来利率。这将在本例后面讨论。 调味品捕捉到在抵押贷款开始时,在趋于平稳之前提前还款的趋势。OTS对调味品乘数进行建模,如下所示: 季节性乘数简单地模拟了提前支付的季节性行为——该数据基于[<一个href="//www.tianjin-qmedu.com/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">6 由于再融资激励需要对未来利率进行模拟,因此必须使用利率模型。一种选择是双因素加性高斯模型,Brigo和Mercurio称之为G2++ [<一个href="//www.tianjin-qmedu.com/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次forward速率相关
索引函数是由关系定义的吗<年代p一个ncl一个年代年代="inlineequation">
即期伦敦银行同业拆借利率的计价方式如下:
综上所述,使用LMM的选择是如何建模波动性和相关性。 比率的波动率可以用随机波动率建模,但是对于本例,使用了确定性波动率,因此需要指定函数形式。以下是文献中最常见的功能形式:
哪里<年代p一个ncl一个年代年代="inlineequation">
调整曲线以匹配<年代p一个ncl一个年代年代="inlineequation">
远期利率。 类似地,需要指定远期汇率之间的相关性。这可以从历史数据中估计或拟合到期权价格。对于本例,将使用以下函数形式:
一旦指定了波动率和相关性,就需要校准参数——这可以通过历史或市场数据来完成,通常是互换期权或上限和下限。在本例中,我们只需对相关性和波动率参数进行合理估计。 G2++模型中的参数可以根据市场数据进行校准。通常,这些参数是根据观察到的利率上限、下限和/或互换数据进行校准的。目前,我们使用市值数据进行校准。 该数据是硬编码的,但可以通过Database Toolbox™或Datafeed Toolbox™导入到MATLAB中。 为了校准模型参数,将找到一个参数集,使G2++预测的Cap值与观测的Black Cap值之间的平方和最小。优化工具箱™功能<一个href="//www.tianjin-qmedu.com/help/optim/ug/lsqnonlin.html" class="a"> 模型参数的上界和下界设置相对受限。正如Brigo和Mercurio讨论的,相关参数,<年代p一个ncl一个年代年代="inlineequation">
,通常可以接近 的<一个href="//www.tianjin-qmedu.com/help/fininst/lineargaussian2f.html" class="a"> 在对波动率和相关性进行校准后,利用蒙特卡洛模拟在时间上向前演化速率。的<一个href="//www.tianjin-qmedu.com/help/fininst/libormarketmodel.html" class="a"> 虽然LMM经常使用因子减少来降低计算复杂度,但在本例中没有因子减少。 600万伦敦银行间拆放款利率被选择在这个模拟中进化。由于必须计算每月预付向量,因此使用插值来生成中间利率。使用简单的线性插值。 不同的利率路径可以通过调用<一个href="//www.tianjin-qmedu.com/help/fininst/lineargaussian2f.simtermstructs_lineargaussian2f.html" class="a"> 像这样的双因素高斯模型的一个限制是它允许负利率。这是一个令人担忧的问题,特别是在低利率环境中。为了处理这种可能性,任何负利率的利率路径都会被拒绝。 不同的利率路径可以通过调用<一个href="//www.tianjin-qmedu.com/help/fininst/libormarketmodel.simtermstructs_libormarketmodel.html" class="a"> 一旦模拟了利率路径,就需要计算抵押贷款利率——其中一种方法,由[<一个href="//www.tianjin-qmedu.com/help/fininst/prepayment-modeling-with-a-two-factor-hull-white-model.html" class="intrnllnk">7 在这个例子中,使用了以下命令:
一旦模拟了抵押贷款利率,就可以从每个利率路径的乘法模型中计算CPR。 通过计算每个利率路径的单个月死亡率(SMM)向量,可以计算和折现MBS的现金流。 不同方法的结果可以进行比较。G2++模型的试验次数通常少于100次,因为它过滤掉了任何产生负利率的路径。 此外,虽然本例中G2++模型的试验次数被设置为100次,但通常情况下,需要运行更多的模拟来产生准确的估值。 这个示例展示了如何校准和模拟G2++利率模型,以及如何在一个基于Richard和Roll模型的松散提前支付模型中使用生成的利率路径。这个示例还为在其他金融应用程序中使用G2++和LMM利率模型提供了一个有用的起点。 本示例基于以下书籍、论文和期刊文章: 安徒生和彼得巴。<年代p一个ncl一个年代年代="emphasis">利率建模。 布里格,D.和F.墨丘利奥。<年代p一个ncl一个年代年代="emphasis">利率模型-理论和实践与微笑,通货膨胀和信贷 Hayre, L ed。<年代p一个ncl一个年代年代="emphasis">所罗门美邦抵押贷款支持证券和资产支持证券指南 卡普什潘,Y., O. Turel和A. Hasha。“介绍花旗LMM抵押贷款期限结构模型”。<年代p一个ncl一个年代年代="emphasis">固定收益杂志。 Rebonato, R., K. McKay, and R. White(2010)。<年代p一个ncl一个年代年代="emphasis">Sabr/Libor市场模型:复杂利率衍生品的定价、校准和对冲 理查德,s。F。和r。罗尔。“固定利率抵押贷款支持证券的提前支付”。<年代p一个ncl一个年代年代="emphasis">投资组合管理杂志。 储蓄机构监管办公室,《净投资组合价值模型手册》。2000年3月。 施泰因(Stein, H. J.),贝利科夫(Belikoff, A. L.),列文(Levin, K.),田,X。《抵押贷款支持证券分析:信贷危机前后》(2007年1月5日)。《信用风险前沿:次贷危机、定价与套期保值、CVA、MBS、评级与流动性》。托马斯,Bielecki;Damiano Brigo和Frederic Patras。,eds。,Febru一个ry2011. 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([100 200]);图绘制(G2PP_CPR)标题(<年代p一个n年代tyle="color:#A020F0">“100和200 PSA预付款速度”
抵押贷款支持证券
%要定价的MBS直通的参数
理查德和罗尔模型
C_M =。1:.1:2;g2pp_rei = .2406 - .1389 * atan(5.952*(1.089 - C_M));图绘制(C_M G2PP_Refi)包含(<年代p一个n年代tyle="color:#A020F0">的优惠券/抵押贷款利率
调味料= 1 (360 1);调味料(一)=(一)/ 30;图(佐料)xlim([1 360])<年代p一个n年代tyle="color:#A020F0">“调味品乘数”
季节性=[。94.76.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曲线——该数据目前是硬编码的,但可以引导
%Cap数据
解非线性最小二乘问题
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和Mercurio的时间均质波动
LIBOR市场模型实施
LiborMarketModel
numForwardRates = 46;<年代p一个n年代tyle="color:#228B22">%VolPhi不是合适的,而是简单的硬编码--
G2++蒙特卡罗模拟
simTermStructs
nPeriods = NumCouponsRemaining;nTrials = 100;DeltaTime = 1/12;<年代p一个n年代tyle="color:#228B22">%产生因素和短期利率
LIBOR市场模型模拟
simTermStructs
LiborMarketModel
LMMPeriod = 2;<年代p一个n年代tyle="color:#228B22">%半年利率
从模拟计算抵押贷款利率
%从利率路径计算抵押贷款利率
计算CPR,生成和评估现金流
%计算调味品和再融资乘数
生成现金流并计算现值
计算每个现金流时间的基准零利率
流(<年代p一个n年代tyle="color:#A020F0">蒙特卡洛审判:%8d\n'
蒙特卡洛选拔赛:72分
流(<年代p一个n年代tyle="color:#A020F0">' # of Time Periods/Trial: %8d\n\n'
时间周期/试验:156
流(<年代p一个n年代tyle="color:#A020F0">' MBS价格与PSA 100: %8.4f\n'
PSA 100的抵押贷款证券价格:1.0187
流(<年代p一个n年代tyle="color:#A020F0">' MBS价格与自定义G2PP预付模式:%8.4f\n\n'
MBS价格与自定义G2PP预付模型:0.9884
流(<年代p一个n年代tyle="color:#A020F0">'自定义LMM预付款型号的MBS价格:%8.4f\n\n'
自定义LMM预付模型的MBS价格:0.9993
结论
参考书目
另请参阅
mbscfamounts
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvp
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsconvy
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdurp
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsdury
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsnoprepay
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbspassthrough
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbswal
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2speed
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2speed
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2default
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">psaspeed2rate
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsoas2price
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">MBSOAS2产量
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsprice2oas
|<年代p一个n我temscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">mbsyield2oas
相关的例子
更多关于