主要内容

利用Black-Derman-Toy模型为抵押贷款支持证券定价

此示例说明如何使用金融工具箱™和金融工具工具箱™对使用BDT模型的一级抵押贷款支持证券进行定价。

加载数据文件中存储的BDT树

负载mbsexample.mat

观察利率树

通过查看输出结构,可以可视化利率沿树的演变BDTTreeBDTTree返回一个逆贴现树,您可以将其转换为利率树cvtree函数。

bdtreer = cvtree(bdtreree);

看看树的上分支和下分支路径:

OldFormat = get(0,“格式”);格式%根节点的速率:RateRoot = treepath(BDTTreeR。RateTree, 0)
RateRoot = 0.0399
沿上分支的百分比:RatePathUp = treepath(BDTTreeR。RateTree, [1 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 2])
RatePathDown =6×10.0399 0.0470 0.0550 0.0638 0.0734 0.0841

计算非预付抵押贷款的价格树

假设我们有一笔3年期10000美元的预付贷款,抵押贷款利率为每半年复利4.64%。

MortgageAmount = 10000;CouponRate = 0.0464;周期= 2;解决=' 01 - 1月- 2007;成熟=' 01 - 1月- 2010;复合= bdttree . timpe . compound;格式银行

使用函数摊销在“财务工具箱™”中计算贷款的按揭付款、利息和本金组成部分,以及未偿还的本金余额。

NumPeriods = date2time(结算,到期,复合)';[本金,利息支付,未偿余额,MP] =摊销(息票率/期限,NumPeriods,抵押金额);显示本金、利息和未偿还余额PrincipalAmount =本金'
PrincipalAmount =6×11572.59 1609.07 1646.40 1684.60 1723.68 1763.67
利息支付金额=利息支付'
InterestPaymentAmount =6×1232.00 195.52 158.19 119.99 80.91 40.92
OutstandingBalanceAmount = OutstandingBalance'
OutstandingBalanceAmount =6×18427.41 6818.34 5171.94 3487.35 1763.67 0.00
cflowamount = MP*ones(1,NumPeriods);CFlowDates与树级日期相同CFlowDates = {' 01 - 7 - 2007' 01 - 1月- 2008' 01 - 7 - 2008' 01 - 1月- 2009' 01 - 7 - 2009' 01 - 1月- 2010};计算非预付抵押贷款的价格。[PriceNonPrepayableMortgage, PriceTreeNonPrepayableMortgage] = cfbybdt(BDTTree, cflowamount, CFlowDates, Settle);level = 2:length(PriceTreeNonPrepayableMortgage.PTree) PriceTreeNonPrepayableMortgage.PTree{level}(:,:)= PriceTreeNonPrepayableMortgage.PTree{level}(:,:) - MP;结束看看今天抵押贷款的价格tObs = 0PriceNonPrepayableMortgage
PriceNonPrepayableMortgage = 10017.47
非预付抵押贷款的价值是$10017.47。此值超过因为房主收到的不仅仅是10000美元,而是%也是预付选项。看看最后一天的抵押贷款价值,就在最后一天之后。%抵押贷款支付,为零:PriceTreeNonPrepayableMortgage。PTree{结束}
ans =1×60 0 0 0 0 0
可视化非预付抵押贷款的价格树。。treeview (PriceTreeNonPrepayableMortgage)

图树查看器包含2个轴对象和其他uicontrol类型的对象。Axes对象1包含63个line类型的对象。坐标轴对象2为空。

计算预付期权的价格树

提前支付期权就像债券的看涨期权。。%行权价或行权价将等于未偿付本金金额%,这是用函数摊销计算的。OptSpec =“电话”;罢工=[抵押金额未偿余额];ExerciseDates =[确定CFlowDates];AmericanOpt = 0;成熟度= CFlowDates(end);计算预付期权的价格:[PricePrepaymentOption, PriceTreePrepaymentOption] = prepaymentbybdt(BDTTree, OptSpec, Strike, ExerciseDates, AmericanOpt,...0、结算、成熟度、[]、[]、[]、...[], [], [], [], 0, [], cflowamount);看今天提前付款期权的价格(tObs = 0)PricePrepaymentOption
PricePrepaymentOption = 17.47
预付款选项的价值为17.47美元。可视化预付选项的价格树treeview (PriceTreePrepaymentOption)

图树查看器包含2个轴对象和其他uicontrol类型的对象。Axes对象1包含63个line类型的对象。坐标轴对象2为空。

计算预付抵押贷款的价格树。

计算预付抵押贷款的价格。PricePrepayableMortgage = PriceNonPrepayableMortgage - PricePrepaymentOption;PriceTreeNonPrepayableMortgage = PriceTreeNonPrepayableMortgage;iLevel = 1:length(PriceTreeNonPrepayableMortgage.PTree) PriceTreePrepayableMortgage.PTree{iLevel}(:,:)= PriceTreeNonPrepayableMortgage.PTree{iLevel}(:,:) -...PriceTreePrepaymentOption.PTree {iLevel} (:,);结束看今天的预付抵押贷款价格(tObs = 0)PricePrepayableMortgage
PricePrepayableMortgage = 10000.00
预付抵押贷款的价值是预期的10000美元。。可视化预付抵押贷款的价格和价格树。treeview (PriceTreePrepayableMortgage)

图树查看器包含2个轴对象和其他uicontrol类型的对象。Axes对象1包含63个line类型的对象。坐标轴对象2为空。

集(0,“格式”, OldFormat);

另请参阅

|||||||||||||||||

相关的例子

更多关于