此示例说明了金融工具箱™和金融仪器工具箱™如何使用BDT模型来价格抵押贷款支持安全性。
加载mbsexample.mat.
通过查看输出结构来可视化沿树的利率演变BDTTree.
。BDTTree.
返回一个逆折扣树,您可以使用它转换为兴趣率树CVTree.
功能。
bdttreer = cvtree(bdttree);
看看树的上部分支和下分支路径:
oldformat = get(0,'格式');格式短的root节点的%速率:rateroot = treepath(bdttreer.ratetree,0)
RateToot = 0.0399.
沿着上部分支的%率:RatePathUp = treepath(bdttreer.ratetree,[1 1 1 1 1])
RatePathUp =.6×10.0399 0.0397 0.0391 0.0383 0.0373 0.0360
沿着低级分支的估计价格:RatePathDown = TreePath(BDTTreer.ratetree,[2 2 2 2 2])
RAPEPTOWD =.6×10.0399 0.0470 0.0550 0.0638 0.0734 0.0841
让我们说,我们拥有3年10000美元的预付贷款,抵押贷款利率为4.64%的半年复合。
mortgageamount = 10000;佣金= 0.0464;期限= 2;安顿='01-jan-2007';成熟='01-jan-2010';复合= bdttree.timespec.compounding;格式银行
使用功能缓冲
在金融工具箱中计算贷款(MP),利息和主要成分以及未偿还的本金余额。
numperiods = date2time(定居,成熟,复合)';[校长,有股,未完成的差距,MP] =摊销(优惠变换/期间,Numperiods,Mortgageamount);%显示主要,兴趣和未结余额Principalamount =校长'
principalamount =6×11572.59 1609.07 1646.40 1684.60 1723.68 1763.67
利息留下了=有激的宝
利息留下=6×1232.00 195.52 158.19 119.99 80.91 40.92
OfferningBalanceamount = Offerengebalance'
OfferningBalanceamount =6×18427.41 6818.34 5171.94 3487.35 1763.67 0.00
cflowamounts = MP * ONE(1,NUMPERIODS);%clowddates与树级日期相同cflowdates = {'01-jul-2007'那'01-jan-2008'那'01-jul-2008'那'01-jan-2009'那'01-jul-2009'那'01-jan-2010'};%计算非预付抵押贷款的价格[PricenonPrepayableMortgage,PricetreenonPreabayableMortgegal] = CFBYBDT(BDTTree,CFlowamounts,CFlowdates,Setten);为了inlevel = 2:长度(pricetreenonprepayablemortgage.ptree)pricetreenonprepayablemortgage.ptree {inlevel}(:,:) = pricetreenonprepayablemortgage.ptree {inlevel}(:,) - mp;结尾%看看抵押贷款的价格tobs = 0Pricenonprepayablemortgage.
pricenonprepayablemortgage = 10017.47
%非预付抵押贷款的价值为10017.47美元。这个值超过了自房主因收到10000美元而借来的10000美元金额,但%也是预付选项。%看最后一个日期的抵押贷款的价值,就在最后一次之后%抵押贷款支付,零:pricetreenonprepayablemortgage.ptree {结束}
ans =.1×6.0 0 0 0 0 0
%可视化非预付抵押贷款的价格树。TreeViewer(PricetreenonprepayableMortgage)
%prepayment选项就像债券上的呼叫选项。%%行使价格或罢工将等于未偿还的本金额使用该功能计算的%。optspec ='称呼';罢工= [Mortgageamount OfferentBalance];锻炼= [解决clowdate];americanopt = 0;成熟= CFlowdates(END);%计算预付款选项的价格:[PricePrepaymentOption,PricetreePrepaymentOption] = PrepaymentByBDT(BDTTree,Optspec,Strike,Astractionates,Americanopt,......0,定居,成熟,[],[],[],......[],[],[],[],0,[],cflowamounts);%看看今天预付款选项的价格(tobs = 0)PriceprepaymentOption.
PricePrepaymentOption = 17.47
%预计选项的价值是预期的17.47美元。%可视化预付选项的价格树TreeViewer(PricetreePrepaymentOption)
%计算预付款抵押贷款的价格。PricePrepayableMortgage = PricenonPrepayableMortgage - PricePrepaymentOption;pricetreeprepayablemortgage = pricetreenonprepayablemortgage;为了Ilevel = 1:长度(pricetreenonprepayablemortgage.ptree)pricetreeprepayablemortgage.ptree {inlevel}(:,:) = pricetreenonprepayablemortgage.ptree {inlevel}(:,) -......pricetreepaymentOption.ptree {inlevel}(:, :);结尾%看看今天预付款抵押的价格(Tobs = 0)PricePrepayableMortgage.
PricePrepayableMortgage = 10000.00
%抵押贷款的价值按预期为10000美元。%可视化预付抵押贷款的价格和价格树TreeViewer(PricetreePrepayableMortgage)
设置(0,'格式',oldformat);
MBSCFamounts.
|mbsconvp.
|MBSCONVY.
|MBSDurp.
|MBSDURY.
|mbsnoprepay
|MBSOAS2PRICE.
|mbsoas2yield.
|mbspassthrough.
|MBSPRICE.
|mbsprice2oas.
|mbsprice2speed
|MBSWAL.
|mbsyield.
|mbsyield2oas.
|mbsyield2speed
|PsaSpeed2default.
|PsaSpeed2rate.