贷款按揭与保险产品---现金流分析案例
在商品经济中,货币的时间价值是客观存在的。如将资金存入银行可以获得利息,将资金运用于公司的经营活动可以获得利润,将资金用于对外投资可以获得投资收益,这种由于资金运用实现的利息、利润或投资收益表现为货币的时间价值。由此可见,货币时间价值是指货币经历一定时间的投资和再投资所增加的价值,也称资金的时间价值。
由于货币的时间价值,今天的100元和一年后的100元是不等值的。今天将100元存入银行,在银行利息率10%的情况下,一年以后会得到110元,多出的10元利息就是100元经过一年时间的投资所增加了的价值,即货币的时间价值。显然,今天的100元与一年后的110元相等。由于不同时间的资金价值不同,所以,在进行价值大小对比时,必须将不同时间的资金折算为同一时间后才能进行大小的比较。
点睛:例如,某银行说某产品初始投资1万元,若使在最坏的情况下,该产品一年后到期保本即1万元,若不考虑货币的时间价值投资人没有亏损,但在年利率6%的情况系,根据货币的时间价值理论,投资则已经损失600元。
1货币时间价值的计算
计算货币时间价值量,首先引入 “现值”和“终值”两个概念表示不同时期的货币时间价值。
现值,又称本金,是指资金现在的价值。
终值,又称本利和,是指资金经过若干时期后包括本金和时间价值在内的未来价值。通常有单利终值与现值、复利终值与现值、年金终值与现值。
1.1单利终值与现值
单利是指只对借贷的原始金额或本金支付(收取)的利息。我国银行一般是按照单利计算利息的。
在单利计算中,设定以下符号:
PV:本金(现值);R:利率; FV:终值;T:时间。 FV=PV+PV×R×T=PV (1+ R×T)
PV=FV /(1+R×T)
例1:假设银行存款利率为10%,为三年后获得20000现金,某人现在应存入银行多少钱?
R=10%, FV=20000;T=3; 求PV
PV=20000/(1+10%×3)=15384.61(元)
1.2复利终值与现值
金融分析中常用复利方法进行货币的贴现计算。复利,就是不仅本金要计算利息,本金所生的利息在下期也要加入本金一起计算利息,即通常所说的“利滚利”。
在复利的计算中,PV:本金(现值);R:利率; FV:终值;T:时间。
FV=PV (1+ R)^T
PV=FV /(1+ R)^T
注释: (1+ R)^T表示(1+ R)的T次方与Matlab表示方法一致;
在例子1中,使用复利计算现值 R=10%, FV=20000;T=3; 求PV
PV=20000/(1+10%)^3=15026.30(元)
复利计息频数是指利息在一年中付利息多少次。在前面的终值与现值的计算中,都是假定利息是每年支付一次的,因为在这样的假设下,最容易理解货币的时间价值。但是在实际理财中,常出现计息期以半年、季度、月,甚至以天为期间的计息期,相应复利计息频数为每年2次、4次、12次、360次。如贷款买房按月计息,计息为12个月。
2 固定现金流计算
在实际金融产品中,通常不是简单的一次存入(取出),例如国债、住房贷款分期贷款、养老保险等都是以现金流的方式存在的。
例2 这里以国债为例10年期面值为1000元的国债,票面利率为5%,国债投资者每年在付息日都会受到50元利息,并在第10年(最后一年)收到1000元本金。
假设;Rate:贴现率为6%,(贴现率不一定等于票面利率)
NumPeriods:贴现周期为10年;
Payment:利息为50元(周期现金流)
ExtraPayment:本金1000元(最后一次非周期现金流) 则现值与终值的计算公式分别为:
NumPeriodsPV??i?1NumPeriodsPayment(1?Rate)i?ExtraPayment(1?Rate)NumPeriods
FV??i?1Payment×(1?Rate)?ExtraPaymenti
2.1 固定现金流现值计算函数pvfix
PresentVal = pvfix(Rate, NumPeriods, Payment, ExtraPayment, Due) 输入参数: Rate:贴现率;
NumPeriods:贴现周期;
Payment:周期现金流,正表示流入,负表示流出 ExtraPayment:最后一次非周期现金流,函数默认为0
Due:现金流计息方式(0为周期末付息,1为周期初付息) 输出参数:
PresentVal:现金流现值
例:利用pvfix函数计算例2.2的现值PV, M文件pvfixtest.m
FaceValue=1000;
Payment=0.05*FaceValue;
Rate=0.06;
ExtraPayment=FaceValue; NumPeriods=10; Due=0;
PresentVal = pvfix(Rate, NumPeriods, Payment, ExtraPayment, Due) >>PresentVal = 926.3991
2.2固定现金流终值计算函数fvfix
FutureVal = fvfix(Rate, NumPeriods, Payment, PresentVal, Due) 输入参数: Rate:贴现率;
NumPeriods:贴现周期;
Payment:周期现金流,正表示流入,负表示流出; ExtraPayment:最后一次非周期现金流,函数默认为0;
Due:现金流计息方式(0为周期末付息,1为周期初付息); PresentVal:现金流现值。 输出参数:
FutureVal:现金流终值。
例:利用fvfix函数计算例2.2的终值FV M文件fvfixtest.m
FaceValue=1000;
Payment=0.05*FaceValue; Rate=0.06;
ExtraPayment=FaceValue; NumPeriods=10; Due=0;
FutureVal = fvfix(Rate, NumPeriods, Payment, ExtraPayment, Due) >> FutureVal = 2.4499e+003
3 变化现金流计算
在实际项目投资中,每期的现金流可能是变化的,比如投资购买了一套设备,该设备每年带来收入不是固定(收入的数量或收入的时间不同),测算投资是否合适。
例3: 购买设备A,花费8000元,设备使用年限5年,现金流依次为[-8000, 2500, 1500, 3000, 1000, 2000],如果对于企业来说投资的必要收益率为8%,该投资是否合适? 通常有两种方式净现值(NPV)与内部收益率(IRR)方法, 净现值将现金流利用必要收益率贴计算PV值,若PV>0则可行;否则,不可行。内部收益率,假设PV=0计算必要贴现率,若IRR>必要收益率可行;否则不可行。
假设: CashFlow:现金流;Rate:贴现率;
CashFlow=[ -8000,2500,1500,3000,1000,2000 ], Rate=0.08 净现值(NPV):
nNPV??(1?Rate)i?0CFii,CFo??Invest
内部收益率(IRR)
n?(1?r)i?0CFii?0,CFo??Invest
3.1净现值NPV计算函数pvvar
PresentVal = pvvar(CashFlow, Rate, IrrCFDates) 输入参数:
CashFlow:现金流序列向量; Rate:必要收益率;
IrrCFDates:可选项,CF时间,默认为等间隔,例如每年一次。 输出参数:
PresentVal:现金流现值。
例:利用pvvar
Rate=0.08;
IrrCFDates = ['01/12/2009' %初始投资 CF0=-8000 '02/14/2010' ?1=2500 '03/03/2011' ?2=1500 '06/14/2012' ?3=3000 '12/01/2013' ?4=1000 '12/31/2014' ]; ?5=2000 PresentVal1 = pvvar(CashFlow, Rate)
PresentVal2= pvvar(CashFlow, Rate, IrrCFDates) >> PresentVal1 = 78.5160 PresentVal2 = -172.5356
函数计算例2.3的NPV M文件pvvarest.m
CashFlow=[ -8000,2500,1500,3000,1000,2000 ];
两个结果不同是由于现金流入贴现时间间隔不一致造成。
3.2内部收益率计算函数irr Return = irr(CashFlow) 输入参数:
CashFlow:现金流。 输出参数:
Return:内部收益率;
例:利用irr 函数计算例3.3的内部收益率 M文件irrest.m
CashFlow=[ -8000,2500,1500,3000,1000,2000 ]; Return = irr(CashFlow) >> Return = 0.0839
计算结果,该项目的内部收益率IRR=8.39%
4 年金现金流计算
年金,国外叫annuity,并不单是我们理解企业年金或养老金,而是定期或不定期的时间内一系列的现金流入或流出。年金终值包括各年存入的本金相加以及各年存入的本金所产生的利息,但是,由于这些本金存入的时间不同,所以所产生的利息也不相同,按揭贷款本质上是年金的一种。
例4:(1)比如投资人贷款50W买房,还款期20年,每月还3000元,则贷款利率为多少? (2)若改为每月换4000元,则贷款利不变,还贷期限为多长?
4.1年金利率annurate
Rate = annurate(NumPeriods, Payment, PresentValue, FutureValue, Due) 输入参数:
NumPeriods:现金流周期; Payment:现金流收入(支出); PresentValue:现金流现值;
FutureValue:现金流终止,默认为0;
Due:现金流计息方式(0为周期末付息,1为周期初付息); 输出参数:
Rate:利息率(贴现率)。
例:利用annurate函数求解例4(1)的贷款利率 M文件annuratetest.m
PresentValue=500000; Payment=3000; NumPeriods=20*12; FutureValue=0; Due=0;
Rate = annurate(NumPeriods, Payment, PresentValue, FutureValue, Due) >> Rate = 0.0032(月利率) >> 年利率:3.89%
4.2年金周期 annuterm
NumPeriods = annuterm(Rate, Payment, PresentValue, FutureValue, Due) 输入参数:
Rate:利息率(贴现率); Payment:现金流收入(支出); PresentValue: 现金流现值;
FutureValue:现金流终止,默认为0;
Due:现金流计息方式(0为周期末付息,1为周期初付息)。 输出参数:
NumPeriods:现金流周期。